Zelcore

Архітектура ERC-4337: EntryPoint, бандлери й пеймастери без зайвих клопотів

8 хв читання
Архітектура ERC-4337: EntryPoint, бандлери й пеймастери без зайвих клопотів

Абстракція облікових записів в Ethereum має дві канонічні адреси, які варто запам’ятати. EntryPoint v0.6 розташований за адресою 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789. EntryPoint v0.7, розгорнутий на початку 2024 року, — за адресою 0x0000000071727De22E5E9d8BAf0edAc6f37da032. Кожна транзакція ERC-4337 у мейннеті, Arbitrum, Optimism, Base, Polygon та більшості інших EVM-мереж проходить через один із цих двох одиничних контрактів. Якщо ви розумієте, що роблять ці контракти та які ще п’ять ролей взаємодіють із ними, ви розумієте ERC-4337.

Це друга частина нашої серії про смарт-акаунти. У першій частині ми розглянули, чому EOA — невдалий варіант за замовчуванням. Тут зазирнемо під капот: розберемо шість ролей, структуру UserOperation, що саме відбувається під час обміну токенів зі смарт-акаунта, зміни між v0.6 і v0.7, пеймастерів, публічні альтернативні мемпули й приватних бандлерів, а також очікувані додаткові витрати.

Шість ролей на одній схемі

ERC-4337 розподіляє завдання, яке EOA виконує за один крок, між шістьма учасниками, що співпрацюють. Для цього не знадобилося хардфорку Ethereum — уся система складається з контрактів і позаланцюгової інфраструктури.

Пам’ятайте про ці шість ролей. Решта статті — це лише їхня взаємодія.

Структура UserOperation

UserOperation — це набір полів у форматі, сумісному з JSON-RPC. Після підписання він виражає намір, але ще не фіксує його в L1. Структура v0.7 містить 11 логічних полів:

Схему підпису обирає гаманець. Поширений варіант — ECDSA на secp256k1, але за тим самим інтерфейсом можуть працювати перевірка P-256/passkey, мультипідпис, порогові схеми соціального відновлення та підписанти з ключами сеансу. Уся суть саме в цій гнучкості.

Від початку до кінця: як смарт-акаунт обмінює USDC на ETH

Розгляньмо реальний обмін і простежмо, як послідовно спрацьовують усі ролі.

  1. Користувач натискає «Обмін» в інтерфейсі гаманця. Гаманець формує UserOperation: sender = 0xUserSafe, callData = swapUSDCforETH(amount) для виклику Uniswap.
  2. Оцінка комісії за газ. Гаманець викликає eth_estimateUserOperationGas через RPC бандлера. Бандлер симулює операцію через EntryPoint і повертає три ліміти газу.
  3. Користувач підписує. Гаманець хешує UserOp разом з адресою EntryPoint і ідентифікатором мережі, запитує підпис у користувача (passkey, апаратний ключ тощо) і додає його.
  4. Надсилання. Підписану UserOp надсилають через eth_sendUserOperation одному чи кільком бандлерам. Вона потрапляє до альтернативного мемпулу — окремої P2P-мережі, відокремленої від звичайного мемпулу транзакцій Ethereum.
  5. Симуляція бандлером. Бандлер повторно симулює операцію за допомогою eth_call щодо simulateValidation. Він перевіряє правила доступу до сховища ERC-7562: під час валідації UserOp може звертатися лише до власного сховища, інакше зловмисники можуть завдати бандлеру збитків.
  6. Об’єднання в пакет. Бандлер об’єднує цю UserOp із приблизно 10 іншими в один виклик handleOps([...userOps], beneficiary) до EntryPoint.
  7. Виконання в блокчейні. EntryPoint перебирає операції: для кожної викликає validateUserOp відправника, списує попередньо внесену суму, а потім виконує callData. Обмін через Uniswap запускається зі смарт-акаунта.
  8. Повернення коштів. EntryPoint повертає відправнику (або пеймастеру) кошти за невикористаний газ і сплачує на адресу бенефіціара бандлера.

Якщо крок 5 завершується невдало, бандлер відхиляє операцію, а користувач бачить код помилки AAxx. Найчастіше це AA21 (не сплачено попередньо внесену суму), AA23 (помилка підпису), AA25 (недійсний nonce), AA33 (відкат пеймастера) і AA40 (перевищено ліміт газу на перевірку). Запам’ятайте ці коди — ви з ними зіткнетеся.

EntryPoint v0.6 і v0.7

v0.6 запустили в березні 2023 року за адресою 0x5FF1…2789. Він працював, але мав три прикрі недоліки: єдиний блок paymasterAndData, що об’єднував три параметри газу, незручне пакування initCode і облік газу, через який із відправників стягували забагато. У v0.7 виправили всі три проблеми.

Основні зміни у v0.7, про які варто знати:

v0.6 і досі працює та використовується: багато гаманців почали постачати сумісні з v0.7 модулі лише протягом 2024 року. На більшості блокчейнів обидва EntryPoint працюють паралельно роками.

Пеймастери: хто сплачує комісію за газ

Пеймастер — це контракт, який тримає ETH у стейку в EntryPoint і погоджується покривати комісію за газ для UserOp, що відповідають його політиці. Найпоширеніші три різновиди:

validatePaymasterUserOp пеймастера виконується під час фази валідації EntryPoint. Якщо вона завершується відкатом, ви отримуєте AA33. Якщо в пеймастера закінчується стейк, EntryPoint стягує його, а бандлер зазнає збитків — саме тому бандлери ведуть списки репутації пеймастерів. ERC-7562 визначає ці правила репутації, щоб мемпул бандлера залишався стійким до спаму. Ті самі базові принципи пояснюють, чому безпечна робота з дозволами DeFi та мультипідписами так само добре застосовується у світі 4337: загрози ті самі, змінюється лише оболонка.

Публічний alt-mempool чи приватний бандлер

Є два способи розмістити UserOp у блокчейні.

Публічний alt-mempool: бандлери, сумісні з ERC-7562, поширюють UserOp через мережу libp2p. Вашу операцію може підхопити будь-хто, хто запускає вузол Pimlico, Stackup, Alchemy, Etherspot або Voltaire. Це не потребує дозволу й захищає від цензури, але ви зазнаєте тих самих ризиків MEV, що й зі звичайними транзакціями Ethereum: пошукові системи бачать вашу операцію ще до включення в блок.

Приватний бандлер: ви надсилаєте eth_sendUserOperation безпосередньо до RPC одного провайдера. Той моделює виконання, формує пакет і надсилає його приватно (часто через Flashbots). Це швидше й захищає від MEV, але ви покладаєтеся на те, що бандлер не цензуруватиме вашу операцію й не випереджатиме її. У 2026 році більшість споживчих гаманців за замовчуванням використовують приватних бандлерів.

Цей компроміс подібний до вибору між публічним мемпулом і Flashbots Protect для звичайних транзакцій. Якщо ви ще не знайомі з життєвим циклом транзакції з часів L1, у цьому огляді пояснено, що змінюється, коли до процесу долучається бандлер.

Агрегатори, поширення й вартість

Агрегатори — це контракти, які перевіряють пакети за допомогою однієї перевірки підпису. Типовий приклад — BLS: ви збираєте 50 UserOp, підписаних за допомогою BLS, об’єднуєте підписи в одну перевірку парингу й заощаджуєте близько 95% витрат газу на підписи. Технологія повільно поширюється, адже створювати гаманці з підписами BLS складно, а економія на газі виправдовує зусилля лише за великого обсягу операцій. Станом на середину 2026 року агрегатори використовують менш ніж 1% UserOp у мейннеті.

Дані про поширення (Q1 2026, bundlebear.com): приблизно 380 мільйонів UserOp сукупно в усіх мережах; більшість припадає на Base, Polygon і Arbitrum. Частка мейннету становить близько 6–8% — це найменший показник за обсягом, але найбільший за вартістю переказаних активів. Основний потік споживчих операцій забезпечують Coinbase Smart Wallet, Farcaster і Argent.

Додаткові витрати: UserOp у версії v0.7 потребує приблизно на 30,000–40,000 одиниць газу більше, ніж еквівалентна транзакція EOA. Ці витрати йдуть на цикл EntryPoint, перевірку й обслуговування пакета. У мейннеті за ціни 20 gwei це частка долара за операцію. Перше розгортання акаунта через factoryData додає ще близько 250,000 одиниць газу. У L2, де основні витрати припадають на calldata, накладні витрати становлять менше 10%. Спонсоровані UserOp переносять ці витрати на dApp, тому в споживчих застосунках ви бачите безкоштовні транзакції, а в серйозних DeFi-застосунках — ні. У ширшому огляді комісій за транзакції пояснено, як ці додаткові витрати впливають на різні ринки комісій.

Коротко: ERC-4337 — це шість ролей (відправник, UserOp, бандлер, EntryPoint, пеймастер, агрегатор), одна структура, дві адреси EntryPoint, які варто запам’ятати, і близько 30–40 тис. одиниць газу додаткових витрат. Натомість ви отримуєте довільні схеми підпису, спонсорування газу, пакетування й паралельні nonce. У третій частині цієї серії йтиметься про EIP-7702 — паралельний напрям Pectra, який дає змогу вашому наявному EOA використовувати той самий механізм без зміни адреси.


Читайте також

Гаманці, газ і дозволи: три речі, які має розуміти кожен користувач DeFi

Гаманці, газ і дозволи: три речі, які має розуміти кожен користувач DeFi

Перш ніж обмінювати токени, позичати чи фармити, важливо зрозуміти три основи кожної взаємодії з DeFi: гаманець, газ і дозволи на використання токенів.

6 хв читання
Акаунти, контракти й EVM: як насправді виконує код Ethereum

Акаунти, контракти й EVM: як насправді виконує код Ethereum

Ethereum замінює UTXO-гаманець Bitcoin величезною таблицею акаунтів і стековою машиною з обліком газу. Дізнайтеся, як працюють стан, опкоди та переказ ERC-20.

9 хв читання
Механіка комісій за газ в Ethereum: EIP-1559, пріоритетні комісії та комісії за блоби після Dencun

Механіка комісій за газ в Ethereum: EIP-1559, пріоритетні комісії та комісії за блоби після Dencun

Як насправді працюють комісії за газ в Ethereum у 2026 році: аукціон базової комісії EIP-1559, чайові у вигляді пріоритетної комісії та незалежний ринок блобів, започаткований оновленням Dencun і розширений завдяки Pectra.

8 хв читання

Підпишіться на нашу розсилку

Раз на місяць — дружній лист від нас. Жодного спаму, лише останні новини Zelcore.

Підпишіться на нашу розсилку