Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

ERC-20 аппрув-механизм и approval phishing: как infinite allowance опустошает кошельки и как отозвать разрешения

Аппрув (approve) в стандарте ERC-20 — разрешение, которое вы даёте смарт-контракту тратить ваши токены без дополнительных подтверждений с вашей стороны. Большинство DeFi-протоколов запрашивают infinite allowance — неограниченную сумму — чтобы не просить разрешение перед каждой транзакцией. Если вы выдали такое разрешение вредоносному контракту, он спишет все токены в любой момент — сразу или через месяц.

Автор: ~8 мин

Что такое ERC-20 approve и зачем он вообще нужен?

Approve — транзакция, которая говорит блокчейну: «этот контракт может тратить до X моих токенов». Без неё DEX или протокол кредитования не могли бы перемещать ваши активы — каждая операция требовала бы отдельной подписи. Легитимные протоколы (Uniswap, Aave, Curve) используют approve для удобства работы. Проблема в том, что сам механизм не различает честный контракт и вредоносный: подписи выглядят одинаково, и кошелёк не предупреждает об опасности автоматически.

Источник: WordCripta: ERC-20 Token Approval — механика и риски

Что такое infinite allowance и почему это опасно?

Infinite allowance — разрешение на сумму 2^256 − 1, фактически неограниченную. Большинство протоколов запрашивают именно его по умолчанию, чтобы пользователь не платил за approve перед каждой транзакцией. Опасность: если контракт окажется вредоносным или будет взломан впоследствии — злоумышленник спишет все токены указанного типа с вашего кошелька в любой момент. Нюанс: одобрив infinite allowance год назад и забыв о нём, вы остаётесь уязвимы, даже не взаимодействуя с протоколом.

Как работает атака approval phishing: механика шаг за шагом?

Атакующий создаёт фишинговый сайт — клон реального протокола или «новый выгодный проект». Пользователь подключает кошелёк и подписывает транзакцию approve, думая, что это стандартный шаг при использовании DeFi. Фактически он выдаёт разрешение вредоносному адресу списывать токены. Дальше всё автоматически: скрипт атакующего отслеживает баланс и при достижении нужной суммы выводит токены одной транзакцией. Жертва узнаёт о краже постфактум. Транзакция в блокчейне необратима.

Как отличить легитимный запрос approve от вредоносного до подписи?

Три проверки перед подписью: 1) адрес контракта-получателя разрешения — сверьте его с официальной документацией протокола на их сайте; 2) сумма разрешения — если сайт запрашивает infinite allowance для простого свапа на маленькую сумму, это подозрительно; 3) домен сайта в браузере — убедитесь, что находитесь на официальном домене, а не на его клоне. Расширения кошельков типа MetaMask отображают адрес контракта и сумму — всегда читайте это окно перед подписью.

Где посмотреть все выданные разрешения и как их отозвать?

Через сервисы проверки аппрувов: Revoke.cash, Etherscan Token Approval Checker (вкладка «Token Approvals» в профиле адреса), DeBank. Подключите кошелёк — увидите список всех активных разрешений с суммами и адресами контрактов. Для отзыва нажмите «Revoke» — это тоже транзакция в блокчейне, потребует небольшой суммы ETH на газ. Нюанс: отзыв разрешения не отменяет уже совершённые кражи — он только закрывает возможность будущих списаний по этому контракту.

Источник: WordCripta: ERC-20 Token Approval — механика и риски

Что делать сразу после того, как обнаружили вредоносный аппрув?

Действуйте быстро: немедленно откройте Revoke.cash или Etherscan Token Approvals и отзовите разрешение для подозрительного контракта. Если токены ещё не списаны — перемещайте их на новый кошелёк параллельно с отзывом: быстрее, чем скрипт атакующего среагирует. Если кража уже произошла — транзакция необратима, средства не вернуть. Зафиксируйте хэши транзакций для возможной жалобы. Нюанс: при высокой загрузке сети транзакция отзыва может застрять — повысьте газ.

Источник: WalletWitness: Approval Phishing — разбор атаки

Распространяется ли approve phishing на ETH и Bitcoin, или только на ERC-20 токены?

Классический approve-механизм — только ERC-20 и совместимые стандарты (BEP-20, токены на Arbitrum, Polygon и других EVM-сетях). Нативный ETH не имеет механизма approve — его нельзя «разрешить» контракту без явной транзакции. Bitcoin технически не поддерживает смарт-контракты такого типа. Но есть аналог — Permit (EIP-2612): подпись без транзакции, ещё опаснее, потому что не видна в истории кошелька до момента кражи.

Эксклюзив от ИнвестХомяка

Типы разрешений ERC-20 и уровень риска

Тип разрешенияСумма allowanceУровень риска
Точная сумма (limited approval)Ровно столько, сколько нужно для текущей операцииНизкий — при взломе контракта потеряете максимум эту сумму
Infinite allowance (легитимный протокол)2^256 − 1 (неограничено)Средний — зависит от надёжности протокола
Infinite allowance (фишинговый контракт)2^256 − 1 (неограничено)Критический — все токены этого типа под угрозой
Permit (EIP-2612, подпись без транзакции)Любая, в подписиВысокий — не требует газа, жертва не замечает расхода ETH

Ограниченный аппрув vs infinite allowance: что выбрать

КритерийТочная сумма (limited)Infinite allowance
УдобствоТребует approve перед каждой операциейОдин раз — и больше не нужно
Расходы на газВыше (approve при каждом свапе)Ниже (approve только первый раз)
Риск при взломе протоколаОграничен суммой операцииВесь баланс токена на кошельке
Риск при фишингеОграничен суммой в момент подписиВсе токены этого типа навсегда
РекомендацияДля незнакомых протоколов и крупных суммТолько для проверенных протоколов с аудитом

Как проверить и очистить разрешения токенов в кошельке

  1. Откройте Revoke.cash или Etherscan Token Approvals

    Перейдите на revoke.cash или в раздел «Token Approvals» на странице вашего адреса в Etherscan. Подключите кошелёк или просто введите адрес — разрешения видны без подключения, но для отзыва подключение обязательно.

  2. Изучите список активных разрешений

    Обратите внимание на: адрес контракта-получателя, сумму разрешения, дату последнего использования. Infinite allowance от протоколов, которыми вы давно не пользуетесь, — первые кандидаты на отзыв.

  3. Проверьте адреса контрактов через официальные источники

    Для каждого незнакомого контракта скопируйте адрес и проверьте его в документации протокола или на Etherscan (раздел «Contract» — там видно, верифицирован ли код). Неверифицированный контракт с infinite allowance — отзывайте немедленно.

  4. Отзовите подозрительные и устаревшие разрешения

    Нажмите «Revoke» напротив каждого нежелательного разрешения. Каждый отзыв — отдельная транзакция, потребует ETH на газ. Делайте в период низкой загрузки сети, чтобы сэкономить.

  5. Настройте привычку проверять аппрувы регулярно

    Повторяйте проверку раз в 1–2 месяца или после каждого взаимодействия с новым протоколом. Для нескольких сетей (Ethereum, Arbitrum, Base, BNB Chain) проверяйте отдельно — разрешения не кросс-чейновые.

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

Распространяется ли approve phishing на ETH и Bitcoin, или только на ERC-20 токены?

Классический approve-механизм — только ERC-20 и совместимые стандарты (BEP-20, токены на Arbitrum, Polygon и других EVM-сетях). Нативный ETH не имеет механизма approve — его нельзя «разрешить» контракту без явной транзакции. Bitcoin технически не поддерживает смарт-контракты такого типа. Но есть аналог — Permit (EIP-2612): подпись без транзакции, ещё опаснее, потому что не видна в истории кошелька до момента кражи.

Помогает ли аппаратный кошелёк (Ledger, Trezor) защититься от approve phishing?

Частично. Аппаратный кошелёк требует физического подтверждения каждой транзакции, включая approve — вы видите адрес контракта на экране устройства. Это даёт дополнительную секунду для проверки. Но если вы не читаете данные на экране и нажимаете «Confirm» автоматически — аппаратный кошелёк не защищает: подпись всё равно уйдёт вредоносному контракту.

Можно ли вернуть токены после approve phishing атаки?

В подавляющем большинстве случаев — нет. Транзакции в блокчейне необратимы. Некоторые централизованные биржи могут заморозить средства, если атакующий попытается вывести их через KYC-платформу, но это редкость. Зафиксируйте все хэши транзакций — они понадобятся при обращении в правоохранительные органы или к on-chain аналитикам.

Что такое Permit-атака и чем она хуже обычного approve?

Permit (EIP-2612) позволяет выдать разрешение через подпись сообщения, без транзакции в блокчейне. Жертва подписывает «безвредное» сообщение — не видит расхода газа, не видит транзакции в истории. Атакующий сам публикует эту подпись как транзакцию позже. В истории кошелька этот approve не отображается до момента кражи, поэтому Revoke.cash его не покажет заранее.

Нужно ли отзывать разрешения от проверенных протоколов типа Uniswap или Aave?

Не обязательно, но разумно — особенно для inactive разрешений. Даже у аудированных протоколов бывают уязвимости: взломы Curve (2023) и других крупных протоколов показали, что infinite allowance к проверенному контракту не гарантирует безопасность навсегда. Минимальная гигиена: оставляйте только разрешения для протоколов, которыми активно пользуетесь.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Источники