Дослідження пропозиції EIP-7702: Остаточне рішення Віталіка щодо проблеми абстрагування облікового запису?

Початківець5/14/2024, 1:42:24 PM
Віталік Бутерін запропонував EIP-7702, яке може бути однією з найбільш суттєвих змін в історії Ethereum. EIP-7702 спрямований на поліпшення абстракції облікового запису, що дозволяє використовувати розумні контракти як облікові записи, тим самим підвищуючи функціональність та безпеку. Він добре сумісний з EIP-4337, який широко використовується на платформах, таких як Polygon. EIP-7702 досягає тимчасової делегації EOAs (зовнішньо власних облікових записів) розумним контрактам шляхом тимчасового заповнення поля коду контракту облікового запису з кодом розумного контракту, без необхідності жорсткого відгалуження. Це може змінити спосіб взаємодії користувачів з програмами Web3.

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

По-перше, пропозиція EIP-7702 дивно коротка, що залишило деяких людей в розпачі щодо її функціонування. Щоб зрозуміти EIP-7702, нам потрібно розглянути три інші зазначені в ньому пропозиції:

  1. EIP-4337

  2. EIP-3074

  3. EIP-5003

Давайте почнемо зі спільної мети цих пропозицій: «абстракція облікового запису». На Ethereum у ЕОА («звичайних» облікових записів) є серйозні недоліки — вони дуже ризиковані та мають дуже обмежену функціональність. Абстракція облікового запису дозволяє користувачам використовувати смарт-контракти як облікові записи, що додає більше функціональності та безпеки для вирішення цих проблем.

EIP-4337

EIP-4337 був запущений на головній мережі в березні 2023 року. Він дозволяє писати розумні контракти, як рахунки, щоб вони могли перевіряти та виконувати транзакції, покращуючи багато користувацьких досвідів (UX).

З моменту його випуску EIP-4337 отримав широке поширення, переважно під керівництвом Polygon, зі збільшенням активності від Base в останні місяці.

Останні інновації, пов'язані з EIP-4337, походять від екосистеми Coinbase та розумного гаманця Coinbase. Цей гаманець базується на біометричній технології, що забезпечує відмінний користувацький досвід. Минулого вікенду я створив ще одну невелику демонстраційну версію на ETH Global Sydney, щоб показати це.

Так, які проблеми у EIP-4337? Чому сьогодні знову є пропозиція щодо абстракції облікового запису? Тому що EOAs залишаються найбільш поширеним типом облікового запису наразі.

Додатково, більшість рахунків розумного контракту EIP-4337 контролюються одним єдиним підписником EOA. Ось приклад фрагмента коду:

Тому, що неможливо «конвертувати» EOA користувача в обліковий запис смарт-контракту, існує це дивне тимчасове рішення. Це головним чином через відсутність вбудованої підтримки в додатках Web3 для підключення облікових записів смарт-контрактів. В наш час більшість людей все ще використовують EOA через розширення гаманців, таких як MetaMask.

EIP-3074

Це приводить нас до нашого наступного пропозиції: EIP-3074.

Фактично ця пропозиція була введена раніше, ніж EIP-4337, але вона ще не була об'єднана в основну мережу. EIP-3074 намагається надати повноваження ЕОА, дозволяючи їм делегувати контроль над своїми ЕОА умовним контрактам.

Пропозиція передбачає додавання двох нових опкодів:

  1. АВТ: ЗЕА може викликати AUTH, щоб авторизувати вказаний смарт-контракт діяти від її імені.
  2. AUTHCALL: Авторизований розумний контракт може використовувати AUTHCALL для виконання транзакцій від імені EOA.

Це досягає багатьох тих самих використань, що й EIP-4337, не вимагаючи від кожного користувача розгортання нового розумного контракту. Однією з ключових відмінностей є те, що транзакції походять від EOA користувача, а не від нового контракту, який не має історії облікового запису, ETH, NFT, токенів тощо.

Часта реакція на EIP-3074 полягає в тому, що «Що, якщо хтось створить зловмисний контракт і користувач делегує йому права?» В кінці кінців, делегування прав до зловмисного контракту може призвести до витоку всіх криптовалютних активів у гаманці користувача.

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

Важливою точкою щодо делегування в EIP-3074 є те, що воно не є постійним. «Делегування від EOA анулюється однією угодою, яка збільшує внутрішній номер, що призводить до скасування будь-яких невиконаних авторизацій.»

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

EIP-5003

Ми дійсно не хочемо надавати більше влади ЕОА. В кінці кінців, метою цих пропозицій є перехід користувачів з ЕОА на облікові записи у розумних контрактах. Тому чому додавати функціонал до ЕОА?

Це гарно переходить до нашого наступного пропозиція: EIP-5003. EIP-5003 вводить ще один опкод, «AUTHUSURP», який розгортає код на адресу авторизації EIP-3074.

Різниця між EIP-3074 та EIP-5003 полягає в тому, що:

EIP-3074 - це тимчасове делегування умовним контрактам, яке можна скасувати.

EIP-5003 - це постійна міграція з EOAs та «конвертація» з EOAs на облікові записи розумних контрактів.

Однією з основних проблем EIP-3074 + EIP-5003 є її несумісність з поточною схемою абстракції рахунків через EIP-4337. Деякі у громаді Ethereum висловлюють обурення тим, що ми можемо «створити дві окремі екосистеми коду» з цими двома типами абстракції рахунків.

EIP-7702

Це приводить нас до пропозиції Віталіка Бутеріна сьогодні: EIP-7702. Він пропонує змінити EIP-3074, щоб зробити його більш лаконічним і сумісним з EIP-4337, щоб ми не потрапили у дві окремі екосистеми абстракції рахунків. EIP-5003 потім розглядається як наступний крок для постійної міграції.

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

Схоже з EIP-3074, це досягає тимчасового делегування ЕОА до смарт-контрактів. Однак EIP-7702 не вводить нових опкодів (що потребувало б хардфорку), а замість цього визначає функції, які мають бути викликані:

AUTH -> виклики "перевірка"

AUTHCALL -> викликає «виконати»

Конкретно, це:

Перевіряє, чи код контракту вашого облікового запису порожній.

Якщо воно порожнє, встановлює його на наданому контрактному коді.

Виконує транзакцію відповідно до того, як наданий смарт-контракт обробляє транзакції.

Відновлює код контракту облікового запису на порожній.

«Код контракту» буквальний; це місце, де зберігається код смарт-контракту. Оскільки EOA сам по собі не є контрактом, це поле зазвичай залишається порожнім. Однак геній EIP-7702 полягає в тимчасовому заповненні цього поля певним кодом смарт-контракту під час виконання транзакції.

Це спосіб надати нову поведінку (у вигляді коду) вашому EOA для виконання цієї конкретної транзакції. Наступним кроком є зробити це постійною зміною поведінки, просто вибравши «не встановлювати код у порожній після завершення транзакції».

Одним з найкращих аспектів цього пропозиції є висока сумісність з усіма роботами з абстракції облікового запису, які були виконані дотепер для EIP-4337. «Код контракту, який користувачам потрібно підписати, фактично може бути існуючим кодом гаманця EIP-4337».

Як тільки ця зміна вступить в силу, існуючі облікові записи зможуть виконувати будь-який код розумного контракту. За допомогою додаткових EIP облікові записи також можуть бути постійно оновлені для виконання конкретного коду.

З часом це може фундаментально змінити спосіб, яким ми всі взаємодіємо з додатками Web3.

Заява:

  1. Ця стаття взята з [ panews], оригінальний заголовок «Дослідження пропозиції EIP-7702: остаточний рецепт Віталіка для проблеми абстракції облікового запису?», авторське право належить оригінальному автору [Foresight News], якщо у вас є які-небудь заперечення щодо перепублікації, будь ласка, зв'яжітьсяGate Learn Team, команда обробить це якнайшвидше відповідно до відповідних процедур.

  2. Попередження: Погляди та думки, висловлені в цій статті, відображають лише особисті погляди автора й не становлять жодних інвестиційних порад.

  3. Інші мовні версії статті перекладені командою Gate Learn, не згадано в Gate.io, перекладений матеріал не може бути відтворений, поширений або плагіатований.

Поділіться

Контент

Дослідження пропозиції EIP-7702: Остаточне рішення Віталіка щодо проблеми абстрагування облікового запису?

Початківець5/14/2024, 1:42:24 PM
Віталік Бутерін запропонував EIP-7702, яке може бути однією з найбільш суттєвих змін в історії Ethereum. EIP-7702 спрямований на поліпшення абстракції облікового запису, що дозволяє використовувати розумні контракти як облікові записи, тим самим підвищуючи функціональність та безпеку. Він добре сумісний з EIP-4337, який широко використовується на платформах, таких як Polygon. EIP-7702 досягає тимчасової делегації EOAs (зовнішньо власних облікових записів) розумним контрактам шляхом тимчасового заповнення поля коду контракту облікового запису з кодом розумного контракту, без необхідності жорсткого відгалуження. Це може змінити спосіб взаємодії користувачів з програмами Web3.

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

По-перше, пропозиція EIP-7702 дивно коротка, що залишило деяких людей в розпачі щодо її функціонування. Щоб зрозуміти EIP-7702, нам потрібно розглянути три інші зазначені в ньому пропозиції:

  1. EIP-4337

  2. EIP-3074

  3. EIP-5003

Давайте почнемо зі спільної мети цих пропозицій: «абстракція облікового запису». На Ethereum у ЕОА («звичайних» облікових записів) є серйозні недоліки — вони дуже ризиковані та мають дуже обмежену функціональність. Абстракція облікового запису дозволяє користувачам використовувати смарт-контракти як облікові записи, що додає більше функціональності та безпеки для вирішення цих проблем.

EIP-4337

EIP-4337 був запущений на головній мережі в березні 2023 року. Він дозволяє писати розумні контракти, як рахунки, щоб вони могли перевіряти та виконувати транзакції, покращуючи багато користувацьких досвідів (UX).

З моменту його випуску EIP-4337 отримав широке поширення, переважно під керівництвом Polygon, зі збільшенням активності від Base в останні місяці.

Останні інновації, пов'язані з EIP-4337, походять від екосистеми Coinbase та розумного гаманця Coinbase. Цей гаманець базується на біометричній технології, що забезпечує відмінний користувацький досвід. Минулого вікенду я створив ще одну невелику демонстраційну версію на ETH Global Sydney, щоб показати це.

Так, які проблеми у EIP-4337? Чому сьогодні знову є пропозиція щодо абстракції облікового запису? Тому що EOAs залишаються найбільш поширеним типом облікового запису наразі.

Додатково, більшість рахунків розумного контракту EIP-4337 контролюються одним єдиним підписником EOA. Ось приклад фрагмента коду:

Тому, що неможливо «конвертувати» EOA користувача в обліковий запис смарт-контракту, існує це дивне тимчасове рішення. Це головним чином через відсутність вбудованої підтримки в додатках Web3 для підключення облікових записів смарт-контрактів. В наш час більшість людей все ще використовують EOA через розширення гаманців, таких як MetaMask.

EIP-3074

Це приводить нас до нашого наступного пропозиції: EIP-3074.

Фактично ця пропозиція була введена раніше, ніж EIP-4337, але вона ще не була об'єднана в основну мережу. EIP-3074 намагається надати повноваження ЕОА, дозволяючи їм делегувати контроль над своїми ЕОА умовним контрактам.

Пропозиція передбачає додавання двох нових опкодів:

  1. АВТ: ЗЕА може викликати AUTH, щоб авторизувати вказаний смарт-контракт діяти від її імені.
  2. AUTHCALL: Авторизований розумний контракт може використовувати AUTHCALL для виконання транзакцій від імені EOA.

Це досягає багатьох тих самих використань, що й EIP-4337, не вимагаючи від кожного користувача розгортання нового розумного контракту. Однією з ключових відмінностей є те, що транзакції походять від EOA користувача, а не від нового контракту, який не має історії облікового запису, ETH, NFT, токенів тощо.

Часта реакція на EIP-3074 полягає в тому, що «Що, якщо хтось створить зловмисний контракт і користувач делегує йому права?» В кінці кінців, делегування прав до зловмисного контракту може призвести до витоку всіх криптовалютних активів у гаманці користувача.

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

Важливою точкою щодо делегування в EIP-3074 є те, що воно не є постійним. «Делегування від EOA анулюється однією угодою, яка збільшує внутрішній номер, що призводить до скасування будь-яких невиконаних авторизацій.»

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

EIP-5003

Ми дійсно не хочемо надавати більше влади ЕОА. В кінці кінців, метою цих пропозицій є перехід користувачів з ЕОА на облікові записи у розумних контрактах. Тому чому додавати функціонал до ЕОА?

Це гарно переходить до нашого наступного пропозиція: EIP-5003. EIP-5003 вводить ще один опкод, «AUTHUSURP», який розгортає код на адресу авторизації EIP-3074.

Різниця між EIP-3074 та EIP-5003 полягає в тому, що:

EIP-3074 - це тимчасове делегування умовним контрактам, яке можна скасувати.

EIP-5003 - це постійна міграція з EOAs та «конвертація» з EOAs на облікові записи розумних контрактів.

Однією з основних проблем EIP-3074 + EIP-5003 є її несумісність з поточною схемою абстракції рахунків через EIP-4337. Деякі у громаді Ethereum висловлюють обурення тим, що ми можемо «створити дві окремі екосистеми коду» з цими двома типами абстракції рахунків.

EIP-7702

Це приводить нас до пропозиції Віталіка Бутеріна сьогодні: EIP-7702. Він пропонує змінити EIP-3074, щоб зробити його більш лаконічним і сумісним з EIP-4337, щоб ми не потрапили у дві окремі екосистеми абстракції рахунків. EIP-5003 потім розглядається як наступний крок для постійної міграції.

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

Схоже з EIP-3074, це досягає тимчасового делегування ЕОА до смарт-контрактів. Однак EIP-7702 не вводить нових опкодів (що потребувало б хардфорку), а замість цього визначає функції, які мають бути викликані:

AUTH -> виклики "перевірка"

AUTHCALL -> викликає «виконати»

Конкретно, це:

Перевіряє, чи код контракту вашого облікового запису порожній.

Якщо воно порожнє, встановлює його на наданому контрактному коді.

Виконує транзакцію відповідно до того, як наданий смарт-контракт обробляє транзакції.

Відновлює код контракту облікового запису на порожній.

«Код контракту» буквальний; це місце, де зберігається код смарт-контракту. Оскільки EOA сам по собі не є контрактом, це поле зазвичай залишається порожнім. Однак геній EIP-7702 полягає в тимчасовому заповненні цього поля певним кодом смарт-контракту під час виконання транзакції.

Це спосіб надати нову поведінку (у вигляді коду) вашому EOA для виконання цієї конкретної транзакції. Наступним кроком є зробити це постійною зміною поведінки, просто вибравши «не встановлювати код у порожній після завершення транзакції».

Одним з найкращих аспектів цього пропозиції є висока сумісність з усіма роботами з абстракції облікового запису, які були виконані дотепер для EIP-4337. «Код контракту, який користувачам потрібно підписати, фактично може бути існуючим кодом гаманця EIP-4337».

Як тільки ця зміна вступить в силу, існуючі облікові записи зможуть виконувати будь-який код розумного контракту. За допомогою додаткових EIP облікові записи також можуть бути постійно оновлені для виконання конкретного коду.

З часом це може фундаментально змінити спосіб, яким ми всі взаємодіємо з додатками Web3.

Заява:

  1. Ця стаття взята з [ panews], оригінальний заголовок «Дослідження пропозиції EIP-7702: остаточний рецепт Віталіка для проблеми абстракції облікового запису?», авторське право належить оригінальному автору [Foresight News], якщо у вас є які-небудь заперечення щодо перепублікації, будь ласка, зв'яжітьсяGate Learn Team, команда обробить це якнайшвидше відповідно до відповідних процедур.

  2. Попередження: Погляди та думки, висловлені в цій статті, відображають лише особисті погляди автора й не становлять жодних інвестиційних порад.

  3. Інші мовні версії статті перекладені командою Gate Learn, не згадано в Gate.io, перекладений матеріал не може бути відтворений, поширений або плагіатований.

Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!
It seems that you are attempting to access our services from a Restricted Location where Gate is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.