Недавно Виталик Бутерин предложил EIP-7702, который может стать одним из наиболее значимых изменений в истории Ethereum. В этой статье будет представлено функционирование этого нового предложения и все необходимое для понимания его реализации.
Во-первых, предложение EIP-7702 удивительно краткое, что оставило некоторых людей в недоумении относительно его работы. Чтобы понять EIP-7702, нам нужно рассмотреть три других упомянутых в нем предложения:
EIP-4337
EIP-3074
EIP-5003
Давайте начнем с общей цели этих предложений: «абстрагирование учетной записи». На Ethereum у ОУА («обычные» учетные записи) есть существенные недостатки - они очень рискованные и имеют очень ограниченную функциональность. Абстрагирование учетной записи позволяет пользователям использовать смарт-контракты как учетные записи, добавляя больше функциональности и безопасности для решения этих проблем.
EIP-4337 появился на основной сети в марте 2023 года. Он позволяет писать умные контракты как учетные записи, чтобы они могли проверять и выполнять транзакции, улучшая множество пользовательских опытов (UX).
С момента выпуска EIP-4337 он получил широкое распространение, в основном под руководством Polygon, с увеличением активности от Base в последние месяцы.
Последние инновации, связанные с EIP-4337, поступают из экосистемы Coinbase и Coinbase Smart Wallet. Этот кошелек основан на биометрической технологии, обеспечивая отличный пользовательский опыт. На прошлых выходных я создал еще одну небольшую демонстрацию на ETH Global Sydney, чтобы показать это.
Итак, с какими проблемами столкнулся EIP-4337? Почему сегодня появилось еще одно предложение по абстрагированию учетной записи? Потому что EOAs по-прежнему являются самым широко используемым типом учетной записи.
Кроме того, большинство умных контрактов EIP-4337 контролируются одним единственным подписчиком EOA. Вот пример фрагмента кода:
Поскольку невозможно «преобразовать» EOA пользователя в учетную запись смарт-контракта, существует такое странное промежуточное решение. Это в основном связано с отсутствием поддержки смарт-контрактов в приложениях Web3 для подключения учетных записей смарт-контрактов. В настоящее время большинство людей по-прежнему используют EOA через кошельки-плагины, такие как MetaMask.
Это приводит нас к нашему следующему предложению: EIP-3074.
На самом деле, эта пропозиция была представлена до EIP-4337, но еще не была включена в основную сеть. EIP-3074 пытается усилить EOAs, позволяя им делегировать управление своими EOAs смарт-контрактам.
Предложение подробно описывает добавление двух новых операционных кодов:
Это достигает многих тех же случаев использования, что и EIP-4337, не требуя от каждого пользователя развертывать новый смарт-контракт. Основное различие заключается в том, что транзакции исходят от EOA пользователя, а не от нового контракта, который не имеет истории учетной записи пользователя, ETH, NFT, токенов и т. д.
Реакция на EIP-3074 часто бывает такова: "Что, если кто-то создаст зловредный контракт, и пользователь делегирует ему свои полномочия?" В конце концов, делегирование своих полномочий зловредному контракту может привести к вытеканию всех криптовалютных активов из кошелька пользователя.
Решением этой проблемы является ограничение поставщиков услуг кошельков от авторизации произвольных контрактов пользователями. Они могут вести список разрешенных смарт-контрактов, к которым пользователи могут делегировать полномочия, обеспечивая, что любые контракты вне этого списка не представляются пользователям для авторизации.
Очень важный момент о делегировании в EIP-3074 заключается в том, что оно не является постоянным. «Делегирование от EOA аннулируется одной транзакцией, которая увеличивает номер, что делает недействительными все оставшиеся авторизации».
По сути, после того, как пользователь совершит новую транзакцию, делегация больше не будет действительной.
Мы действительно не хотим предоставлять EOA больше полномочий. В конце концов, цель этих предложений - перевести пользователей с EOA на учетные записи смарт-контрактов. Зачем добавлять функциональность к EOA?
Это отлично ведет нас к нашему следующему предложению: EIP-5003. EIP-5003 вводит еще один операнд, "AUTHUSURP", который развертывает код на адрес авторизации EIP-3074.
Разница между EIP-3074 и EIP-5003 заключается в том, что:
EIP-3074 - это временная делегация для смарт-контрактов, отзывающаяся.
EIP-5003 - это постоянная миграция с EOA и «конвертация» с EOA на учетные записи смарт-контрактов.
Основная проблема EIP-3074 + EIP-5003 заключается в его несовместимости с текущей схемой абстракции учетной записи через EIP-4337. Некоторые члены сообщества Ethereum беспокоятся, что мы можем «создать две отдельные кодовые экосистемы» с этими двумя типами абстракций учетных записей.
Это приводит нас к предложению Виталика Бутерина сегодня: EIP-7702. Он предлагает изменить EIP-3074, чтобы сделать его более кратким и совместимым с EIP-4337, чтобы мы не оказались с двумя отдельными экосистемами абстракции учетной записи. EIP-5003 затем рассматривается как следующий шаг для постоянной миграции.
EIP-7702 вводит новый тип транзакции, который принимает поля contract_code и signature. При выполнении транзакции он устанавливает код контракта учетной записи подписанта в contract_code. В конце транзакции он сбрасывает код в пустое значение.
Подобно EIP-3074, это достигает временной делегации EOAs смарт-контрактам. Однако EIP-7702 не вводит новые опкоды (которые потребовали бы хардфорк), а скорее определяет функции для вызова:
AUTH -> вызывает «проверить»
AUTHCALL -> вызывает «выполнение»
В частности, это:
Проверяет, пуст ли код контракта вашего аккаунта.
Если оно пусто, устанавливает его в предоставленный контрактный код.
Выполняет транзакцию в соответствии с тем, как предоставленный смарт-контракт обрабатывает транзакции.
Восстанавливает код контракта учетной записи в пустое состояние.
«Код контракта» буквально; здесь хранится код смарт-контракта. Поскольку EOA сам по себе не является контрактом, это поле обычно пусто. Однако гениальность EIP-7702 заключается в том, что оно временно заполняет это поле некоторым кодом смарт-контракта во время выполнения транзакции.
Это способ предоставить новое поведение (в виде кода) для вашего EOA для выполнения этой конкретной транзакции. Следующим шагом является сделать его постоянным изменением поведения, просто выбрав «не устанавливать код в пустое после завершения транзакции».
Одним из лучших аспектов этого предложения является его высокая совместимость со всей работой по абстракции учетных записей, проделанной до сих пор для EIP-4337. «Код контракта, который пользователи должны подписать, на самом деле может быть существующим кодом кошелька EIP-4337».
После вступления в силу этого изменения существующие у пользователей ЕОА могут выполнять любой код смарт-контракта. Через дополнительные EIP пользовательские ЕОА также могут быть постоянно обновлены для выполнения определенного кода.
Со временем это может фундаментально изменить то, как мы все взаимодействуем с приложениями Web3.
Эта статья воспроизведена из [panews], оригинальное название “Исследование предложения EIP-7702: окончательное предписание Виталика для проблемы абстрагирования учетной записи?”, права принадлежат оригинальному автору [Foresight News], если у вас есть какие-либо возражения по поводу перепечатки, пожалуйста, свяжитесь Команда Gate Learn, команда обработает это как можно скорее в соответствии с соответствующими процедурами.
Отказ от ответственности: Взгляды и мнения, выраженные в этой статье, представляют собой только личные взгляды автора и не являются инвестиционными советами.
Другие языковые версии статьи переведены командой Gate Learn, не упомянутой в Gate , переведенная статья не может быть воспроизведена, распространена или использована в качестве плагиата.
Недавно Виталик Бутерин предложил EIP-7702, который может стать одним из наиболее значимых изменений в истории Ethereum. В этой статье будет представлено функционирование этого нового предложения и все необходимое для понимания его реализации.
Во-первых, предложение EIP-7702 удивительно краткое, что оставило некоторых людей в недоумении относительно его работы. Чтобы понять EIP-7702, нам нужно рассмотреть три других упомянутых в нем предложения:
EIP-4337
EIP-3074
EIP-5003
Давайте начнем с общей цели этих предложений: «абстрагирование учетной записи». На Ethereum у ОУА («обычные» учетные записи) есть существенные недостатки - они очень рискованные и имеют очень ограниченную функциональность. Абстрагирование учетной записи позволяет пользователям использовать смарт-контракты как учетные записи, добавляя больше функциональности и безопасности для решения этих проблем.
EIP-4337 появился на основной сети в марте 2023 года. Он позволяет писать умные контракты как учетные записи, чтобы они могли проверять и выполнять транзакции, улучшая множество пользовательских опытов (UX).
С момента выпуска EIP-4337 он получил широкое распространение, в основном под руководством Polygon, с увеличением активности от Base в последние месяцы.
Последние инновации, связанные с EIP-4337, поступают из экосистемы Coinbase и Coinbase Smart Wallet. Этот кошелек основан на биометрической технологии, обеспечивая отличный пользовательский опыт. На прошлых выходных я создал еще одну небольшую демонстрацию на ETH Global Sydney, чтобы показать это.
Итак, с какими проблемами столкнулся EIP-4337? Почему сегодня появилось еще одно предложение по абстрагированию учетной записи? Потому что EOAs по-прежнему являются самым широко используемым типом учетной записи.
Кроме того, большинство умных контрактов EIP-4337 контролируются одним единственным подписчиком EOA. Вот пример фрагмента кода:
Поскольку невозможно «преобразовать» EOA пользователя в учетную запись смарт-контракта, существует такое странное промежуточное решение. Это в основном связано с отсутствием поддержки смарт-контрактов в приложениях Web3 для подключения учетных записей смарт-контрактов. В настоящее время большинство людей по-прежнему используют EOA через кошельки-плагины, такие как MetaMask.
Это приводит нас к нашему следующему предложению: EIP-3074.
На самом деле, эта пропозиция была представлена до EIP-4337, но еще не была включена в основную сеть. EIP-3074 пытается усилить EOAs, позволяя им делегировать управление своими EOAs смарт-контрактам.
Предложение подробно описывает добавление двух новых операционных кодов:
Это достигает многих тех же случаев использования, что и EIP-4337, не требуя от каждого пользователя развертывать новый смарт-контракт. Основное различие заключается в том, что транзакции исходят от EOA пользователя, а не от нового контракта, который не имеет истории учетной записи пользователя, ETH, NFT, токенов и т. д.
Реакция на EIP-3074 часто бывает такова: "Что, если кто-то создаст зловредный контракт, и пользователь делегирует ему свои полномочия?" В конце концов, делегирование своих полномочий зловредному контракту может привести к вытеканию всех криптовалютных активов из кошелька пользователя.
Решением этой проблемы является ограничение поставщиков услуг кошельков от авторизации произвольных контрактов пользователями. Они могут вести список разрешенных смарт-контрактов, к которым пользователи могут делегировать полномочия, обеспечивая, что любые контракты вне этого списка не представляются пользователям для авторизации.
Очень важный момент о делегировании в EIP-3074 заключается в том, что оно не является постоянным. «Делегирование от EOA аннулируется одной транзакцией, которая увеличивает номер, что делает недействительными все оставшиеся авторизации».
По сути, после того, как пользователь совершит новую транзакцию, делегация больше не будет действительной.
Мы действительно не хотим предоставлять EOA больше полномочий. В конце концов, цель этих предложений - перевести пользователей с EOA на учетные записи смарт-контрактов. Зачем добавлять функциональность к EOA?
Это отлично ведет нас к нашему следующему предложению: EIP-5003. EIP-5003 вводит еще один операнд, "AUTHUSURP", который развертывает код на адрес авторизации EIP-3074.
Разница между EIP-3074 и EIP-5003 заключается в том, что:
EIP-3074 - это временная делегация для смарт-контрактов, отзывающаяся.
EIP-5003 - это постоянная миграция с EOA и «конвертация» с EOA на учетные записи смарт-контрактов.
Основная проблема EIP-3074 + EIP-5003 заключается в его несовместимости с текущей схемой абстракции учетной записи через EIP-4337. Некоторые члены сообщества Ethereum беспокоятся, что мы можем «создать две отдельные кодовые экосистемы» с этими двумя типами абстракций учетных записей.
Это приводит нас к предложению Виталика Бутерина сегодня: EIP-7702. Он предлагает изменить EIP-3074, чтобы сделать его более кратким и совместимым с EIP-4337, чтобы мы не оказались с двумя отдельными экосистемами абстракции учетной записи. EIP-5003 затем рассматривается как следующий шаг для постоянной миграции.
EIP-7702 вводит новый тип транзакции, который принимает поля contract_code и signature. При выполнении транзакции он устанавливает код контракта учетной записи подписанта в contract_code. В конце транзакции он сбрасывает код в пустое значение.
Подобно EIP-3074, это достигает временной делегации EOAs смарт-контрактам. Однако EIP-7702 не вводит новые опкоды (которые потребовали бы хардфорк), а скорее определяет функции для вызова:
AUTH -> вызывает «проверить»
AUTHCALL -> вызывает «выполнение»
В частности, это:
Проверяет, пуст ли код контракта вашего аккаунта.
Если оно пусто, устанавливает его в предоставленный контрактный код.
Выполняет транзакцию в соответствии с тем, как предоставленный смарт-контракт обрабатывает транзакции.
Восстанавливает код контракта учетной записи в пустое состояние.
«Код контракта» буквально; здесь хранится код смарт-контракта. Поскольку EOA сам по себе не является контрактом, это поле обычно пусто. Однако гениальность EIP-7702 заключается в том, что оно временно заполняет это поле некоторым кодом смарт-контракта во время выполнения транзакции.
Это способ предоставить новое поведение (в виде кода) для вашего EOA для выполнения этой конкретной транзакции. Следующим шагом является сделать его постоянным изменением поведения, просто выбрав «не устанавливать код в пустое после завершения транзакции».
Одним из лучших аспектов этого предложения является его высокая совместимость со всей работой по абстракции учетных записей, проделанной до сих пор для EIP-4337. «Код контракта, который пользователи должны подписать, на самом деле может быть существующим кодом кошелька EIP-4337».
После вступления в силу этого изменения существующие у пользователей ЕОА могут выполнять любой код смарт-контракта. Через дополнительные EIP пользовательские ЕОА также могут быть постоянно обновлены для выполнения определенного кода.
Со временем это может фундаментально изменить то, как мы все взаимодействуем с приложениями Web3.
Эта статья воспроизведена из [panews], оригинальное название “Исследование предложения EIP-7702: окончательное предписание Виталика для проблемы абстрагирования учетной записи?”, права принадлежат оригинальному автору [Foresight News], если у вас есть какие-либо возражения по поводу перепечатки, пожалуйста, свяжитесь Команда Gate Learn, команда обработает это как можно скорее в соответствии с соответствующими процедурами.
Отказ от ответственности: Взгляды и мнения, выраженные в этой статье, представляют собой только личные взгляды автора и не являются инвестиционными советами.
Другие языковые версии статьи переведены командой Gate Learn, не упомянутой в Gate , переведенная статья не может быть воспроизведена, распространена или использована в качестве плагиата.