
Account abstraction (AA) — ключевое нововведение в экосистеме Ethereum, которое радикально меняет подход к управлению аккаунтами на блокчейне. Этот метод решает многие проблемы, мешавшие массовому внедрению блокчейна среди неподготовленных пользователей, делая технологию более доступной и удобной. Благодаря разделению источников транзакций и подписей, а также расширенным возможностям безопасности аккаунта, AA существенно повышает удобство работы с блокчейном. Ведущую роль в этом процессе занимает стандарт EIP-4337.
Чтобы разобраться в account abstraction, нужно знать структуру аккаунтов в Ethereum. В сети Ethereum существуют два основных типа аккаунтов: externally owned accounts (EOA) и contract accounts (CA). EOA управляются приватными ключами и seed-фразами — пользователь хранит свои криптографические данные самостоятельно. CA — это аккаунты на базе смарт-контрактов, которые представляют собой автономные программы, работающие в блокчейне.
Account abstraction — это отделение источников транзакций от подписей и обновление EOA до функционала CA. В результате смарт-контракты получают контроль над EOA, появляется возможность создавать кошельки на смарт-контрактах. Такие кошельки делают работу пользователя с блокчейном удобнее и безопаснее, позволяя гибко управлять аккаунтом.
AA устраняет многие ограничения существующих методов управления аккаунтами. Гибкость, дополнительные возможности безопасности и новые функции делают взаимодействие с экосистемой Ethereum проще. Пользователи получают такие инструменты, как социальное восстановление, мультиподпись и настраиваемая логика проверки транзакций — всё это невозможно реализовать в обычных EOA.
Путь к account abstraction в Ethereum связан с несколькими важными предложениями по улучшению сети (EIP), каждое из которых повлияло на нынешнюю реализацию AA. Для понимания эволюции AA важно знать эти инициативы, особенно развитие EIP-4337.
EIP-2938 был одним из первых предложений по AA, предполагая, что аккаунты-смарт-контракты станут самостоятельными — смогут оплачивать комиссии и проводить транзакции без посредников. Это бы изменило модель обработки транзакций в Ethereum. EIP-3074 предложил другой подход: внедрение двух новых OpCode — AUTH и AUTHCALL, чтобы позволить EOA делегировать свои действия контракту и дать разработчикам инструменты для создания собственных объектов транзакций и механизмов проверки.
Наиболее значимым и свежим предложением стал EIP-4337, который вводит концепцию mempool операций пользователя (user ops mempool). Эта логика заменяет текущий пул транзакций и реализует AA без изменений в протоколе Ethereum. AA впервые был представлен в EIP-2938 и EIP-3074, но их отложили из-за необходимости глубоких изменений в протоколе. EIP-4337 стал прорывом — он реализует AA без вмешательства в слой консенсуса.
Если сравнить EIP-4337 с предыдущими решениями AA, особенно с EIP-3074, его преимущества очевидны. EIP-3074 требовал внедрения новых op-кодов и изменений в слое консенсуса, что усложняло внедрение и повышало риски. В результате его реализацию приостановили. EIP-4337 работает в рамках действующей архитектуры Ethereum, что делает его более надёжным и удобным для внедрения.
EIP-4337 — самое актуальное и практичное предложение для внедрения account abstraction в Ethereum. Чтобы понять, как оно реализует AA без изменений протокола, важно рассмотреть его архитектуру и составные элементы.
UserOperation — ключевой объект EIP-4337, включающий все данные, необходимые для выполнения транзакции от имени пользователя. Entry point — смарт-контракт, который выполняет пакетные транзакции user ops, выступая центральным узлом исполнения. Bundlers — специализированные узлы, собирающие user ops в пакеты и добавляющие entry point-транзакции в блоки, пока они валидны.
Кошельки на смарт-контрактах — это аккаунты, принадлежащие пользователю и реализующие логику проверки и исполнения транзакций. Фабрики кошельков — смарт-контракты, создающие новые кошельки по запросу, упрощая подключение. Агрегаторы — вспомогательные контракты, которым аккаунты доверяют проверку агрегированных подписей; bundlers заносят поддерживаемых агрегаторов в белый список. Paymasters — контракты, реализующие кастомную логику, включая гибкую оплату газа в любой валюте и на любой сети.
Взаимодействие этих компонентов формирует надёжную и гибкую систему account abstraction на базе EIP-4337. Когда пользователь инициирует транзакцию, он формирует user op с нужными данными, пока без подписи. User op отправляется bundler'у, который объединяет несколько user ops в одну транзакцию. Bundler отправляет пакетную транзакцию в контракт entry point, который идентифицирует и проверяет user ops, связанные с кошельками на смарт-контрактах. После успешной проверки кошельки исполняют транзакции через функцию ExecuteUserOp.
Процесс транзакции в AA-протоколе показывает, как компоненты EIP-4337 совместно обрабатывают операции пользователя. Все этапы процесса взаимосвязаны и играют важную роль.
Всё начинается с того, что аккаунт формирует user op с намерением провести транзакцию. User op может обращаться к данным отправителя, например, к параметрам 'maxFeePerGas' и 'maxPriorityFee'. Использование поля 'signature' определяется конкретной реализацией аккаунта, а не протоколом, что даёт гибкость в выборе механизмов аутентификации. Каждый сформированный user op поступает в специальный пул памяти, где ожидает обработки.
На этапе отправки валидаторы собирают user ops в отдельный пул. Bundler, выступая строителем блока, добавляет user ops в блоки, пока entry point-транзакции актуальны. Даже если bundler не строит блоки сам, он может использовать инфраструктуру — например, mev-boost, разделение proposer-builder или экспериментальные RPC API (eth_sendRawTransactionConditional).
Этап идентификации наступает, когда user ops поступают в контракт entry point, который исполняет пакетные user ops. Для принятия user ops bundler использует функцию validateUserOp для проверки подписей. После успешной проверки bundlers вносят поддерживаемый контракт entry point в белый список, чтобы пропускать только проверенные операции.
На этапе исполнения транзакция проводится кошельком на смарт-контракте через функцию ExecuteUserOp. Bundlers собирают наборы user op в транзакции и инициируют вызовы функций на контракте EntryPoint handleOps. Эти транзакции включаются в блоки, завершая AA-процесс по EIP-4337.
Важно понимать разницу между типами кошельков, чтобы оценить преимущества AA-кошельков по стандарту EIP-4337. Кошельки EOA, MPC и AA отличаются по характеристикам, сильным и слабым сторонам — это влияет на выбор для разных задач.
EOA-кошельки — классические аккаунты с низкими затратами на создание и небольшими комиссиями за газ. Они используют подписи ECDSA и требуют управления приватными ключами, обеспечивают базовую безопасность, но имеют ограниченный функционал. Такие кошельки не поддерживают пакетные транзакции и восстановление, а газ оплачивается только в одной валюте.
MPC-кошельки (Multi-Party Computation) тоже относятся к типу EOA, но используют распределённое управление приватными ключами с помощью криптографических протоколов. Как и EOA-кошельки, они имеют низкие затраты на создание и комиссии, используют подписи ECDSA, поддерживают оплату газа только в одной валюте. В то же время распределённое управление ключами позволяет устранить единые точки отказа. Для таких кошельков важна политика авторизации подписей вне блокчейна и прозрачность, а совместимость с экосистемой обычно ниже, чем у обычных EOA.
AA-кошельки — это аккаунты на смарт-контрактах по стандарту EIP-4337, обладающие самыми современными функциями, но требующие больших затрат на создание и большие комиссии. Они поддерживают оплату газа в разных валютах, включая сторонние токены, и пакетные транзакции. AA-кошельки могут использовать разные методы подписей, не требуют традиционного управления приватными ключами, позволяют восстанавливать кошелёк и устранять единые точки отказа. Для их работы необходим аудит on-chain-контрактов и pool operations. С внедрением EIP-4337 AA-кошельки обеспечивают безопасность на уровне блокчейна и сохраняют среднюю совместимость с экосистемой.
Хотя развитие EIP-3074 было остановлено, его подход к account abstraction помогает понять архитектурные решения EIP-4337. EIP-3074 — базовый EIP, требующий изменений в слое консенсуса, внедрения двух новых OpCode (AUTH и AUTHCALL) для использования контрактов с EOA-аккаунтами. В этом подходе были как плюсы, так и минусы.
Главное преимущество AA в EIP-3074 — возможность делегировать управление EOA контракту, позволяя разработчикам создавать новые схемы транзакций: пакетную торговлю, комбинированные сделки, гибкую оплату газа. Ещё одно преимущество — использование контрактов-посредников, которые принимают оплату не только в ETH. Такие контракты действуют как доверенные посредники между спонсором и получателем. Кроме того, EIP-3074 позволял любому EOA работать как смарт-контрактный кошелёк без отдельного деплоя контракта, что даёт мгновенную возможность апгрейда.
Однако у EIP-3074 были серьёзные недостатки, из-за которых его приостановили. Самый важный — необходимость изменений в слое консенсуса, что потенциально могло привести к хардфорку для устранения проблем. Так как EIP-3074 позволял EOA получить свойства CA, сохраняя фиксированные подписи ECDSA, это ограничивало гибкость аутентификации. Эти ограничения и риски, связанные с изменениями на уровне консенсуса, сделали подход EIP-4337 более предпочтительным для сообщества Ethereum.
Несмотря на то, что EIP-3074 был приостановлен, его идеи продолжают развиваться. EIP-5003 расширяет эти концепции, добавляя OpCode AUTHUSURP, который позволяет развертывать код по адресам, авторизованным через EIP-3074. Это предложение работает в связке с EIP-3607 и даёт путь миграции для существующих EOA, дополняя экосистему EIP-4337.
EIP-5003 реализуется вместе с EIP-3607, чтобы отозвать полномочия исходного ключа подписи у EOA. Например, если первый EOA авторизовал второй адрес через EIP-3074, OpCode AUTHUSURP позволяет второму адресу установить код для первого EOA. Таким образом, существующий EOA может обновиться до аккаунта-смарт-контракта, перейти от подписей ECDSA к более современным и защищённым методам. Это даёт возможность обновления устаревших EOA, сохраняя обратную совместимость с текущими аккаунтами и поддерживая общий фреймворк account abstraction по EIP-4337.
Account abstraction по стандарту EIP-4337 — важный этап в развитии Ethereum на пути к массовому внедрению. Решая множество проблем, которые ранее мешали доступности блокчейна, EIP-4337 делает сеть удобной и практичной для широкой аудитории. Преимущества AA — расширенные опции безопасности, гибкая оплата газа, механизмы социального восстановления, пакетные транзакции — всё это снижает порог входа в экосистему Ethereum.
Путь от первых AA-предложений, таких как EIP-2938 и EIP-3074, до внедрения EIP-4337 показывает стремление сообщества Ethereum к инновациям, приоритет по безопасности и практичности. Реализация account abstraction без изменений в слое консенсуса — более безопасный и удобный путь развития. По мере роста и внедрения технологии появятся новые сложные приложения на базе AA EIP-4337, что ещё больше улучшит пользовательский опыт и расширит возможности Ethereum. Дополнительные инициативы, такие как EIP-5003, показывают, что развитие account abstraction не остановилось — инновации в инфраструктуре блокчейна продолжаются. EIP-4337 стал основой для нового поколения управления аккаунтами Ethereum, открывая экосистему для большего числа пользователей и новых функций.
Account abstraction — это отделение источников транзакций от подписей и обновление externally owned accounts (EOA) до функционала contract accounts (CA). Благодаря этому смарт-контракты получают контроль над EOA, появляются смарт-контрактные кошельки с гибкими возможностями, повышенной безопасностью (например, социальное восстановление, мультиподпись) и значительно улучшенным пользовательским опытом работы с Ethereum.
EIP-4337 — предложение по улучшению Ethereum, позволяющее реализовать account abstraction без изменений в протоколе. В системе используются user operations (user ops), bundlers, контракты entry point и paymasters для обработки транзакций. В отличие от предыдущих инициатив, таких как EIP-3074, EIP-4337 реализует AA без изменений в слое консенсуса, что делает внедрение безопаснее и удобнее, а также даёт возможности гибкой оплаты газа и пакетных транзакций.
AA-кошельки по стандарту EIP-4337 обладают более широким функционалом по сравнению с обычными EOA-кошельками: поддержка оплаты газа в разных валютах, пакетные транзакции, восстановление кошелька, использование различных методов подписей, помимо ECDSA. Несмотря на более высокую стоимость создания и комиссии, такие кошельки обеспечивают повышенную безопасность, устраняют единые точки отказа и не требуют традиционного управления приватными ключами, что делает их более удобными и надёжными для пользователей.











