Краткое напоминание об ERC-4337
ERC-4337 — это стандарт Ethereum для абстракции аккаунтов — способ дать смарт-контрактным аккаунтам ту же первоклассную способность инициировать и оплачивать действия, которая всегда была у управляемых извне аккаунтов (EOA), без каких-либо изменений базового протокола. Вместо изменения уровня консенсуса ERC-4337 вводит параллельную систему объектов более высокого уровня и офчейн-инфраструктуры, которая в итоге рассчитывается через обычные транзакции Ethereum. Если сначала вам нужна версия с нуля, наше объяснение что такое абстракция аккаунтов охватывает мотивацию, а что такое ERC-4337 описывает весь стандарт. Эта статья приближается к механике: объектам, которые движутся через систему, и участникам, которые их обрабатывают. Обратите внимание, что ERC-4337 — это стандарт EVM: он применяется к Ethereum и EVM-совместимым сетям, но не к сетям вне EVM, таким как Solana или TON.
Что такое UserOperation на самом деле
Центральный объект в ERC-4337 — UserOperation. Внешне он похож на транзакцию, но его лучше понимать как подписанное заявление о намерении: «вот что мой аккаунт хочет сделать, и вот параметры для проверки и оплаты этого». UserOperation несёт такие поля, как аккаунт-отправитель, nonce, calldata для выполнения, лимиты газа, параметры комиссии, необязательное поле paymasterAndData и подпись.
Ключевое отличие от обычной транзакции — в том, кто и что её подписывает. Обычная транзакция Ethereum должна быть подписана приватным ключом EOA по фиксированной схеме ECDSA, и этот же аккаунт платит газ. UserOperation проверяется собственной логикой смарт-контрактного аккаунта отправителя — которая может реализовывать любую схему подписи, правило нескольких ключей или политику авторизации, определённую аккаунтом, — и она вовсе не обязана платить за себя нативным газом. В этой гибкости и весь смысл: аккаунт, а не протокол, решает, как выглядит допустимое действие.
Альтернативный мемпул, где они живут
UserOperation не попадают в обычный мемпул транзакций Ethereum, потому что они ещё не транзакции. Вместо этого они транслируются в отдельный альтернативный мемпул (часто называемый alt-мемпул) — одноранговую сеть, посвящённую объектам ERC-4337. Кошельки и dApp отправляют UserOperation сюда, а инфраструктура, которая их потребляет, слушает эту сеть, а не мемпул базового уровня. Такое разделение держит трафик абстракции аккаунтов вне критичного для консенсуса пути до того момента, пока он не будет упакован в настоящую транзакцию.
Роль бандлера
Бандлер — это офчейн-участник, превращающий намерения в ончейн-реальность. Его работа состоит из четырёх частей. Во-первых, он собирает UserOperation из альтернативного мемпула. Во-вторых, он симулирует и проверяет каждую из них — запуская логику проверки аккаунта в симулированном контексте, чтобы подтвердить, что подпись действительна, nonce верен, а аккаунт (или его пейместер) может покрыть стоимость, — соблюдая при этом правила, не позволяющие операциям потреблять ресурсы, за которые они не могут заплатить. В-третьих, он упаковывает одну или несколько действительных UserOperation в одну обычную транзакцию Ethereum. В-четвёртых, он отправляет эту транзакцию в сеть со своего собственного EOA, авансируя газ базового уровня и рассчитывая на возмещение ончейн.
Поскольку бандлер авансирует газ и зарабатывает комиссии за включение, он ведёт себя во многом как специализированный сборщик блоков для трафика абстракции аккаунтов. Его защищает именно шаг симуляции и проверки: он не станет включать в пакет операцию, которая не смогла бы ему возместить затраты.
Контракт EntryPoint
Всё сходится в едином каноническом смарт-контракте под названием EntryPoint. Транзакция бандлера — это вызов EntryPoint с массивом UserOperation. Затем EntryPoint выполняет строгий двухфазный цикл. В фазе проверки для каждой операции он вызывает функцию проверки аккаунта-отправителя (и пейместера, если он указан), чтобы перепроверить подпись, nonce и договорённость об оплате ончейн. Только после того как все операции в пакете проверены, он переходит к фазе выполнения, где направляет calldata каждой операции её аккаунту, чтобы фактически выполнить перевод, своп или другое действие.
Это разделение важно: проверка и выполнение разделены так, чтобы гарантии оплаты пакета устанавливались до запуска любой работы, изменяющей состояние, и чтобы EntryPoint мог точно учитывать газ сразу по многим операциям.
Где место пейместера
Пейместер — это необязательный контракт, который соглашается оплатить UserOperation от имени аккаунта. Когда UserOperation включает данные пейместера, EntryPoint во время фазы проверки спрашивает этот пейместер, будет ли он спонсировать операцию и на каких условиях. Пейместер может согласиться безусловно (настоящее спонсирование без газа) или согласиться в обмен на ценность — что наиболее полезно, списывая с пользователя оплату в токене ERC-20 вместо нативного газа. Для более подробного разбора этого компонента см. что такое пейместер. Пейместер — это точка в процессе, которая отделяет «чем платит пользователь» от «в чём получает оплату сеть».
Как обрабатываются газ и сбои
Газ в ERC-4337 многослоен. Бандлер платит реальный ETH за внешнюю транзакцию; EntryPoint измеряет газ проверки и выполнения каждой UserOperation относительно объявленных ею лимитов; а тот, кто отвечает по счёту — аккаунт или его пейместер — должен был застейкать или внести достаточно, чтобы покрыть счёт, который EntryPoint рассчитывает в конце. Сбои сдерживаются благодаря дизайну «сначала проверка». Если операция даёт сбой во время ончейн-проверки, она просто исключается и не может попасть в сеть, а офчейн-симуляция бандлера призвана выявить это до отправки. Если операция проходит проверку, но её выполнение откатывается, эффекты выполнения откатываются, тогда как уже потраченный газ всё равно учитывается и оплачивается — так что бандлер не остаётся без вознаграждения за честную работу. Именно поэтому бандлеры так тщательно симулируют: их защита от грифинга — это отказ включать что-либо, что не возместит им затрат.
Как это использует WATS
В EVM-сетях WATS опирается ровно на один элемент этого процесса: пейместер ERC-4337. Когда вы делаете перевод, своп или стейкинг в WATS Hot Wallet, именно пейместер позволяет взимать вашу комиссию в ATS, а не в нативном газе сети — вам никогда не нужно держать ETH, BNB или любой другой газовый токен, чтобы совершать транзакции. Поскольку ATS — это OFT на LayerZero, единый баланс ATS покрывает комиссии в EVM, Solana и TON (в сетях вне EVM роль пейместера играет эквивалентный плательщик комиссии), а собранный ATS сжигается со 100 000 000 к нижней границе в 30 000 000. WATS остаётся полностью некастодиальным — вы держите собственные ключи — и это первый и единственный кошелёк, сочетающий комиссии в одном токене ERC-4337 + OFT, взимаемые вместо нативного газа, с таким сжиганием. См. как работает модель комиссии ATS, чтобы увидеть полную картину.
Часто задаваемые вопросы
В чём разница между UserOperation и обычной транзакцией Ethereum?
Обычная транзакция подписывается управляемым извне аккаунтом по фиксированной схеме ECDSA и платит собственный газ в нативном токене сети. UserOperation — это объект намерения более высокого уровня, проверяемый собственной логикой смарт-контрактного аккаунта отправителя, которая может использовать пользовательские правила, и она не обязана платить за себя нативным газом — комиссию может покрыть пейместер. UserOperation также проходят через отдельный альтернативный мемпул, а не через стандартный мемпул транзакций.
Что на самом деле делает бандлер ERC-4337?
Бандлер собирает UserOperation из альтернативного мемпула, симулирует и проверяет каждую, чтобы подтвердить подписи, nonce и возможность покрыть оплату, затем упаковывает действительные в одну обычную транзакцию Ethereum, вызывающую контракт EntryPoint. Он отправляет эту транзакцию со своего собственного аккаунта, авансируя газ базового уровня и рассчитывая на возмещение ончейн. Тщательная симуляция и защищает бандлер от включения операций, которые не вернут ему затраты.
Позволяет ли ERC-4337 платить комиссию за газ в токене, отличном от ETH?
Да, когда используется пейместер. Пейместер — это необязательный контракт, который может спонсировать UserOperation и вместо взимания нативного газа принимать оплату в токене ERC-20, оплачивая фактическую сетевую комиссию отдельно. Именно так кошелёк может позволить вам совершать транзакции без владения нативным газовым токеном сети. ERC-4337 и его пейместеры существуют только в EVM; сети вне EVM, такие как Solana и TON, достигают похожего результата с помощью эквивалентного плательщика комиссии или релеера.

