Абстракция учетной записи (ERC-4337)

Что такое абстракция учетной записи?

ERC-4337 — это спецификация в сети Ethereum, обеспечивающая абстракцию учетной записи без изменений протокола на уровне консенсуса. Стандарт открывает огромные возможности для создания «умных кошельков» нового поколения и способствует внедрению криптовалют, за счет повышения безопасности и удобства пользователей.

Стандарт ERC-4337 был предложен Виталиком Бутериным и другими разработчиками Ethereum, в виде предложения EIP-4337 в 2021 году. После долгого процесса обсуждений и множества внесенных изменений, стандарт был принят и имплементирован в марте 2023 года.

Что такое Абстракция учетной записи?

Абстракция учетных записей — это революционное решение, изменяющее принцип управления учетными записями в экосистеме блокчейна, вводя концепцию смарт-счетов. В отличии от традиционных внешних учетных записей (EOA), такие счета позволяют использовать адреса смарт-контрактов в качестве своих основных учетных записей.

К примеру, основная масса кошельков Ethereum, таких как Metamask или Trust Wallet, используют стандарт внешних учетных записей (EOA). Им необходимы приватные ключи для доступа, а также подписи для совершения любых транзакций. В свою очередь, кошельки под управлением смарт-контрактов, такие как Unipass или Safe, требуют использования двух учетных записей и оплаты газа.

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

Как работает ERC-4337?

Вместо изменения логики уровня консенсуса в сети Ethreum, ERC-4337 воспроизводит функциональность мемпула транзакций в системе более высокого уровня. Пользователи отправляют объекты (UserOperation), в которые упакованы транзакции пользователя вместе с подписями и другими данными для проверки. Либо майнеры, либо упаковщики (Bundler), могут упаковать набор объектов в одну связку транзакций, которая затем включается в блок Ethereum.

Как работает абстракция учетной записи?

Спецификация ERC-4337 также вводит новый механизм оплаты транзакций, который может позволить пользователям оплачивать газ с помощью токенов ERC-20 (например: USDT, USDC и т.д.) вместо ETH или позволить третьей стороне спонсировать их сборы за газ, и все это достигается децентрализованным способом.

ERC-4337 состоит из нескольких основных компонентов: UserOperation, Bundler, EntryPoint, Account Contract, Account Factory Contract и Paymaster Contract.

  • UserOperations — это объект псевдо транзакций, который используется для транзакций между умными счетами.
  • Bundlers — сборщики, которые упаковывают пользовательские транзакции из мемпула и отправляют их в контракт EntryPoint.
  • EntryPoint — смарт-контракт, который обрабатывает логику проверки и выполнения транзакций.
  • Account Contract — умный кошелек пользователя на основе смарт-контракта. Разработчики умных кошельков должны реализовать как минимум функции проверки подписей и обработки транзакций.
  • Factory Contract — функция, использующаяся для создания смарт-контрактного кошелька.
  • Paymaster Contracts — учетные записи смарт-контрактов, которые могут спонсировать сборы за газ для умных счетов или позволяют их владельцам оплачивать эти сборы токенами ERC-20 вместо ETH.

Таким образом выглядит типичный цикл транзакции, совершенной «умным кошельком».

Ключевые преимущества ERC-4337

Внедрение стандарта ERC4337 в Ethereum значительно расширяет возможности криптовалютных кошельков и способствует развитию крипто индустрии в целом. Рассмотрим, какие возможности предоставляет данный стандарт:

1. Объединение транзакций. Стандарт ERC4337 позволяет объединить множество разнообразных транзакций в одну. Данная функция особенно может быть полезна трейдерам и пользователям, которым необходимо выполнить большое количество транзакций в рамках одного взаимодействия.

2. Мультиподписные транзакции. ERC4337 позволяет выполнять транзакции, требующие подписей от нескольких учетных записей, обеспечивая совместное принятие решений и повышенную безопасность средств.

3. Социальное восстановление. Концепция социального восстановления, предложенная Виталиком Бутериным позволяет назначать опекунов, учетные записи которых могут помочь в восстановлении учетной записи, если пользователь потеряет исходную фразу или столкнется с проблемами доступа к своей учетной записи.

4. Спонсируемые транзакции. Пользователи могут получать неоспоримую выгоду от спонсируемых транзакций, когда децентрализованное приложение (dApp) или приложение кошелька покрывает комиссию за транзакцию от имени пользователя.

5. Оплата транзакций ERC-20. Стандарт позволяет оплачивать комиссию за газ с помощью токенов ERC-20 (пример: USDT, USDC и т.д.), обеспечивая большую гибкость и уменьшая зависимость от нативного токена блокчейна при оплате транзакций.

6. Подписки и лимиты. Пользователи могут настроить автоматические и регулярные платежи, что позволяет реализовывать сервисы на основе подписки. Кроме того, они могут определять собственные лимиты расходов, устанавливая оповещения и уведомления для определенных пороговых значений.

7. Эффективные алгоритмы подписи. ERC4337 способствует внедрению более простых и эффективных алгоритмов подписи транзакций, таких как подписи Шнорра или BLS. Применение таких решений подписи улучшают производительность и ускоряют обработку транзакций.

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

9. Постквантовая безопасность. Разработчики ERC4337 исследуют интеграцию алгоритмов постквантовой безопасной подписи, таких как Winternitz и Lamport, чтобы быть готовыми к будущим криптографическим угрозам. Это позволит умным кошелькам противостоять потенциальным атакам со стороны квантовых компьютеров.

10. Удобный UI/UX. ERC4337 улучшает способы взаимодействия с пользователем, за счет таких функций, как предварительное или автоматическое одобрение транзакций, а также их объединения. Данная особенность будет крайне важна для блокчейн-игр, торговых платформ и других приложений, ориентированных на большое количество повторяемых транзакций.

Концепция социального восстановления

В случае, если пользователь теряет свой приватный ключ или секретную фразу от кошелька, доступ к такому кошельку может быть потерян навсегда и его дальнейшее восстановление становится не возможным. Для решения этой проблемы, Виталик Бутерин предложил «концепцию социального восстановления».

Схема работы «социального восстановления».

Система социального восстановления работает следующим образом:

  1. Существует единый ключ подписи, который можно использовать для утверждения транзакций.
  2. Существует набор из не менее 3 или большего числа опекунов, большинство из которых могут сотрудничать, чтобы изменить ключ подписи учетной записи (ключ подписи имеет возможность добавлять или удалять опекунов).

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

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

  1. Другие устройства или бумажные мнемоники, которые принадлежат самому владельцу кошелька.
  2. Близкие друзья или члены семьи.
  3. Централизованные сервисы, которые подпишут транзакцию восстановления, при подтверждении личности пользователя.

Важным является тот факт, что опекуны могут только активировать процесс восстановления доступа к кошельку пользователя, но не могут получить к нему доступ сами.