Как проверить делегирование EIP-7702: пошаговый гайд после взлома Binance на $6,3 млрд
Атакующий вывел миллиарды из горячего кошелька Binance через делегацию EIP-7702. Показываем, как за минуту проверить свои адреса и отключить лишние делегации.

- EIP-7702 позволяет обычному адресу «подключить» к себе код смарт-контракта — и этот код работает, пока делегацию не снимут.
- Проверить делегацию можно за минуту на Etherscan или в разделе Delegations на Revoke.cash.
- Снимать её нужно в самом кошельке; если код чужой — считай ключ скомпрометированным и уходи на новый адрес.
Разбираем, как проверить делегирование EIP-7702 на своём кошельке и снять его, если оно лишнее. Именно этот механизм 29 октября помог атакующему одной транзакцией вывести из горячего кошелька Binance около $2,5 млрд, а через него — дотянуться до соседнего кошелька с USDC.
Что случилось у Binance и при чём тут EIP-7702
По ончейн-разбору drk.vc, атакующий заранее развернул собственный контракт с функцией sweep(), дважды отрепетировал схему на тестовых адресах, а в 20:20 UTC 29 октября отправил транзакцию с 50 авторизациями от имени кошелька Binance 14 — на 50 подряд идущих nonce. Сработала одна, совпавшая с текущим nonce. После этого код кошелька указывал на контракт атакующего, и вызов sweep() за раз забрал 167 464 ETH и десятки токенов. Самое показательное — что было дальше: делегация оставалась активной, и средства, которые внутренние системы биржи продолжали заводить на Binance 14, атакующий забирал повторными вызовами. Позже Binance отозвала авторизацию, и код кошелька снова стал пустым.
Binance оценивает общий ущерб по нескольким сетям примерно в $6,3 млрд и около $3 млрд уже заморожено. По предварительным данным биржи, которые приводит Cointelegraph, точкой входа стал скомпрометированный ноутбук DevOps-инженера, а признаков утечки приватного ключа не найдено. Один из разработчиков стандарта, основатель ZeroDev Дерек Чан, подчеркнул: в самом EIP-7702 уязвимости нет — атакующему нужен доступ к ключу или к системе, которая подписывает авторизации.
Для тебя вывод простой. Делегация — это не баг, а функция. Но если ты когда-то подписал её не тому контракту, этот контракт может управлять твоим адресом, пока ты её не снимешь.
Как проверить делегирование EIP-7702 пошагово
- Открой свой адрес в Etherscan. По объяснению самого Etherscan, у адреса с делегацией появляется поле Delegated Address. Если там Null — делегации нет. Если ты включал «умный аккаунт» в MetaMask, там будет MetaMask: EIP-7702 Delegator.
- Повтори проверку в каждой сети, где пользуешься адресом: Arbitrum, Base, Optimism, BNB Chain и так далее. Делегация записывается отдельно для каждой сети.
- Открой свой адрес на Revoke.cash и зайди во вкладку Delegations — там видны все делегации. Отозвать их оттуда нельзя, только посмотреть.
- Если хочешь проверить «руками», запроси код адреса через любой эксплорер. По спецификации EIP-7702 у делегированного адреса код начинается с 0xef0100, а за ним идёт адрес контракта-делегата.
- Сверь, кому принадлежит делегат. Знакомый контракт кошелька — нормально. Неверифицированный контракт с неизвестным владельцем — тревога.
Учти нюанс: стандарт допускает авторизации с chain ID, равным 0, — такая подпись действует во всех сетях сразу. Поэтому подписывать «Account Update» на непонятном сайте особенно опасно.
Как снять делегацию
В MetaMask это делается по инструкции поддержки: выбор аккаунта → три точки → Account details → Smart account, затем выключи переключатель в нужных сетях и подтверди транзакцию с комиссией. Адрес, средства и сид-фраза при этом не меняются, аккаунт просто снова становится обычным EOA. После отката поле Delegated Address в Etherscan снова покажет Null.
На уровне протокола отзыв — это новая авторизация на нулевой адрес: тогда код аккаунта очищается. Сторонние сайты обычно не могут сделать это за тебя, поэтому снимай делегацию в том кошельке, которым пользуешься.
Если делегация ведёт на чужой контракт, который сам выводит всё входящее, Revoke.cash предупреждает: такое возможно, только если сид-фраза уже скомпрометирована. Не отправляй на этот адрес ETH «на газ» — его заберут. Переводи всё, что ещё можно спасти, на новый кошелёк по нашему гайду о смене кошелька после утечки ключа и создавай новую сид-фразу правильно.
Делегация EIP-7702 работает как доверенность на твой адрес. Проверяй, кому ты её выписал, и отзывай всё, что не помнишь.
Как не подписать чужую делегацию
- Включай умный аккаунт только в самом кошельке, а не по запросу случайного сайта. MetaMask прямо пишет, что не рассылает письма с предложением «обновить аккаунт».
- Etherscan отмечал, что вскоре после запуска Pectra больше 97% делегаций были связаны с мошенническими контрактами. Любое окно «Switch to smart account» на незнакомом сайте — повод закрыть вкладку.
- Держи делегацию только на горячем кошельке для DeFi. Для долгого хранения Revoke.cash советует оставаться на простом EOA.
- Помни про батчи: с EIP-7702 одна подпись может отправить сразу много активов. Внимательно читай, что подтверждаешь, — так же, как при отзыве опасных approve.
FAQ
Как проверить делегирование EIP-7702 без технических знаний? Открой адрес в Etherscan и найди поле Delegated Address. Null — всё чисто.
Опасно ли включать smart account в MetaMask? Сам механизм не уязвим, а делегат MetaMask — известный контракт. Риск появляется, когда ты подписываешь делегацию на чужом сайте.
Revoke.cash может снять делегацию? Нет, он только показывает её. Отключать нужно в кошельке.
Что делать, если делегат неизвестный? Считать ключ скомпрометированным и выводить активы на новый кошелёк.
Итог: теперь ты знаешь, как проверить делегирование EIP-7702 за минуту. Сделай это для всех своих адресов и сетей, отключи лишнее и не подписывай «обновления аккаунта» вне кошелька — взлом Binance показал, сколько может забрать одна такая подпись.
Материал не является инвестиционной рекомендацией. Крипта — высокий риск, решения принимаешь сам.


