Skip to content
Все руководства по опционам и фьючерсам
Делегирование аккаунтов Ethereum9 мин чтения

EIP-7702: делегирование кода EOA и риски

Узнайте, как EIP-7702 связывает EOA с развернутым кодом, что подписывает авторизация типа 4 и какие полномочия и риски следует проверить.

В этом руководствеEIP-7702 меняет путь выполнения, а не ключ аккаунта

Краткое резюме

EIP-7702 позволяет существующему внешнему аккаунту (EOA) установить маркер, указывающий на уже развернутый код. Адрес и ключ остаются прежними, но вызовы аккаунта могут выполнять этот код с его полномочиями. Стандарт не гарантирует ограниченные права или безопасность. До подписи проверьте целевой код и того, кто им управляет.

EIP-7702 меняет путь выполнения, а не ключ аккаунта

Обычный EOA подписывает транзакции приватным ключом и не хранит исполняемый код по своему адресу. EIP-7702 позволяет ему указать на код, развернутый по другому адресу, и выполнять его в контексте аккаунта. Поэтому баланс, адрес и хранилище относятся к делегирующему аккаунту, хотя сам код находится в другом месте. Это не перенос средств на новый контрактный адрес и не замена ключа.

Спецификация EIP-7702 задает транзакцию set-code типа 4 со списком авторизаций; руководство Ethereum.org по Pectra описывает указатель на развернутый код. Надпись «смарт-аккаунт» в кошельке не раскрывает правила проверки, восстановления и используемый код. Узнайте, кто может его изменить и как он может распоряжаться активами и хранилищем.

Транзакция типа 4 содержит отдельно подписанный список авторизаций

Тип set-code обозначается байтом 0x04. Каждый элемент списка содержит ID сети, адрес кода, nonce авторизующего аккаунта и подпись. Авторизующий аккаунт подписывает разрешение, а отправитель отдельно подписывает внешнюю транзакцию; это могут быть разные аккаунты.

ID сети обычно ограничивает разрешение одной сетью. Значение 0 расширяет область на сети с поддержкой EIP-7702, но не гарантирует успех: nonce и состояние аккаунта также должны подходить. Сравните сеть, аккаунт и полный адрес цели в окне подписи и надежном обозревателе блоков. Элемент с неверным nonce или другой ошибкой проверки может быть пропущен.

Документация Ethereum.org по транзакциям описывает список авторизаций типа 4. У внешней транзакции остаются условия газа и плательщик комиссии. Это не UserOperation и не paymaster ERC-4337; см. руководство по смарт-аккаунтам.

Маркер делегирования указывает на код, а не содержит его

Маркер кода EOA состоит из префикса 0xef0100 и адреса цели. Клиент распознает его и загружает целевой код при выполнении вызова. Адрес аккаунта отличается от адреса кода. Код берется из текущей сети: один и тот же адрес на других сетях может содержать другой код или не содержать никакого.

Делегированный код выполняется в контексте аккаунта и может использовать его хранилище. В зависимости от реализации он способен переводить ETH и токены, вызывать внешние контракты и менять сохраненные значения. Сам EIP-7702 не ограничивает код одним токеном или одним вызовом в день. Если цель — прокси, проверьте администратора и полномочия обновления.

Делегированный код может получить широкие права

Ошибка проверки может разрешить перевод активов, одобрение токенов, произвольные внешние вызовы или изменение хранилища. Раздел безопасности EIP обращает внимание на защиту от повторов и привязку к подписи цели, calldata, значения ETH и условий газа. Без этих проверок спонсор может передать другой вызов или вызвать сбой.

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

Ошибка внешней транзакции может оставить делегирование активным

EIP-7702 обрабатывает авторизации до исполнения внешней транзакции. В спецификации сказано, что уже обработанные маркеры делегирования не откатываются, если дальнейшее исполнение завершается ошибкой или revert. Поэтому статус «ошибка» не означает, что все состояние аккаунта вернулось к исходному. Отдельно проверьте квитанцию и текущий код аккаунта.

Авторизация может примениться, а последующий вызов инициализации — завершиться неудачей. Делегирование тогда останется, хотя настройка не выполнена. Перед повтором сравните хеш транзакции, авторизующий аккаунт, nonce и текущий указатель кода: nonce мог измениться и сделать старую подпись недействительной.

Удаление делегирования не очищает остальное состояние

Новая авторизация может указать другой код. Авторизация нулевого адреса удаляет маркер делегирования и возвращает пустой код аккаунта, но не стирает хранилище, allowance в контрактах ERC-20, завершенные переводы и изменения внешних контрактов. Разрешения токенов проверяются и отменяются отдельно.

Новый код может иначе интерпретировать старое хранилище. До замены проверьте его структуру и план миграции. Для allowance используйте руководство по разрешениям токенов. Если раскрыт ключ или seed-фраза, удаление кода ключ не восстанавливает: см. руководство по восстановлению кошелька.

До подписи проверьте сеть, цель и состояние после ошибки

Убедитесь по официальной документации кошелька, что EIP-7702 поддерживается в выбранной сети. Проверьте ID сети, аккаунт, точный адрес цели, проверенный код и администратора прокси. Различайте подпись авторизации, отправителя и плательщика внешней транзакции; спонсорство не делает код безопасным.

Если делегирование уже активно, проверяйте текущий маркер и адрес кода, а не только статус транзакции. При несовпадении остановите дополнительные вызовы и одобрения. О комиссиях читайте в руководстве по газу Ethereum, о nonce и ожидающих транзакциях — в руководстве по ожиданию транзакций.

Отличайте функции протокола от обещаний кошелька

EIP-7702 стандартизирует формат транзакции, связывающий EOA с развернутым кодом. Пакетные вызовы, спонсирование газа, сессионные права и восстановление зависят от конкретного кода и сервиса. Объявление Ethereum Foundation о Pectra в основной сети описывает замену или отзыв авторизации; UserOperation и paymaster ERC-4337 — отдельный механизм.

Надпись «смарт-аккаунт» не сообщает, у кого ключ, кто может обновить код или поменять восстановление. Проверяйте реализацию, настройки и поддержку сети кошельком до изменений аккаунта с активами. Это руководство объясняет механику и не рекомендует конкретный кошелек или делегирование.

Частые вопросы

Q1Превращает ли EIP-7702 EOA в обычный смарт-контрактный кошелек?

Нет. EOA может делегировать вызовы коду, но политика кошелька, восстановление и специальные разрешения автоматически не добавляются.

Q2Обе подписи одинаковы?

Нет. Авторизующий аккаунт подписывает цель, ID сети и nonce; отправитель отдельно подписывает внешнюю транзакцию.

Q3Удаление делегирования отменяет одобрения токенов?

Нет. Allowance хранится в контракте токена отдельно. Проверьте и отмените его через контракт или надежный интерфейс кошелька.

Q4Что проверить у цели делегирования?

Проверьте адрес и код в текущей сети, проверенный исходник, администратора обновления и права на активы и хранилище аккаунта.

Источники и дополнительное чтение

Сообщить о проблеме

Мы подготовим письмо со ссылкой на эту статью. Mark получит сообщение только после отправки

Быстрая проверка

Прочитали руководство? Проверьте себя в 3 вопросах

Вопрос 1 / 3

Вопрос 01

Что может произойти, если внешнее исполнение завершается ошибкой после обработки авторизации?

Выберите ответ, чтобы увидеть объяснение

Словарь опционов

Механика опционовЧто такое назначение опциона?Разберитесь, как проданный опцион может создать обязанность передать или купить акции до даты экспирации или в неёРазрешённое количество контрактов — не то же самое, что бюджет рискаЛимиты позиции по опционам и лимиты исполнения: объяснениеУзнайте, чем лимиты позиции по биржевым опционам отличаются от лимитов исполнения, почему важны агрегация одной стороны и отчётность и почему маржа или покупательная способность не показывают, разрешено ли количествоТорговля опционамиЧто такое бид-аск спред опциона?Узнайте, что представляют бид и аск, почему важна их разница и как она может повлиять на исполнениеТорговля опционамиЧто открытый интерес и ликвидность говорят об опционе?Разберитесь в открытом интересе, объёме, спреде бида и аска, отображаемом размере и качестве котировки, прежде чем оценивать реальную ликвидность опционаЭкспирацияЧто такое опционы 0DTE?Узнайте, что такое опцион 0DTE, почему временной распад и ликвидность быстро меняются и как проверить крайний срок торгов, расчёт и правила брокера до входа