Блог

Абстракция учетных записей⎟ Как EIP-4337 достигает бесшовного пользовательского опыта Web3

2 марта Йоав Вайс из Ethereum Foundation объявил, что основной контракт нового предложения по абстракции счетов Ethereum, ERC-4337, успешно прошел аудит, проведенный Open Zeppelin, и будет доступен в любой сети, совместимой с Ethereum Virtual Machine (EVM). Новая технология избавит новых пользователей от необходимости вводить мнемонические фразы или настраивать кошелек, что позволит им беспрепятственно войти в децентрализованный мир криптовалют. Это будет способствовать развитию и расширению всей экосистемы Web3.

Что такое EIP-4337?

Цель этого протокола - позволить пользователям использовать в качестве основного аккаунта не внешний адрес (EOA), а адрес смарт-контракта (CA), содержащий произвольную логику верификации, без изменения консенсуса Ethereum, и полностью исключить необходимость использования EOA.

Немного запутались? Не волнуйтесь, давайте я приведу пример:

В настоящее время большинство пользователей создают EOA из MetaMask, SafePal, imToken и т. д., и пользователи контролируют весь счет с помощью набора мнемонических фраз. Однако это означает, что если вы потеряете или утечете фразы, вы потеряете контроль над аккаунтами!

Именно поэтому многие разработчики сейчас усердно трудятся над созданием другого типа счета - Smart Contract Address (CA). С помощью CA можно реализовать множество дополнительных возможностей, которые не может предоставить EOA, например, использование других токенов ERC-20 для оплаты газа, восстановление социальных аккаунтов и т. д. Это может значительно снизить риск активов пользователей Web3 и повысить удобство использования.

Анализ протокола

Давайте посмотрим, как работает протокол EIP-4337, как показано на следующем рисунке:
Пользователь отправляет информацию о транзакциях в мемпул, а затем бандлер (аналогичный майнеру) выбирает выгодные транзакции, объединяет их в пучок и выполняет на блокчейне.

Форма транзакций, отправляемых пользователем

Информация о транзакциях, предоставляемая пользователем, выглядит следующим образом:

Как работает бандлер

Сначала бандлер выберет выгодную UserOperation из mempool и начнет проверку. Сначала бандлер локально вызовет функцию simulateValidation() для проверки транзакции. Эта функция должна вернуться, и если она сообщает ValidationResult, это означает, что верификация прошла успешно. Если она сообщает о других ошибках, это означает неудачу, которая будет отброшена бандлером.

Затем пакет свяжет UserOperations, прошедшие проверку, вместе и выполнит handleOP() в EntryPoint. В handleOP() выполняются два цикла. Первый - цикл верификации, который проверяет все UserOperations, присланные повторно. Если пользователь не развернул свой собственный контракт, он будет развернут на этом шаге, и оплата также будет завершена на этом шаге. Второй цикл - цикл исполнения, который выполняет то, что хочет сделать пользователь, например, торговлю на DEX или покупку и продажу NFT на платформе NFT и т. д.

Paymaster

Еще одна особенность этого протокола заключается в том, что сторонние платежные газы не взимают комиссию. Это означает, что пользователям не обязательно переводить на свои счета некоторое количество собственных токенов (Ethereum => ETH) перед совершением операций.

Пользователи могут оплачивать услуги Paymaster внецепочечными методами, такими как кредитные карты и наличные, и Paymaster будет оплачивать газовые сборы от их имени.

Пользователи также могут оплачивать сборы токенами ERC-20. После выполнения основной задачи Paymaster вызовет postOp() для выполнения transferFrom() в ERC-20, чтобы получить токены на счете.

Социальное восстановление

Функция социального восстановления наследует UpgradeableACL для ее реализации. Пользователи могут указать или отозвать разрешение своих друзей и родственников на помощь в восстановлении аккаунта с помощью функций grantGuardian() и revokeGuardian(). Когда пользователь теряет свой закрытый ключ, его друзья и родственники могут вызвать функцию transferOwner(), чтобы помочь ему восстановить свою учетную запись.

Заключение

Одной из причин, по которым блокчейн не может получить широкого распространения, всегда были проблемы с безопасностью и доступностью активов. Например, многие пользователи опасаются потерять свои активы из-за утраты мнемонических фраз или считают неудобной плату за газ при торговле. Ожидается, что запуск EIP-4337 решит эти проблемы и расширит использование блокчейна в обществе.

Однако, поскольку верификацию этого протокола можно настраивать в зависимости от потребностей, чем сложнее верификация, тем больше вероятность наличия в ней уязвимостей. Кроме того, после развертывания смарт-контракта его содержимое не может быть изменено. Поэтому перед развертыванием контракта смарт-контракт должен пройти множество стресс-тестов и аудитов безопасности, чтобы избежать серьезных финансовых потерь!

Если вы ищете профессионального аудитора, обращайтесь к нашим техническим специалистам.
Блокчейн и NFT