До абстракції облікових записів в Ethereum існувало два типи облікових записів: зовнішні облікові записи (EOA) і смарт-контракти. EOA — це типовий обліковий запис користувача, який має закритий ключ. Це також єдиний тип облікового запису, який може ініціювати транзакцію. Наприклад, користувач повинен мати ETH, щоб відправити транзакцію. Створювати пакетні транзакції складно, і немає варіантів відновлення, якщо користувач втратить свій закритий ключ. Абстракція облікового запису (AA) була створена для вирішення цих проблем. Але чи це безпечне рішення? Цей посібник охоплює основи АА, перш ніж детально описує ризики та способи їх пом’якшення.
Абстракція облікового запису — це технологія, яка дозволяє смарт-контрактам самостійно ініціалізувати транзакції. Це дозволяє користувачам створювати облікові записи, які представлені смарт-контрактами. Ця технологія також забезпечує кілька функцій, які покращують взаємодію користувачів із мережею.
Були різні пропозиції щодо впровадження АА в мережу Ethereum. Деякі з них передбачають значні зміни в протоколі Ethereum, що ускладнює впровадження. Найвідомішою реалізацією є ERC-4337, яка не передбачає жодних змін консенсусного рівня. Стандарт повторює пул транзакцій на вищому рівні. Розумні контракти ERC-4337 були розгорнуті в мережі Ethereum у березні 2023 року.
ERC-4337 використовує розумні контракти під назвою гаманці замість EOA. Цим розумним контрактним гаманцем можна керувати не лише закритим ключем, а й будь-яким складним механізмом, який закодовано в контракті.
Замість транзакцій користувачі надсилають UserOperations. UserOperation містить інструкції для виконання, перевірку підписів та інші дані. Як і у випадку з транзакціями, користувач визначає премію для Bundler, щоб визначити пріоритетність його операцій.
Майнери або бандлери пакетують операції в пакетні транзакції, які потім включаються в мережу Ethereum.
Реалізація АА: HashEx
Серед інших даних UserOperation містить код для створення гаманця смарт-контракту. Якщо у користувача немає гаманця, він створюється для нього.
Якщо користувач хоче оплатити транзакцію за допомогою токена ERC20 або навіть не хоче платити за транзакцію взагалі, він вказує адресу платіжного контракту в UserOperation. Paymaster — це сторонній сервіс, який оплачуватиме транзакцію в обмін на токени ERC20.
Хоча абстракція облікового запису створена для підвищення безпеки користувачів, існують певні ризики, особливо на ранніх етапах впровадження. Екосистема Ethereum сумно відома своїми помилками в смарт-контрактах, які призвели до крадіжки мільярдів доларів зловмисниками. Ось деякі ризики АА та способи їх уникнення/пом’якшення.
Як і будь-яка нова технологія, абстракція облікового запису має ризик того, що її перша реалізація міститиме помилки. Смарт-контракти ERC-4337 були перевірені провідною компанією з безпеки блокчейнів OpenZeppelin.
Пом’якшення: Рішення полягає у використанні формальної перевірки — процесу, який передбачає використання математичних методів для підтвердження правильності смарт-контрактів. Процес формальної перевірки для контрактів ERC4337 триває, але ще не завершено.
Не кожен смарт-контракт сумісний з гаманцями абстракції облікового запису. Наприклад, смарт-контракти, які використовують поле tx.origin для перевірки гаманця, який надіслав транзакцію, отримають неочікуване значення. Ще одна несумісність виникає зі смарт-контрактами, які використовують підписи EOA: вони не підтримуються гаманцями AA.
У таких контрактах певні ключові функції можуть не працювати належним чином. У гіршому випадку кошти користувачів можуть бути заблоковані.
Пом'якшення: щоб зменшити ризики, користувач, який використовує гаманець абстракції облікового запису, повинен перевірити, чи підтримує протокол, з яким він взаємодіє, цю технологію.
Стандарт розроблено таким чином, що гаманець смарт-контракту можна створити в рамках першої UserOperation через фабрику смарт-контрактів. Однак існує ризик того, що смарт-контракт реалізації гаманця міститиме помилки. Надзвичайно важливо використовувати лише фабрики гаманців, які були ретельно перевірені та протестовані провідними компаніями безпеки блокчейну.
Пом’якшення: використовуйте лише надійні служби для створення гаманців і переконайтеся, що код гаманця перевірено принаймні однією надійною компанією безпеки блокчейну.
Якщо користувач або проект використовує платіжників, він покладається на третю сторону для оплати транзакцій. Можуть бути помилки в реалізації платіжника, і зловмисний платіжник може викрасти кошти користувачів.
Слід зазначити, що вибраний платіжний сервіс також може постраждати від зловмисників, які можуть знайти способи обманом змусити платіжника оплатити свої транзакції.
Пом'якшення: Гаманці використовують платіжників лише від надійних постачальників і переконайтеся, що код платіжників перевірено перед їх використанням.
Абстракція облікового запису в блокчейні Ethereum є відносно новою концепцією. Таким чином, найкращі практики та рамки розробників для його використання все ще знаходяться в процесі встановлення. Існує дуже мало прикладів використання абстракції облікового запису, на яких розробники можуть вчитися.
Пом'якшення: найкраща практика згодом розвинеться після поширення стандарту. Для розробників дуже важливо ділитися досвідом використання нової технології, особливо на ранніх етапах впровадження.
ERC-4337 все ще знаходиться в режимі чернетки, хоча контракти вже розгорнуто в Mainnet. Є ймовірність зміни стандарту. Слід зазначити, що зазначені зміни мають торкнутися більш дрібних деталей і не впливати на вже розгорнуті смарт-контракти.
Пом'якшення: розробники повинні стежити за тим, як розвивається стандарт, і оновлювати код своїх проектів відповідно до стандартних змін, якщо вони відбуваються.
Незважаючи на те, що ERC-4337 розроблено таким чином, що кожен може запустити бандлер, принаймні на початковому етапі, екосистема абстракції облікових записів є досить централізованою, оскільки існує кілька готових до виробництва реалізацій бандлерів.
Пом’якшення: щоб уникнути ризиків помилки в реалізації Bundler, що впливає на мережу абстракції облікового запису, слід використовувати принаймні кілька реалізацій Bundler. Зараз багато реалізацій Bundler знаходяться в розробці, і незабаром багато з них будуть готові до виробництва.
Абстракція облікового запису — це потенційно чудова технологія, яка може сприяти більшому запровадженню Ethereum. Водночас це одна з розробок, яка може зробити блокчейн більш безпечним. Проте, як і з будь-яким новим доповненням до технології блокчейн на ранніх стадіях, користувачі повинні бути особливо пильними. Перегляд і дослідження АА є найкращим вибором для всіх, хто хоче прийняти цю технологію.
До абстракції облікових записів в Ethereum існувало два типи облікових записів: зовнішні облікові записи (EOA) і смарт-контракти. EOA — це типовий обліковий запис користувача, який має закритий ключ. Це також єдиний тип облікового запису, який може ініціювати транзакцію. Наприклад, користувач повинен мати ETH, щоб відправити транзакцію. Створювати пакетні транзакції складно, і немає варіантів відновлення, якщо користувач втратить свій закритий ключ. Абстракція облікового запису (AA) була створена для вирішення цих проблем. Але чи це безпечне рішення? Цей посібник охоплює основи АА, перш ніж детально описує ризики та способи їх пом’якшення.
Абстракція облікового запису — це технологія, яка дозволяє смарт-контрактам самостійно ініціалізувати транзакції. Це дозволяє користувачам створювати облікові записи, які представлені смарт-контрактами. Ця технологія також забезпечує кілька функцій, які покращують взаємодію користувачів із мережею.
Були різні пропозиції щодо впровадження АА в мережу Ethereum. Деякі з них передбачають значні зміни в протоколі Ethereum, що ускладнює впровадження. Найвідомішою реалізацією є ERC-4337, яка не передбачає жодних змін консенсусного рівня. Стандарт повторює пул транзакцій на вищому рівні. Розумні контракти ERC-4337 були розгорнуті в мережі Ethereum у березні 2023 року.
ERC-4337 використовує розумні контракти під назвою гаманці замість EOA. Цим розумним контрактним гаманцем можна керувати не лише закритим ключем, а й будь-яким складним механізмом, який закодовано в контракті.
Замість транзакцій користувачі надсилають UserOperations. UserOperation містить інструкції для виконання, перевірку підписів та інші дані. Як і у випадку з транзакціями, користувач визначає премію для Bundler, щоб визначити пріоритетність його операцій.
Майнери або бандлери пакетують операції в пакетні транзакції, які потім включаються в мережу Ethereum.
Реалізація АА: HashEx
Серед інших даних UserOperation містить код для створення гаманця смарт-контракту. Якщо у користувача немає гаманця, він створюється для нього.
Якщо користувач хоче оплатити транзакцію за допомогою токена ERC20 або навіть не хоче платити за транзакцію взагалі, він вказує адресу платіжного контракту в UserOperation. Paymaster — це сторонній сервіс, який оплачуватиме транзакцію в обмін на токени ERC20.
Хоча абстракція облікового запису створена для підвищення безпеки користувачів, існують певні ризики, особливо на ранніх етапах впровадження. Екосистема Ethereum сумно відома своїми помилками в смарт-контрактах, які призвели до крадіжки мільярдів доларів зловмисниками. Ось деякі ризики АА та способи їх уникнення/пом’якшення.
Як і будь-яка нова технологія, абстракція облікового запису має ризик того, що її перша реалізація міститиме помилки. Смарт-контракти ERC-4337 були перевірені провідною компанією з безпеки блокчейнів OpenZeppelin.
Пом’якшення: Рішення полягає у використанні формальної перевірки — процесу, який передбачає використання математичних методів для підтвердження правильності смарт-контрактів. Процес формальної перевірки для контрактів ERC4337 триває, але ще не завершено.
Не кожен смарт-контракт сумісний з гаманцями абстракції облікового запису. Наприклад, смарт-контракти, які використовують поле tx.origin для перевірки гаманця, який надіслав транзакцію, отримають неочікуване значення. Ще одна несумісність виникає зі смарт-контрактами, які використовують підписи EOA: вони не підтримуються гаманцями AA.
У таких контрактах певні ключові функції можуть не працювати належним чином. У гіршому випадку кошти користувачів можуть бути заблоковані.
Пом'якшення: щоб зменшити ризики, користувач, який використовує гаманець абстракції облікового запису, повинен перевірити, чи підтримує протокол, з яким він взаємодіє, цю технологію.
Стандарт розроблено таким чином, що гаманець смарт-контракту можна створити в рамках першої UserOperation через фабрику смарт-контрактів. Однак існує ризик того, що смарт-контракт реалізації гаманця міститиме помилки. Надзвичайно важливо використовувати лише фабрики гаманців, які були ретельно перевірені та протестовані провідними компаніями безпеки блокчейну.
Пом’якшення: використовуйте лише надійні служби для створення гаманців і переконайтеся, що код гаманця перевірено принаймні однією надійною компанією безпеки блокчейну.
Якщо користувач або проект використовує платіжників, він покладається на третю сторону для оплати транзакцій. Можуть бути помилки в реалізації платіжника, і зловмисний платіжник може викрасти кошти користувачів.
Слід зазначити, що вибраний платіжний сервіс також може постраждати від зловмисників, які можуть знайти способи обманом змусити платіжника оплатити свої транзакції.
Пом'якшення: Гаманці використовують платіжників лише від надійних постачальників і переконайтеся, що код платіжників перевірено перед їх використанням.
Абстракція облікового запису в блокчейні Ethereum є відносно новою концепцією. Таким чином, найкращі практики та рамки розробників для його використання все ще знаходяться в процесі встановлення. Існує дуже мало прикладів використання абстракції облікового запису, на яких розробники можуть вчитися.
Пом'якшення: найкраща практика згодом розвинеться після поширення стандарту. Для розробників дуже важливо ділитися досвідом використання нової технології, особливо на ранніх етапах впровадження.
ERC-4337 все ще знаходиться в режимі чернетки, хоча контракти вже розгорнуто в Mainnet. Є ймовірність зміни стандарту. Слід зазначити, що зазначені зміни мають торкнутися більш дрібних деталей і не впливати на вже розгорнуті смарт-контракти.
Пом'якшення: розробники повинні стежити за тим, як розвивається стандарт, і оновлювати код своїх проектів відповідно до стандартних змін, якщо вони відбуваються.
Незважаючи на те, що ERC-4337 розроблено таким чином, що кожен може запустити бандлер, принаймні на початковому етапі, екосистема абстракції облікових записів є досить централізованою, оскільки існує кілька готових до виробництва реалізацій бандлерів.
Пом’якшення: щоб уникнути ризиків помилки в реалізації Bundler, що впливає на мережу абстракції облікового запису, слід використовувати принаймні кілька реалізацій Bundler. Зараз багато реалізацій Bundler знаходяться в розробці, і незабаром багато з них будуть готові до виробництва.
Абстракція облікового запису — це потенційно чудова технологія, яка може сприяти більшому запровадженню Ethereum. Водночас це одна з розробок, яка може зробити блокчейн більш безпечним. Проте, як і з будь-яким новим доповненням до технології блокчейн на ранніх стадіях, користувачі повинні бути особливо пильними. Перегляд і дослідження АА є найкращим вибором для всіх, хто хоче прийняти цю технологію.