Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.
Краткий ответ
Абстракция аккаунта делает правила авторизации и исполнения аккаунта программируемыми. В Ethereum стандарт ERC-4337 реализует это без изменения типа консенсусной транзакции: кошелёк отправляет UserOperation через специализированную RPC-инфраструктуру, бандлер оборачивает одну или несколько операций в обычную транзакцию к версионируемому контракту EntryPoint, а смарт-аккаунт валидирует и исполняет собственную операцию. Восстановление, ключи доступа, сеансовые ключи, лимиты расходов, пакетные вызовы и спонсирование комиссий — функции аккаунта или сервиса, построенные поверх этого потока, а не автоматические гарантии ERC-4337.
Это отличается от ERC-1271, стандартизирующего проверку контрактом подписи сообщения, и EIP-7702, позволяющего внешнему аккаунту (EOA) делегировать исполнение коду. Механизмы могут взаимодействовать, но не имеют общей модели интерфейса, nonce, развёртывания или безопасности. Абстракция аккаунта не устраняет учётные данные, стоимость газа, контрактный риск и необходимость проверки конкретной сети и реализации.
Поток ERC-4337 в семь шагов
- Зафиксируйте среду:
chainId, реализацию смарт-аккаунта и контроль обновлений, фабрику, версию EntryPoint, адрес и хеш развёрнутого кода, поддержку бандлера и активацию EIP-7702 в сети. Адрес, действительный для одного выпуска EntryPoint или одной сети, не является универсальной константой. - Сформируйте операцию для нужной версии. Текущие логические поля включают
sender,nonce,factory,factoryData,callData,callGasLimit,verificationGasLimit,preVerificationGas,maxFeePerGas,maxPriorityFeePerGas, необязательные поля пэймастера иsignature. В сети EntryPoint получает упакованное представление; целевые вызовы кодируются внутри определяемого аккаунтомcallData, а не в универсальном поле цели. - Привяжите авторизацию к правильному домену.
userOpHashохватывает операцию без подписи и привязывает её к EntryPoint и сети, не допуская повторного использования между этими доменами. Функция аккаунтаvalidateUserOpпроверяет владельца, мультиподпись, ключ доступа, сеанс или иную политику. ERC-1271isValidSignature— отдельный интерфейс контрактной подписи; необязательный агрегатор может проверять агрегированные подписи. Кортеж авторизации EIP-7702 передаётся отдельно от UserOperation. - Подтвердите способность оплатить комиссию. Аккаунт может внести предоплату через баланс в EntryPoint, либо пэймастер может условно принять обязательство за счёт собственного депозита. Пэймастер может спонсировать пользователя, взимать токен, применять списки разрешений или квоты и запускать
postOp; ERC-4337 не фиксирует эти коммерческие правила. Стейк отличается от депозита: стейк поддерживает правила валидации и репутации, а депозит оплачивает газ. - Оцените и отправьте через RPC ERC-7769. Бандлер выполняет валидацию при получении, повторно перед отбором и ещё раз при формировании пакета. ERC-7562 ограничивает опкоды и доступ к хранилищу на этапе валидации и поддерживает репутационные меры против отказа в обслуживании. Эта симуляция проверяет допустимость и оплату комиссии; для прогноза бизнес-исполнения нужна отдельная симуляция полного вызова.
- Бандлер вызывает
handleOps. EntryPoint выполняет разрешённое развёртывание, проверку аккаунта и пэймастера, контроль предоплаты и необязательную агрегацию до исполнения. Ошибка валидации не позволяет исполнить соответствующую операцию. Целевой вызов всё равно может откатиться после успешного допуска и израсходовать газ. Атомарный откат вызовов в одном пакете аккаунта или допустимость частичного успеха определяет код исполнения аккаунта. - Сверьте квитанции и состояние. Сопоставьте квитанцию UserOperation, базовую пакетную транзакцию, события EntryPoint, развёртывание аккаунта, целевые события, фактический газ, списание токена, возврат и конечные балансы. Затем отслеживайте линии nonce, изменения владельца и восстановления, отзыв сеансовых ключей, модули, обновления реализации, альтернативы бандлера и пэймастера, реорганизации, миграцию или повторное делегирование EIP-7702.
Четыре расчётных примера
- Упрощённый лимит газа. Операция предусматривает
120,000газа на исполнение,90,000на валидацию аккаунта,45,000на валидацию пэймастера,40,000на предварительную валидацию и30,000на действие пэймастера после операции:120,000 + 90,000 + 45,000 + 40,000 + 30,000 = 325,000 gas. ПриmaxFeePerGas = 30 gweiупрощённый предел равен325,000 × 30 gwei = 0.009750 ETH. Если фактически оплачиваемое потребление составляет210,000 gasпо22 gwei, стоимость равна0.004620 ETH. Правила версии EntryPoint, штрафы за неиспользованный газ, плата за данные L1 и ценообразование роллапа могут добавлять или переклассифицировать суммы, поэтому это бюджетный регистр, а не универсальная формула предоплаты. - Параллельная линия nonce. При
192-bit keyи64-bit sequenceключ7и последовательность42кодируютnonce = (7 << 64) | 42 = 129127208515966861354 = 0x7000000000000002a. После успешного включения эта линия ожидает последовательность43; повтор42завершится неудачей. Другой ключ может иметь независимую последовательность с учётом логики аккаунта и правил бандлера. - Ёмкость пэймастера. Пэймастер имеет депозит
0.50 ETH, а каждой принятой операции нужна максимальная гарантия0.03 ETH. Он может покрытьfloor(0.50 / 0.03) = 16таких операций, зарезервировав0.48 ETHи оставив0.02 ETH. Для семнадцатой операции нужен больший депозит или меньшая гарантия. Стейк пэймастера не заменяет депозит для комиссий. - Откат исполнения после допуска. Операция резервирует до
0.0060 ETH; валидация проходит, но целевое исполнение откатывается после расхода180,000 gas × 25 gwei = 0.0045 ETH. Изменения целевого состояния откатываются, однако аккаунт или пэймастер всё равно должен0.0045 ETH; неиспользованные0.0015 ETHрегулируются применимыми правилами расчёта и штрафов. Успешная симуляция бандлера не обещает бизнес-успеха, включения или финальности.
Риски и меры контроля
- Неверная сеть, адрес EntryPoint, выпуск или хеш развёрнутого кода могут сделать операцию недействительной или направить её неверно.
- Подпись без привязки к сети или домену EntryPoint может допустить повторное воспроизведение.
- Фабрика, контрфактический адрес, данные инициализации или salt развёртывания могут быть подменены либо рассчитаны ошибочно.
- Делегирование EIP-7702 может направить EOA на вредоносный или уязвимый код с широкими полномочиями над аккаунтом.
- Опережающая или повторная инициализация может захватить либо повредить аккаунт.
- Обновление прокси или повторное делегирование EIP-7702 может конфликтовать с существующей разметкой хранилища.
- Скомпрометированный администратор обновления или модулей может заменить поведение аккаунта.
- Ошибки проверки владельца, мультиподписи, ключа доступа или ERC-1271 могут разрешить кражу либо заблокировать средства.
- Пороги, задержки, хранители и пути отмены восстановления могут отказать или быть захвачены.
- Сеансовые ключи могут превысить задуманный охват цели, токена, суммы, срока или функции.
- Линии nonce могут пересекаться, образовывать разрывы, воспроизводиться или блокировать зависимые операции.
- Отказ агрегатора или дефекты агрегации подписей могут заблокировать в остальном действительные операции.
- Бандлеры могут цензурировать, отключаться, применять разные локальные политики или отклонять правила альтернативного mempool.
- Публичный поток UserOperation может раскрыть намерение для опережения, корреляции и MEV.
- Валидация может пройти до изменения состояния, делающего операцию недействительной при формировании пакета.
- Политика пэймастера может отказать в обслуживании, его депозит может исчерпаться, а
postOp— завершиться ошибкой. - Комиссия за газ в токенах может включать валютный риск, риск разрешения, спред и наценку сервиса.
- Недооценка газа может вызвать откат; завышенные лимиты увеличивают резервирование или штрафной риск.
- Семантика пакета аккаунта может разрешить частичный успех, когда пользователь ожидает атомарный откат.
- Ошибки целевого протокола, враждебные интерфейсы, реорганизации сети и слабая финальность остаются вне абстракции аккаунта.
Распространённые заблуждения
- «Абстракция аккаунта устраняет закрытые ключи». Она меняет программируемую политику учётных данных; какие-либо данные всё равно должны авторизовать действия.
- «Пэймастер делает газ бесплатным». Нативный газ всё равно оплачивается, и затраты в конечном счёте несёт пользователь, спонсор или сервис.
- «Симуляция бандлера гарантирует успех». Симуляция допуска не гарантирует исполнение, включение или финальность.
- «ERC-1271, ERC-4337 и EIP-7702 — один интерфейс». Они решают разные задачи подписи, потока транзакций и делегирования.
- «Любые сеть, кошелёк и EntryPoint совместимы и безопаснее». Поддержку, версии, развёртывания, код, модули и контроль нужно проверять отдельно.
Связанные темы
Источники
- ERC-4337: Account Abstraction Using Alt Mempool
- ERC-7562: Account Abstraction Validation Scope Rules
- ERC-7769: JSON-RPC API for ERC-4337
- ERC-1271: Standard Signature Validation Method for Contracts
- EIP-7702: Set Code for EOAs
- The EntryPoint Contract
- Simulation Requirements
- Releases - eth-infinitism/account-abstraction