EIP-7702: «умные» возможности для EOAs и сравнение с EIP-3074/ERC-4337

Задача. Исторически пользователи Ethereum контролируют средства через EOA (адреса с приватным ключом). У таких адресов базовые возможности: отправить ETH, подписать вызов, выдать approve. Всё «умное» реализуется через смарт-кошельки (контракты), но это новые адреса, миграции и иные UX-трудности.

Идея EIP-7702. Добавить EOAs «умные» возможности без смены адреса: владелец EOA подписывает разрешение (authorization), и ровно на время одной транзакции его адрес ведёт себя как смарт-аккаунт — исполняет заложенную логику (батч-вызовы, лимиты, social recovery, спонсируемый газ и т. п.). После завершения tx адрес снова «обычный» EOA.

*Ключевой принцип:* делегация временная и явная, по подписи владельца. Это даёт 3074-подобный UX, но подходит к дорожной карте account abstraction и дружит с экосистемой роллапов, MEV-инфраструктуры и ERC-4337.

EIP-7702: «умные» возможности для EOAs и сравнение с EIP-3074/ERC-4337

Как EIP-7702 работает (простыми словами)

  • Вводится новый тип транзакции (в спецификации его обычно обозначают как type 0x04), который помимо обычных полей несёт список авторизаций от EOAs.
  • Авторизация описывает: какой код (или адрес реализации кода) временно связывается с данным EOA, для какого цепочечного контекста (chain id), с каким сроком/окном и какой nonce/объёмом допустимых действий.
  • Во время исполнения такой tx код «подсаживается» к аккаунту EOA, и вызовы исполняются как если бы EOA был контрактом.
  • По завершении tx связка сбрасывается: EOA снова пустой (без кода). Долговременной «прививки» нет.

Что это даёт в UX:

  • Батч-операции (несколько действий за один клик): своп → approve → мост → деплой — без смены адреса.
  • Сессионные ключи: выдаём ключ с ограничениями (лимит суммы, список dApp, TTL).
  • Газ-спонсорство: платит спонсор/кошелёк по политике (аналог Paymaster).
  • Политики расходования: дневные лимиты, «белые списки» получателей.
  • Recovery-механики: социальное восстановление без миграции на новый адрес.

Чем EIP-7702 отличается от EIP-3074

EIP-3074 предлагал опкоды AUTH/AUTHCALL: EOA «уполномочивает» invoker-контракт, а тот делает вызовы «от лица» EOA. Это открывало батчи и спонсорство, но рождало риски: долговременные делегаты, «липкие» полномочия, трудности миграции к полной AA.

EIP-7702 переносит идею в тип транзакции:

  • Делегация пер-транзакционная (временная), без «вечно доверенных» invoker’ов.
  • Лучше вписывается в архитектуру AA/4337: те же паттерны (батчи, paymaster), но без обязательной смены адреса пользователя.
  • Нет новых опкодов в EVM — меньше инвазивных изменений виртуальной машины; логика — в верификации транзакции и исполнении.

Плюсы 7702 по сравнению с 3074

  1. Контроль и отзывчивость: авторизация действует только «здесь и сейчас».
  2. Совместимость с дорожной картой account abstraction (ниже сравнение с ERC-4337).
  3. Упрощённый анализ рисков: нет перманентных «привязок» к invoker.

Минусы/ограничения

  1. Контрактную логику всё равно нужно писать/аудировать.
  2. Для некоторых кейсов 3074 (с упором на «постоянного управляющего») придётся переосмыслить архитектуру.

ERC-4337 и EIP-7702: конкуренты или союзники?

ERC-4337 — способ дать AA без изменений протокола: «альт-мемпул» с UserOperation, контракт-EntryPoint, bundler и paymaster. Почти весь «умный» UX возможен уже сейчас, но большинство пользователей сидят на EOAs, а миграция в смарт-кошельки требует новых адресов и деплоев.

EIP-7702 дополняет 4337:

  • Адрес сохраняется. Пользователь остаётся на своём EOA, но получает AA-возможности «на время tx».
  • Инфраструктура совместима. Те же паттерны (батчинг, спонсорство, сессионные ключи) можно реализовывать без EntryPoint/альт-мемпула — либо вместе с 4337 (например, 7702-авторизация, а далее взаимодействие с Paymaster).
  • Миграционный путь. Кошельки могут постепенно «включать смарт-режим» EOA, не вынуждая пользователя менять адрес; при желании затем перейти к «полной» смарт-модели 4337.

Итого: 4337 — экосистема и инструменты, 7702 — протокольный мостик к «умным» возможностям EOA. Они совместимы и усиливают друг друга.

Что можно строить поверх EIP-7702 (паттерны)

  • Batch/Multicall кошелька. Один подписиный пакет инициирует последовательность действий: approve → swap → bridge → stake с проверками инвариантов (минимальный получаемый объём, дедлайны).
  • Сессионные ключи и разрешения. Владелец выдаёт временный ключ для конкретного dApp: лимит токена X, TTL 30 мин, запрет на transfer вне белого списка.
  • Мета-транзакции и спонсорство. DApp оплачивает газ пользователя по бизнес-правилам (анти-спам депозиты, allow-list, KYC-гейты там, где это требуется локальными законами).
  • Политики безопасности. «Ежедневные лимиты», «двухфакторный вывод» (подтверждение вторым ключом или задержка), «заморозка» при аномалиях.
  • Социальное восстановление. Мультисиг-стражи подтверждают «смену владельца» адреса при утрате ключа — без перевыпуска адреса.

Безопасность: где риски и как их снижать

Уровень пользователя

  • Фишинг «подтверди авторизацию 7702». Всегда читайте, какой код и какие лимиты/TTL подписываете.
  • Сессионные ключи: ограничивайте область действия (список методов, токенов, максимумов).
  • Храните «мастер-ключ» оффлайн; давайте dApp только ограниченные сессии.

Уровень разработчика кошелька/dApp

  • Аудит исполняемого кода (политик/модулей). Предпочтительны переиспользуемые шаблоны, а не одноразовые «самописные» политики.
  • Доменная привязка и EIP-712-подписи: авторизация должна явно фиксировать chain id, TTL, nonces, список методов/ресурсов.
  • Fail-safe: если что-то пошло не так — транзакция должна атомарно откатываться; предусмотреть «чёрный список» утёкших сессионных ключей.
  • Логи и симуляция (dry-run) перед отправкой: показывайте пользователю итоговые изменения балансов и вероятные риски.

Уровень протокола/рынка

  • Диверсификация клиентов, тесты межоперабельности.
  • Мониторинг экосистемных шаблонов (стандарты модулей, как у Permit2, Safe Modules и пр.) и быстрые апдейты в случае обнаруженных уязвимостей.

Сравнение: EIP-7702 vs EIP-3074 vs ERC-4337

Критерий EIP-7702 EIP-3074 ERC-4337
Что меняем Новый тип tx (пер-tx авторизация); без новых опкодов Два новых опкода EVM (AUTH, AUTHCALL) Ничего в протоколе (альт-мемпул + EntryPoint контракт)
Адрес пользователя Тот же EOA Тот же EOA Обычно новый адрес смарт-аккаунта
Длительность делегации Только на один tx Может быть долгоживущей (invoker) Зависит от логики аккаунта (контракта)
Батчи / мультивызовы Да (через код-политику) Да Да (через аккаунт-контракт)
Газ-спонсорство Да (политики/пэймастеры) Да Да (Paymaster 4337)
Совместимость с AA-дорожной картой Высокая (мост к «умным» EOA и 4337) Ниже (миграция и безопасность invoker) Собственная экосистема AA
Главный риск Подписать «не тот» код/лимит; баг в модуле Липкие/широкие полномочия invoker Ошибки в EntryPoint/аккаунте, opsec bundler/paymaster
Где уместно «Умный EOA без смены адреса» + постепенная AA Низкоуровневые сценарии с постоянным менеджером Полноценные смарт-кошельки и богатые политики по умолчанию

Влияние на экосистему

Кошельки. Можно не менять адрес и постепенно включать «смарт-режим» (батчи, сессии, спонсорство). Это снижает отток пользователей при миграции в AA.

DApp/DeFi. Проще реализовать однокликовые флоу без дополнительных разрешений и «залипших апрувов». Появляется стандартная форма авторизации, которую легко симулировать и проверять.

Инфраструктура. Провайдерам газ-спонсорства (paymasters), бандлерам и релейерам открывается рынок «7702-операций»; при этом они могут использовать наработки 4337 или работать без EntryPoint, если бизнес-логика проще.

L2/роллапам. Улучшается UX поверх дешёвых сетей: меньше «размазанных» апрувов, больше атомарности (особенно в комбинации с shared-sequencer и предподтверждениями — см. Shared Sequencers).

Практические рекомендации (для команд)

  1. Кошельки: внедряйте понятные подсказки о том, какой код и на сколько пользователь делегирует; показывайте итоговые изменения активов (до/после).
  2. Разработчики модулей: публикуйте версированные реализации политик (лимиты, списки, recovery), проходите аудит, поддерживайте каталог «одобренных» модулей.
  3. DApp: предлагайте «сессионные ключи» с узкими правами и TTL; храните минимум, отзывать по событию.
  4. Инфраструктура: готовьте релейеры/пэймастеры, лимитируйте ставки/объёмы, внедряйте анти-спам депозиты и квоты.
  5. Безопасность: EIP-712-домены, строгие nonces, симуляция; мониторите аномалии (частые мелкие списания, повторяющиеся адреса-получатели).

Частые вопросы (FAQ)

Нужно ли деплоить контракт-кошелёк, чтобы получить «умные» функции? Нет. По 7702 EOA может получить «умные» возможности на время одной транзакции. Контракт всё равно исполняется — но как временная логика, не как постоянный новый адрес пользователя.

Это заменит ERC-4337? Нет. 4337 остаётся полноценной моделью смарт-аккаунтов, полезной для богатых политик «по умолчанию». 7702 — мост для EOA и совместимый компаньон 4337.

Чем 7702 безопаснее 3074? Главное — временная делегация и отсутствие долгоживущих invoker-контрактов с широкими полномочиями. Пользователь каждый раз явно подтверждает «какой код и на что».

Можно ли оплачивать газ токенами? Да, через политику спонсорства/пэймастер (в 4337-стиле) или иным соглашением с релейером — детали зависят от реализации вашего модуля.

А если авторизованный код содержит баг? Ровно как и со смарт-контрактами: нужен аудит, версии модулей и «красная кнопка» (ограничения/отзыв/тайм-локи) на стороне кошелька.

Связанные материалы

Task Runner