
Абстракція акаунтів (AA) стала ключовою зміною в екосистемі Ethereum. Вона докорінно змінює управління акаунтами та взаємодію користувачів з блокчейном. Цей гід детально розглядає механізми, переваги та впровадження абстракції акаунтів з особливим акцентом на EIP-4337 — найновішу пропозицію, яка дозволяє AA без змін у протоколі Ethereum.
Абстракція акаунтів — це новий підхід до адміністрування акаунтів у Ethereum. У мережі існують два типи акаунтів: акаунти зовнішніх користувачів (EOA) та акаунти контрактів (CA). EOA контролюються приватними ключами і seed-фразами; користувачі повинні самостійно захищати свої криптографічні дані. Акаунти контрактів управляються кодом смартконтракту, що забезпечує програмовану логіку для адміністрування акаунтів.
Абстракція акаунтів — це процес розділення джерел транзакцій і підписів та модернізація EOA для роботи, близької до CA. Смартконтракти можуть контролювати EOA, створюючи смартконтракт-гаманці. Такий підхід забезпечує гнучке управління акаунтами, усуває більшість обмежень класичних EOA та відкриває нові можливості: вдосконалені механізми безпеки, гнучку авторизацію транзакцій і покращений користувацький досвід.
Спільнота Ethereum підтримує абстракцію акаунтів, оскільки вона спрощує та покращує управління акаунтами. Головна перевага — підвищення гнучкості дій у блокчейні. Звичайні EOA мають обмежений функціонал, а AA надає програмовану логіку акаунтів для різних сценаріїв використання.
AA забезпечує більш високий рівень безпеки. Користувачі можуть використовувати багато-підписні схеми, соціальне відновлення та інші сучасні механізми захисту, які раніше були недоступні для EOA. Це дозволяє уникнути безповоротної втрати коштів у разі втрати приватних ключів або seed-фраз. Крім того, AA усуває проблеми користувацького досвіду, такі як необхідність утримувати ETH для оплати gas та неможливість групування транзакцій. Такі зміни роблять Ethereum більш доступним для широкого кола користувачів.
Розвиток абстракції акаунтів у Ethereum супроводжувався важливими пропозиціями EIP, які сформували сучасний стан AA. Це дозволяє краще зрозуміти значення EIP-4337.
EIP-2938 був першою спробою реалізувати AA через виведення акаунтів контрактів у статус «top-level» для самостійної оплати комісій і виконання транзакцій. EIP-3074 запропонував два нових OpCodes — AUTH та AUTHCALL — для делегування дій EOA контрактам, відкривши гнучкі можливості для розробників.
Поняття абстракції акаунтів отримало увагу з EIP-2938 і EIP-3074, але обидві пропозиції вимагали зміни протоколу на рівні консенсусу, що створювало ризики і складності. Тому їх призупинили. Запуск EIP-4337 дозволяє AA без змін у протоколі, роблячи підхід більш практичним і безпечним.
Серед різних AA-рішень EIP-4337 отримав перевагу. EIP-3074 вимагав впровадження нових op code на рівні консенсусу, що означало hard fork і масштабні зміни у протоколі Ethereum, створюючи технічні та координаційні труднощі.
EIP-4337 реалізує абстракцію акаунтів без змін у консенсусному шарі. Це знижує ризики і спрощує ітерації у разі проблем. Натомість EIP-4337 додає інфраструктурні компоненти — bundlers і paymasters — які працюють поза основним протоколом і можуть змінюватися без координації по всій мережі.
EIP-4337 містить складну систему компонентів для реалізації абстракції акаунтів. Основні елементи:
UserOperation — базові псевдо-транзакційні об'єкти, що містять всю інформацію для виконання транзакції від імені користувача. Їх створюють користувачі, які хочуть надіслати транзакцію, але ще не підписали її у традиційному вигляді.
Entry point — єдиний смартконтракт, який координує виконання групових UserOperation, перевіряє та обробляє user ops, забезпечує відповідність вимогам.
Bundlers — вузли, які збирають UserOperation з окремого пулу пам'яті та упаковують їх у bundle-транзакції. Вони можуть співпрацювати з інфраструктурою блокбілдингу та відіграють ключову роль у включенні UserOperation до блоків.
Контракти-гаманці — смартконтрактні акаунти, які належать користувачам і реалізують логіку перевірки підписів та виконання транзакцій на основі UserOperation.
Фабрики гаманців — смартконтракти для розгортання нових смартконтракт-гаманців на вимогу.
Агрегатори — додаткові контракти для перевірки агрегованих підписів, що допомагає знижувати витрати на gas при одночасній верифікації кількох операцій.
Paymasters — інноваційні контракти, які забезпечують гнучкі варіанти оплати gas: спонсорування транзакцій, оплата у токенах ERC-20 або власна логіка оплати. Це підвищує зручність роботи користувача.
Схема транзакцій у EIP-4337 суттєво відрізняється від класичних Ethereum-транзакцій. Процес складається з кількох етапів, кожен з яких має важливе значення для життєвого циклу транзакції.
Користувач створює UserOperation, що містить всю необхідну інформацію: адресу відправника, параметри gas (maxFeePerGas, maxPriorityFee) та дані транзакції. Поле підпису у UserOperation перевіряється реалізацією акаунта, а не протоколом.
Після створення UserOperation надсилається до окремого пулу пам'яті user ops, відділеного від стандартного пулу транзакцій. Це дозволяє спеціалізовано обробляти UserOperation.
Bundlers — вузли-валідатори — обробляють UserOperation у пулі, збирають їх у bundle-транзакції. Block builders можуть додавати bundle-транзакції до блоків, якщо entry point-транзакції залишаються дійсними. Інші bundlers реалізують це через інфраструктуру block building, наприклад, mev-boost, proposer-builder separation або RPC API типу eth_sendRawTransactionConditional.
Групування UserOperation підвищує ефективність EIP-4337, дозволяючи обробляти кілька операцій за одну транзакцію, знижуючи витрати та підвищуючи пропускну здатність.
Після надсилання bundle-транзакцій до контракту entry point починається перевірка. Контракт перевіряє кожну UserOperation через функцію validateUserOp, яка аналізує підпис та інші критерії, специфічні для смартконтракт-гаманця.
Bundlers використовують whitelist для підтримуваних entry point-контрактів, що забезпечує обробку лише через довірені контракти. Це критично для безпеки, оскільки захищає від шкідливих операцій.
Останній етап — виконання UserOperation смартконтракт-гаманцем. Гаманець викликає ExecuteUserOp, що здійснює транзакцію. Bundlers групують UserOperation у транзакцію та ініціюють виклик handleOps у смартконтракті EntryPoint. Транзакція включається до блоку, завершуючи процес.
Багатоступенева схема забезпечує якісну перевірку та виконання UserOperation, підтримує безпеку та реалізує гнучкі можливості AA.
AA-гаманці мають ряд переваг у порівнянні з іншими типами гаманців. EOA-гаманці — це класичний тип, мають низькі витрати на створення і оплату gas, але обмежений функціонал: користувач самостійно керує приватними ключами, немає механізмів відновлення. Безпека залежить від захисту ключа, що створює ризик втрати чи крадіжки.
MPC-гаманці використовують EOA з розподіленим управлінням ключами між декількома сторонами, усуваючи єдину точку відмови. Вони мають вищу безпеку, але використовують тільки ECDSA-підписи та мають обмежену сумісність з екосистемою. Необхідна перевірка політик авторизації поза ланцюгом і прозорість процесів.
AA-гаманці на контрактних акаунтах — це найпросунутіший варіант. Вони мають вищу вартість створення та оплату gas, але підтримують оплату gas різними токенами, пакетні транзакції, різноманітні методи підпису та вбудовані механізми відновлення. Вони усувають потребу у приватному ключі та забезпечують захист на рівні блокчейну. Однак потребують аудиту контрактів та поступово розширюють сумісність з екосистемою.
EIP-3074 призупинили через необхідність змін у консенсусному шарі. Пропозиція включала два нових OpCodes, які дозволяли EOA використовувати функціонал смартконтрактів, що мало переваги та суттєві недоліки.
EIP-3074 дозволяє делегувати управління EOA контракту, відкриваючи гнучкі схеми транзакцій, групову або пакетну торгівлю, різні варіанти оплати gas без розгортання нового контракту.
Invoker-контракти можуть приймати оплату у токенах, окрім ETH, і спрощують транзакції між спонсорами та отримувачами. EIP-3074 дозволяє будь-якому EOA отримати функції смартконтракт-гаманця без створення нового контракту, зберігаючи сумісність з екосистемою EOA.
Головний недолік — потреба змін консенсусного шару, що може вимагати hard fork у разі проблем. Це створює ризик для мережі Ethereum і вимагає координації в спільноті.
Хоча EIP-3074 додає EOA властивості контрактних акаунтів, він залишається на ECDSA-підписах. Це обмежує використання сучасних методів підпису, що могли б покращити безпеку або знизити витрати на gas. Неможливість перейти за межі ECDSA обмежує гнучкість AA.
EIP-5003 розвиває ідеї EIP-3074, додаючи OpCode AUTHUSURP для розгортання коду за адресами, авторизованими EIP-3074. Пропозиція працює разом з EIP-3607 для міграції EOA в контрактні акаунти.
EOA, що авторизував іншу адресу через EIP-3074, може надати їй використати AUTHUSURP для встановлення коду EOA. Це перетворює EOA на контрактний акаунт і відкриває доступ до сучасних методів підпису, окрім ECDSA. Такий шлях може стати мостом між екосистемою EOA та майбутнім AA, хоча пропозиція ще розробляється.
Абстракція акаунтів, особливо через EIP-4337, суттєво змінює взаємодію користувачів з Ethereum. Вона розділяє джерела транзакцій і підписів, передає управління акаунтами смартконтрактам та вирішує проблеми, що стримували широке використання. Основні переваги — підвищена безпека, гнучкі варіанти оплати gas, підтримка різних валют, спонсорство, пакетні транзакції та вбудоване відновлення, що усуває ризик втрати приватних ключів.
EIP-4337 реалізує AA без змін консенсусного шару, що робить його практичним і безпечним у порівнянні з попередніми пропозиціями. Компоненти bundlers, paymasters і окремий пул UserOperation функціонують поза основним протоколом і можуть змінюватися без мережевої координації. З розвитком екосистеми впровадження AA за EIP-4337 знижує бар'єри для нових користувачів і надає досвідченим користувачам потужні інструменти для управління транзакціями у блокчейні. Масове впровадження AA-гаманців стане важливим кроком для досягнення мети Ethereum — масової доступності та прийняття.
EIP-4337 — стандарт Ethereum для абстракції акаунтів. Він дозволяє створювати смартконтракт-гаманці з соціальними логінами та транзакціями без gas. У системі використовуються UserOperation, Bundlers, EntryPoint і Contract Accounts для покращення роботи користувача.
EIP 4337 — набір інструментів для створення функцій абстракції акаунтів, а EIP 7702 дозволяє використовувати ці функції з існуючими акаунтами зовнішніх користувачів.
ERC-4337 — стандарт Ethereum для абстракції акаунтів. Він дає змогу смартконтрактам управляти акаунтами користувачів і транзакціями без використання класичних гаманців ключів. Мета — покращити безпеку і зручність.
Ні, EIP і ERC — це різні поняття. EIP (Ethereum Improvement Proposal) стосується змін у протоколі, а ERC (Ethereum Request for Comment) визначає стандарти токенів і смартконтрактів.











