Фишинг через делегацию кошелька (EIP-7702): как он устроен на самом деле
30 мая 2025 года, через три недели после апгрейда Ethereum под названием Pectra, аналитики Wintermute опубликовали цифру, которая разлетелась по заголовкам: больше 97% всех делегаций по новому стандарту EIP-7702 ведут на контракты с одинаковым кодом, созданные, чтобы выкачивать деньги. Пересказы быстро превратились в «97% пользователей обмануты». Через десять дней Wintermute сама объяснила, что цифра значит другое: такие контракты ставят воры на адреса, ключи от которых уже украдены. Сама угроза при этом реальна — просто выглядит не так, как в заголовках. Разбираем, где страшилка, а где настоящий риск и что проверить в своём кошельке.
Главное за 30 секунд
- Почти все вредоносные делегации ставит сам вор на адреса с уже утёкшим ключом: делегация здесь не причина кражи, а её автоматизация.
- MetaMask, Ledger и Rabby не дают сайту делегировать ваш адрес на чужой контракт: MetaMask делегирует только на свой, Ledger блокирует остальные на уровне устройства.
- Реальные потери от фишинга с 7702 пришли через пакетную подпись поверх легитимного смарт-аккаунта: два августовских случая 2025 года, по данным ScamSniffer, — $2,54 млн.
- Незнакомый контракт в строке «Delegated to» на Etherscan — признак утёкшего ключа. Отзыв делегации здесь уже не спасает.
- Делегация действует без срока и может работать сразу во всех сетях, поэтому проверять и отзывать её нужно по каждой сети.
Чем делегация отличается от обычного разрешения
Что такое EIP-7702 и зачем обычному кошельку «режим смарт-контракта», мы разбирали в статье про абстракцию аккаунтов. Здесь важен один аспект — масштаб доступа.
Классическое разрешение Approval даёт одному контракту право тратить один токен. Делегация устроена иначе: на адрес записывается ссылка на код, и этот код получает, по формулировке самой спецификации, неограниченный доступ к аккаунту. Все токены, все NFT и все будущие поступления — пока делегацию не заменят.
Отсюда три свойства, которые стоит знать:
- Срока действия нет. Делегация живёт, пока её не перезапишут. Отзыв — это новая делегация на нулевой адрес.
- Одна подпись может действовать во всех сетях. Если в авторизации указан номер сети 0, она работает в любой сети, совместимой с Ethereum, где есть нужный код.
- Защита — задача кошелька. Спецификация прямо говорит: безопасного способа дать сайту запросить такую подпись не существует. Решать, на что делегировать, должен кошелёк.
Откуда взялись «97%»
Цифра Wintermute точная, но у неё есть база: делегации в основной сети Ethereum за первые три недели после Pectra. Почти все они вели на смарт-контракты-свиперы — перехватчики, которые автоматически уводят любой ETH, пришедший на скомпрометированный адрес. По данным CoinDesk со ссылкой на Wintermute, на 2 июня 2025 года свиперы потратили около 2,88 ETH, чтобы авторизовать примерно 79 000 адресов.
Ключевое слово — «скомпрометированный». Чтобы поставить такую делегацию, нужен приватный ключ. 9 июня 2025 года Wintermute уточнила: свиперы появляются после утечки ключа, а пользователи надёжных кошельков авторизовать их не могут.
Более широкая выборка есть в исследовании, принятом на конференцию USENIX Security 2026. Авторы проверили семь сетей до 15 июля 2025 года: 2,32 млн из 3,66 млн авторизаций (63%) связаны с вредоносными контрактами, подтверждённые потери — $2,36 млн. Свиперы на украденных ключах и фишинг в этих цифрах не разделены, так что «63% — фишинг» из пересказов — снова подмена.
Три сценария, которые путают
| Сценарий | Что происходит | Причина | Что помогает |
|---|---|---|---|
| Свипер на украденном ключе | Вор делегирует адрес на перехватчик, чтобы забирать всё, что придёт | Ключ или сид-фраза уже утекли | Только новый кошелёк с новой фразой |
| Пакетная подпись | Вы подписываете пакет переводов через легитимный смарт-аккаунт своего кошелька | Фишинговый сайт и невнимательная подпись | Читать, что подписываете, симуляция |
| Делегация на контракт мошенника | Сайт просит авторизовать ваш адрес на свой контракт | Кошелёк, который такой запрос пропускает | Кошелёк с белым списком делегаторов |
Пакетная подпись — главный реальный риск. В мае 2025 года дрейнер Inferno увёл около $146 тыс. У адреса жертвы SlowMist нашли делегацию не на контракт мошенника, а на штатный контракт MetaMask: кражу провели пакетом переводов через него. 24 августа 2025 года, по данным ScamSniffer, так потеряли $1,54 млн в токенах и NFT, а приманкой служили фальшивые интерфейсы обмена. Вторая августовская кража того же типа — ещё $1 млн. Механика знакома по статье про дрейнеры: вы нажимаете «подтвердить», не разобрав, что именно уходит. Новое только одно — пакет умещает несколько переводов в одну подпись.
Прямая делегация на контракт мошенника тоже задокументирована. В мае 2025 года исследователи DeFiHackLabs нашли в топе делегаторов Ethereum контракт, который пересылал весь входящий ETH мошеннику. Но MetaMask, Ledger и Rabby такой запрос от сайта не пропускают.
Что умеют кошельки сегодня
По официальным страницам на 27 сентября 2026 года:
- MetaMask делегирует только на собственный контракт. Смарт-аккаунт у новых пользователей включён по умолчанию, поэтому пакетная подпись доступна сразу. Выключить его можно в настройках аккаунта отдельно для каждой сети, это стоит газа. На вопрос, пришлёт ли MetaMask письмо «обновите аккаунт», справка отвечает: нет, это мошенники.
- Ledger на уровне устройства разрешает только простой контракт Ethereum Foundation, остальные блокирует.
- Trezor поддерживает 7702 экспериментально — с прошивки 2.12.4 от 19 августа 2026 года и только при включённых экспериментальных функциях.
- Rabby умеет отменять делегацию, а запросы авторизации от сайтов не принимает.
Как проверить свой адрес
Откройте адрес в обозревателе блоков Etherscan. Если делегация есть, на странице будет строка «Delegated to», а историю покажет вкладка «Authorizations (EIP-7702)». Сервис revoke.cash показывает делегации по сетям, но отозвать их там нельзя — только в самом кошельке.
Как читать результат:
- Штатный контрактx вашего кошелька (например, «MetaMask: EIP-7702 Delegator»), и вы включали смарт-аккаунт — это нормально.
- Незнакомый контракт почти наверняка значит, что ключ или сид-фраза уже у вора. Отзывать делегацию бесполезно: вор поставит её снова. Ловушка ещё и в газе: отзыв нужно оплатить с этого же адреса, а перехватчик уводит пришедший ETH в том же блоке — такой случай в сентябре 2026 года разобрали в публичном обсуждении на GitHub кошелька Rabby.
Во втором случае работает только переезд: новый кошелёк, созданный на чистом устройстве, и перевод того, что ещё можно спасти. Базовый порядок действий описан в статье про фейковые кошельки, в разделе «Если вы уже установили и ввели фразу».
Что делать прямо сейчас
Шаг 1. Проверьте свой адрес на Etherscan: есть ли строка «Delegated to» и чей там контракт. Если вы пользуетесь несколькими сетями, проверьте каждую.
Шаг 2. Если смарт-аккаунт вам не нужен, выключите его в настройках кошелька по каждой сети. Если нужен — оставьте, но помните, что одна подпись теперь может уводить сразу несколько активов.
Шаг 3. Любое письмо или сообщение «обновите кошелёк до смарт-аккаунта» — фишинг. Обновление делается в самом кошельке, а не по ссылке.
Шаг 4. Перед любой подписью смотрите, что именно уходит, а не только на сумму. Кошельки с симуляцией транзакции покажут пакет целиком.
Дисклеймер: Материал актуален на сентябрь 2026 года. Не является финансовой или юридической рекомендацией.