Approve (токен-апрув)
Approve — разрешение, которое пользователь выдаёт смарт-контракту на управление своими токенами ERC-20. Без этого разрешения протоколы DeFi не могут трогать ваши активы. Проблема в том, что большинство dApp запрашивают неограниченный approve — и этим активно пользуются мошенники.
Что такое approve в криптовалюте
Стандарт ERC-20, по которому работает большинство токенов в сети Ethereum (а также BSC, Polygon и других EVM-совместимых сетях), содержит специальную функцию approve(). Она позволяет владельцу токенов дать разрешение — апрув — другому адресу (как правило, смарт-контракту) расходовать определённое количество токенов от его имени.
Представьте, что вы приходите в банк и подписываете доверенность: «Разрешаю Ивану Ивановичу распоряжаться средствами на моём счёте в размере до 100 000 рублей». Примерно так работает approve в блокчейне, только вместо Ивана Ивановича — адрес смарт-контракта, а вместо рублей — ваши USDT, UNI, WBTC или любые другие ERC-20 токены.
Approve необходим для любого взаимодействия с DeFi-протоколами. Когда вы меняете токены на Uniswap, добавляете ликвидность в пул или стейкаете активы — всё начинается с approve. Без этого разрешения контракт биржи физически не может получить ваши токены и провести операцию.
Как работает функция approve технически
С технической точки зрения вызов approve(spender, amount) записывает в блокчейн два параметра: адрес получателя разрешения (spender) и максимальную сумму, которой он может распоряжаться (amount). Эта запись хранится в состоянии самого токен-контракта в маппинге allowance.
Когда разрешённый контракт хочет перевести токены, он вызывает функцию transferFrom(owner, recipient, amount). Токен-контракт проверяет: есть ли разрешение? Не превышает ли запрашиваемая сумма лимит? Если всё в порядке — перевод выполняется, лимит уменьшается на списанную сумму.
Важно понимать: approve — это не подтверждение конкретной транзакции. Это постоянно действующая доверенность, которая сохраняется в блокчейне до тех пор, пока вы её явно не отзовёте или не обнулите. Даже если вы вывели все токены с кошелька, approve на этот токен-контракт останется активным — и когда токены вернутся, контракт снова сможет ими воспользоваться.
Unlimited approve: почему это главная опасность DeFi
Здесь начинается главная проблема. По умолчанию большинство DeFi-интерфейсов предлагают выдать так называемый unlimited approve — разрешение на максимально возможную сумму. В коде это выглядит как число 2^256 - 1, то есть примерно 1.16 × 10^77 токенов — бесконечность с практической точки зрения.
Зачем это делают легитимные протоколы? Исключительно ради удобства пользователя. Если выдать разрешение ровно на сумму одной транзакции, при следующем использовании того же протокола придётся снова подписывать approve и платить газ. Unlimited approve позволяет не повторять это каждый раз.
Опасность: Unlimited approve означает, что контракт может в любой момент, без вашего участия, списать весь ваш баланс этого токена. Если контракт будет взломан, окажется вредоносным или попадёт под контроль злоумышленников — они получат полный доступ к вашим средствам.
По данным исследований, более 70% пользователей DeFi никогда не проверяли список своих активных approve. У среднего активного DeFi-пользователя накапливается от 20 до 80 активных разрешений, многие из которых они уже не помнят.
Как мошенники используют approve: drainer-атаки
Механизм approve стал основой целой индустрии криптомошенничества. Злоумышленники создают поддельные dApp — клоны известных сервисов или фиктивные протоколы с обещанием высокой доходности — и единственная цель этих сайтов: заставить пользователя подписать вредоносный approve.
Схема работает так. Вы получаете ссылку в Telegram, Discord или Twitter на «эксклюзивный» дроп, «новый» AMM с 500% APY или «срочный» airdrop популярного проекта. Переходите на сайт, он выглядит профессионально. Нажимаете кнопку «Claim» или «Connect & Stake». MetaMask показывает запрос на подпись транзакции. Вы видите что-то вроде «Approve USDT». Соглашаетесь — и в этот момент вредоносный контракт получает unlimited approve на все ваши USDT.
Дальше может произойти одно из двух. Либо средства утекают немедленно (автоматический дрейнер), либо злоумышленники ждут удобного момента — например, когда на кошелёк придёт крупная сумма. Поскольку approve действует бессрочно, торопиться им некуда.
Фишинговые сайты с approve
Особенно распространены фишинговые сайты, имитирующие Uniswap, OpenSea, Blur и другие топ-протоколы. Пользователь видит знакомый интерфейс, не замечает отличий в домене (например, uniswwap.org вместо uniswap.org) и спокойно подписывает approve. Именно поэтому всегда нужно проверять адрес сайта в адресной строке браузера, а не доверять визуальному оформлению.
NFT-минты как вектор атаки
Злоумышленники часто маскируют вредоносный approve под NFT-минт. Вам предлагают «забрать бесплатную NFT» — технически это выглядит как approve на ERC-20 токены с огромным лимитом. Или наоборот: в транзакции минта скрыт второй вызов, разрешающий контракту тратить ваши USDT.
Как проверить выданные разрешения
Проверить, каким контрактам вы уже выдали approve, можно с помощью нескольких бесплатных инструментов.
- revoke.cash — наиболее удобный сервис. Поддерживает Ethereum, BSC, Polygon, Arbitrum, Optimism и десятки других EVM-сетей. Показывает все активные approve с суммами и датами. Позволяет отозвать разрешения прямо в интерфейсе, подписав транзакцию.
- etherscan.io/tokenapprovals — стандартный инструмент Etherscan для сети Ethereum. Менее удобен, но авторитетен как источник данных.
- approved.zone — альтернативный мультичейн инструмент с удобной фильтрацией по сетям.
- DeBank — агрегатор DeFi-портфолио, который также показывает активные approve во вкладке «Approval».
Совет: Проверяйте активные approve минимум раз в месяц, если активно пользуетесь DeFi. После каждой крупной операции (обмен, стейкинг) немедленно отзывайте approve, если он больше не нужен.
Пошаговая инструкция: как отозвать approve
- Перейдите на revoke.cash и подключите кошелёк (MetaMask, WalletConnect и другие).
- Выберите сеть, в которой хотите проверить разрешения (Ethereum, BSC, Polygon и т.д.).
- Изучите список: обратите внимание на колонку «Allowance». Записи с «Unlimited» — первые кандидаты на отзыв.
- Для каждого подозрительного или неактуального approve нажмите кнопку «Revoke».
- Подтвердите транзакцию в MetaMask. Потребуется небольшая комиссия за газ.
- Дождитесь подтверждения транзакции — approve отозван.
Отзыв approve — это обычная on-chain транзакция, которая записывает в блокчейн новое значение allowance = 0 для данного контракта. После этого контракт потеряет доступ к вашим токенам.
Approve в популярных кошельках: MetaMask и Trust Wallet
MetaMask
MetaMask показывает запрос approve как отдельное окно с информацией о контракте и запрашиваемом лимите. Начиная с версии 11, MetaMask добавил кнопку «Edit permission» прямо в окне подтверждения — она позволяет вручную ограничить сумму approve вместо unlimited. Это одна из лучших функций безопасности: всегда редактируйте лимит, указывая ровно нужную вам сумму.
Проблема в том, что большинство пользователей просто нажимают «Confirm», не читая детали. Именно на это и рассчитывают злоумышленники.
Trust Wallet
Trust Wallet также отображает запросы approve, но интерфейс менее информативен. Мобильный формат делает проверку деталей транзакции сложнее — экран меньше, информации видно меньше. Это делает мобильные кошельки более уязвимыми к социальной инженерии.
Как безопасно работать с DeFi
Полностью избежать approve в DeFi невозможно — это часть технологии. Но существуют практики, которые значительно снижают риск.
- Ограниченный approve — всегда редактируйте сумму в MetaMask, устанавливая ровно тот объём, который нужен для текущей операции. Да, при следующей транзакции придётся подписать новый approve, но это в сотни раз безопаснее.
- Симуляция транзакций — установите расширение Pocket Universe или Fire. Они перехватывают транзакции перед подписанием и показывают, что реально произойдёт с вашими активами.
- Проверка контракта — перед выдачей approve убедитесь, что адрес контракта совпадает с официальным. Ищите адрес на официальном сайте проекта или в репозитории GitHub, а не в чьём-то посте.
- Регулярный аудит — раз в месяц заходите на revoke.cash и отзывайте все неиспользуемые approve.
- Отдельный кошелёк для DeFi — держите основные активы на кошельке, который вы никогда не подключаете к dApp. Для DeFi-операций используйте отдельный адрес с ограниченными средствами.
Реальные случаи потерь через approve
Масштаб потерь через вредоносные approve огромен. По данным Chainalysis, в 2023 году только через Inferno Drainer (один из крупнейших drainer-as-a-service сервисов) было украдено более $80 млн у свыше 30 000 жертв. Pink Drainer к моменту закрытия в 2024 году собрал более $75 млн.
Среди наиболее громких случаев — взлом нескольких NFT-коллекций через фишинговые минт-сайты. В одном из эпизодов пользователи коллекции Azuki потеряли токены на $750 000 за несколько часов после того, как злоумышленники создали поддельный минт-сайт и распространили ссылку через взломанный Discord сервер проекта.
Другой распространённый сценарий: взломанные Twitter-аккаунты знаменитостей публикуют ссылки на «эксклюзивный» дроп. Тысячи подписчиков переходят по ссылке и подписывают approve, считая, что это официальный проект любимого артиста или блогера.
Что делать если уже подписали вредоносный approve
Если вы поняли, что подписали подозрительный approve, действуйте немедленно — время критично.
- Не паникуйте, но действуйте быстро. Перейдите на revoke.cash прямо сейчас.
- Отзовите approve — даже если средства уже начали утекать, отзыв остановит дальнейшее списание.
- Переведите оставшиеся средства на новый, чистый кошелёк, который никогда не взаимодействовал с подозрительными контрактами.
- Зафиксируйте доказательства — сохраните hash транзакции approve, адрес вредоносного контракта, скриншоты сайта.
- Обратитесь за помощью — если украдена значительная сумма, криминалистический анализ блокчейна может установить движение средств и помочь в возврате через правовые механизмы.
Важно: Если средства уже были выведены через drainer, отзыв approve не вернёт их автоматически. Но фиксация on-chain данных критически важна для последующего расследования.