EIP-7702

Середній рівень

Що таке EIP-7702?

EIP-7702 – це пропозиція, розроблена для розширення можливостей зовнішньо керованих акаунтів (EOA). EOA – це базові акаунти в мережі Ethereum, що можуть надсилати транзакції та взаємодіяти зі смартконтрактами. Однак їм не вистачає певних функціональних можливостей, наявних у деяких криптогаманців, таких як пакетування транзакцій і спонсорство gas.
EIP-7702 має на меті тимчасово дозволити EOA поводитися як акаунти смартконтрактів в рамках однієї транзакції, тим самим запроваджуючи функції, зазвичай зарезервовані для гаманців смартконтрактів. EIP-7702 було створено у відповідь на деякі обмеження та критику EIP-3074.

Хоча EIP-7702 наразі не запущено, ця пропозиція має помітну підтримку з боку спільноти, і багато хто вважає, що вона може замінити пропозицію EIP-3074. Якщо це станеться, EIP-7702 може бути реалізовано в оновленні Ethereum Pectra, запланованому на кінець 2024 року.

Як працює EIP-7702?

EIP-7702 представляє новий тип транзакцій у мережі Ethereum, який включає спеціальне поле під назвою contract_code. Це надає EOA певні властивості смартконтракту на час транзакції. Подивімось, як це працює.

Підготовка транзакції

Користувач починає з підготовки транзакції, включаючи звичайні деталі, такі як адреса призначення, ліміт gas та будь-які дані, які потрібно надіслати. На додаток до цих даних, вони містять спеціальний фрагмент коду смартконтракту в полі contract_code. Цей код описує функції смартконтракту, які будуть тимчасово призначені їхньому EOA.

Авторизація 

Потім користувач підписує транзакцію. Цей підпис має вирішальне значення, оскільки він аутентифікує транзакцію та містить список авторизації. Цей список докладно описує contract_code та умови, за яких він повинен бути виконаний. По суті, він перевіряє та санкціонує тимчасове призначення коду смартконтракту EOA.

Виконання

Коли транзакція надсилається в Ethereum, мережа обробляє її, тимчасово призначаючи вказаний contract_code EOA. Під час цієї фази транзакція обробляється так, як якби EOA був смартконтрактом, що використовує функції, надані contract_code.

Повернення

Після завершення транзакції мережа Ethereum автоматично видаляє тимчасовий contract_code з EOA. EOA повертається до свого початкового стану, втрачаючи тимчасові можливості смартконтракту.

Аналогія з доставкою

Уявіть, що Боб – водій служби доставки зі звичайною машиною, де можна перевозити лише невеликі пакунки. Одного разу Боб отримує запит на доставку більшого пакунку. Отже, замість того, щоб відхилити замовлення, Боб вирішує орендувати додатковий вантажний бокс, щоб прикріпити його до автомобіля. Він доставляє посилку та повертає вантажний бокс назад до пункту прокату, повертаючись до свого звичайного автомобіля.

У цій аналогії:

  • Звичайний автомобіль – це EOA.

  • Тимчасовий вантажний бокс – це contract_code, що надає додаткові можливості.
  • Доставка – це транзакція.

  • Оренда та повернення вантажного боксу є тимчасовим contract_code, який активний лише під час транзакції.

Переваги EIP-7702

Безпека

Автоматично видаляючи тимчасовий contract_code після транзакції, EIP-7702 знижує ризик несанкціонованих дій. Це гарантує, що вдосконалення активні лише під час транзакції, обмежуючи потенційні вразливості.

Гнучкість

EIP-7702 дозволить реалізовувати різні варіанти використання, такі як групування транзакцій, коли кілька дій можуть бути об'єднані в одну транзакцію. Він також підтримуватиме спонсорство gas, дозволяючи одному акаунту оплачувати комісію за транзакції іншого акаунта.

Прийняття смартгаманця

Дозволяючи EOA тимчасово функціонувати як смартконтракти, EIP-7702 може стимулювати використання функцій смартгаманця без ризиків безпеки, пов'язаних із постійними змінами EOA.

Висновок

EIP-7702 – це пропозиція, яка усуває обмеження EOA, тимчасово надаючи їм можливості смартконтракту. Це може підвищити безпеку, обмеживши тривалість функцій смартконтракту тривалістю однієї транзакції. Це також може забезпечити більшу гнучкість завдяки пакетуванню транзакцій, спонсорству gas та іншим функціям.

Хоча майбутнє цієї пропозиції ще невідоме, значна підтримка EIP-7702 вказує на велику ймовірність її включення в майбутнє оновлення Ethereum Pectra, заплановане на кінець 2024 року.