

Account abstraction (AA) — это ключевое нововведение в экосистеме Ethereum, радикально меняющее принципы управления индивидуальными аккаунтами на блокчейне. Эта технология устраняет многие проблемы, которые ранее отпугивали пользователей, не связанных с криптовалютами, и предлагает решения, существенно снижающие барьеры для входа. Главные преимущества заключаются в отделении источника транзакции от подписи и предоставлении пользователям новых возможностей управления безопасностью аккаунта благодаря таким стандартам, как EIP-4337.
Чтобы разобраться в account abstraction, важно понимать два типа аккаунтов в сети Ethereum. Externally Owned Accounts (EOA) — это стандартные пользовательские аккаунты, которыми управляют с помощью приватных ключей и сид-фраз. В отличие от них, contract accounts (CA) работают под контролем смарт-контрактов и поддерживают программируемую логику.
Account abstraction — это архитектурное изменение, при котором источник транзакции отделяется от подписи, а EOA получают функциональность CA. Теперь смарт-контракты могут контролировать EOA, что открывает возможности для создания смарт-контрактных кошельков. Такой подход кардинально улучшает пользовательский опыт, расширяет возможности управления аккаунтами и позволяет по-новому взаимодействовать с блокчейном.
Сообщество Ethereum поддержало account abstraction за счет его способности радикально упростить управление аккаунтами. Технология делает ранее жесткие on-chain-действия гибкими и позволяет реализовывать более динамичные механизмы транзакций. Также пользователи получают расширенные опции безопасности, выходящие за рамки стандартного управления приватным ключом.
Вместе эти новшества решают целый ряд проблем, с которыми сталкивались пользователи Ethereum. Account abstraction упрощает сложные процессы и делает управление аккаунтом интуитивно понятным, облегчая взаимодействие с экосистемой Ethereum и делая блокчейн более доступным.
Эволюция account abstraction связана с несколькими важными Ethereum Improvement Proposal (EIP), которые определили современную архитектуру сети. EIP-2938 предлагал сделать contract-аккаунты самостоятельными, предоставив им возможность оплачивать комиссии и совершать транзакции. EIP-3074 вводил два новых OpCode — AUTH и AUTHCALL, что позволило EOA делегировать операции контрактам, а разработчикам — гибко проектировать объекты транзакций и механизмы верификации.
EIP-4337 — это актуальный стандарт реализации account abstraction, который создает memory pool пользовательских операций (user ops). Эта новая логика заменяет традиционный pool транзакций и позволяет внедрять AA без изменений в ядре Ethereum. Предложения 2020 года, такие как EIP-2938 и EIP-3074, были отложены из-за необходимости значительных изменений протокола, что делает протокольно-независимый подход EIP-4337 особенно ценным для развития экосистемы.
Хотя EIP-4337 может показаться сложным новичкам, он значительно превосходит предыдущие решения. Ранний EIP-3074 требовал внедрения двух новых OpCode, что подразумевало масштабные изменения на уровне консенсусного слоя Ethereum. Такие изменения несли существенные риски и затрудняли внедрение, в результате чего предложение было приостановлено. В свою очередь, EIP-4337 реализует account abstraction без доработок протокола, что делает его более практичным и доступным вариантом.
EIP-4337 реализует account abstraction на базе нескольких ключевых компонентов. UserOperation — это объект, который пользователь формирует для отправки транзакции, и который содержит всю необходимую информацию. Entry point — контракт, координирующий выполнение пакетных транзакций пользовательских операций.
Bundler — это узлы, которые обрабатывают пользовательские операции, формируя пакетные транзакции и добавляя entry point-транзакции в блоки, поддерживая их валидность. Wallet contract — это смарт-контракт аккаунта пользователя, выполняющий операции. Wallet factory — смарт-контракт, позволяющий создавать новые смарт-контрактные кошельки по запросу пользователя.
Aggregator — специализированный контракт, которому аккаунты доверяют проверку агрегированных подписей; bundler поддерживает белый список агрегаторов. Paymaster — контракт, реализующий кастомную логику, в том числе оплату газа в любой валюте и в разных сетях. Такая архитектура делает процесс AA проще, но при этом сохраняет безопасность и децентрализацию, превращая EIP-4337 в эффективное решение для современных блокчейн-приложений.
Процесс транзакций по EIP-4337 включает несколько этапов, обеспечивающих работу account abstraction. Понимание этих этапов важно для понимания принципов работы системы на практике.
Когда аккаунт инициирует транзакцию, он создает объект пользовательской операции. В нем содержатся все данные об адресе отправителя, включая параметры 'maxFeePerGas' и 'maxPriorityFee'. Поле 'signature' определяется реализацией аккаунта, а не протоколом, что дает гибкость в выборе механизмов аутентификации. Каждый объект пользовательской операции поступает в отдельный memory pool, не связанный с классическим пулом транзакций.
Валидаторы формируют из пользовательских операций пакеты, используя отдельный memory pool. Bundler выступает блок-билдером и добавляет пользовательские операции в блоки, если entry point-транзакции остаются валидными. Даже если bundler не строит блоки напрямую, он может реализовать функцию через существующую инфраструктуру — например, через mev-boost, различные механизмы разделения proposer-builder и экспериментальные RPC API (eth_sendRawTransactionConditional) — все это облегчает эффективное включение пакетных транзакций.
После отправки пользовательские операции поступают в контракт entry point, который исполняет пакетные операции. Bundler использует функцию validateUserOp для проверки подписи каждой операции до ее принятия. При успешной валидации bundler вносит поддерживаемый entry point-контракт в белый список, формируя доверие и обеспечивая последующую обработку транзакций.
Завершение транзакций происходит через функцию ExecuteUserOp в смарт-контракте кошелька. Bundler группирует объекты пользовательских операций в транзакции и инициирует вызовы функций handleOps в смарт-контракте EntryPoint. После этого транзакции включаются в блоки, что завершает цикл и фиксирует действия пользователя в блокчейне.
Разные типы кошельков имеют свои особенности. EOA-кошельки используют externally owned accounts, отличаются низкой стоимостью создания и комиссией, поддерживают только оплату газа одной валютой и подписи ECDSA. Требуется управление приватным ключом, штатное восстановление отсутствует, а базовая безопасность не устраняет единые точки отказа, несмотря на высокую совместимость с экосистемой.
MPC-кошельки также основаны на EOA и аналогичны по стоимости, но используют подписи на основе multi-party computation. Требуют управления приватным ключом, но допускают офлайн-восстановление на доверенных устройствах. В вопросах безопасности важны off-chain-политики авторизации и прозрачности; совместимость с экосистемой ниже, чем у обычных EOA-кошельков.
AA-кошельки, построенные на принципах EIP-4337, используют contract accounts с более высокими затратами на создание и комиссию, но поддерживают оплату газа в разных валютах и сторонние токены. Позволяют отправлять пакетные транзакции, работают с разными типами подписей, не требуют управления приватным ключом. Восстановление возможно, а после внедрения EIP-4337 обеспечивается безопасность на уровне сети. Такие кошельки требуют аудита on-chain-контрактов и пулов, обладают средней совместимостью с экосистемой и исключают единые точки отказа.
EIP-3074 был отложен, так как является core EIP, требующим изменений на уровне консенсусного слоя. Проект предлагал внедрение двух новых OpCode, чтобы EOA могли взаимодействовать с контрактами, что открывало новые возможности и порождало сложности реализации.
Главное преимущество EIP-3074 — возможность делегировать управление EOA контрактам, предоставляя разработчикам гибкую платформу для новых схем транзакций. Среди них — batch trading, пакетная торговля и гибкая оплата газа, которые улучшают пользовательский опыт. Решение использует invoker-контракты, которые принимают токены, отличные от ETH, и выступают как доверенные посредники между спонсорами и спонсируемыми. Кроме того, EIP-3074 позволяет любому EOA функционировать как смарт-контрактный кошелек без развертывания контракта, упрощая внедрение.
Главная проблема EIP-3074 — необходимость изменений в консенсусном слое. Это сопряжено с серьезными рисками и может потребовать хардфорков для решения возникающих проблем. Кроме того, хотя EIP-3074 расширяет функциональность EOA, механизм подписи остается фиксированным (ECDSA), что не позволяет использовать произвольные подписи и уменьшает гибкость аутентификации.
Несмотря на перенос EIP-3074, проект не был полностью закрыт. EIP-5003 вводит OpCode AUTHUSURP, который размещает код по адресу, авторизованному по EIP-3074, и работает совместно с EIP-3607, отменяя полномочия исходного ключа подписи для EOA. Например, если первый EOA авторизует второй адрес для действий от своего имени по EIP-3074, OpCode AUTHUSURP позволяет второму адресу установить коды первого EOA. Это позволяет существующим EOA переходить на CA и использовать более эффективные и безопасные методы подписи, сохраняя преимущества EIP-3074 и устраняя часть его ограничений.
Account abstraction по стандарту EIP-4337 — важный этап эволюции Ethereum на пути к массовому внедрению. Благодаря инновационным архитектурным решениям этот стандарт устраняет ключевые проблемы, предлагает расширенные опции безопасности, гибкие механизмы оплаты газа и улучшает пользовательский опыт. Эти нововведения снижают барьер для входа, делая блокчейн Ethereum доступнее широкой аудитории. По мере интеграции EIP-4337 в основные платформы и кошельки account abstraction меняет подход к работе с блокчейном, открывая путь к более широкому использованию криптовалют и развитию сложных децентрализованных приложений. EIP-4337 устанавливает новый стандарт инфраструктуры кошельков и доказывает, что account abstraction способен радикально повысить удобство блокчейна без ущерба для безопасности и децентрализации.
EIP-4337 внедряет account abstraction в Ethereum, позволяя пользователям создавать контрактные аккаунты для управления транзакциями без внешнего владельца. Он разделяет верификацию и механизм проведения транзакций, обеспечивая более эффективное и безопасное взаимодействие через объекты UserOperation.
ERC-4337 — протокол Ethereum для account abstraction. Он вводит смарт-аккаунты, улучшает удобство работы и позволяет платить комиссии ERC-20 токенами или через третьих лиц без изменений в консенсусном слое.
Нет, EIP (Ethereum Improvement Proposal) и ERC (Ethereum Request for Comment) — разные понятия. EIP касается изменений протокола, а ERC определяет стандарты токенов и смарт-контрактов.
ERC-4337 — стандарт Ethereum для account abstraction, позволяющий использовать смарт-контрактные кошельки, безгазовые транзакции и улучшенный пользовательский опыт.









