Approvals: как «спящие» разрешения сливают кошельки — и как их отозвать

Коротко (TL;DR)

Когда вы пользуетесь DeFi-приложением, NFT-маркетплейсом или DEX, вы выдаёте смарт-контракту approval — разрешение распоряжаться вашими токенами. Эти разрешения не исчезают сами: они остаются активными, пока вы их не отзовёте. Если проект позже взломают или вы по ошибке подпишете approval на фишинг-сайте, контракт может вывести токены — иногда спустя годы.

Главное действие: периодически проверяйте и отзывайте ненужные approvals через Revoke.cash или Token Approval Checker на Etherscan, держите крупные суммы на отдельном кошельке, который никогда не подключаете к dApp, а после крупных взломов отзывайте доступы превентивно. Ниже — как это работает, как отозвать пошагово и чего отзыв НЕ лечит.

(Данные и кейсы актуальны на 15 июня 2026.)

до 555% Bybit · Savingsдо 555%годовых на Savings + до 5 100 USDT новичкам · 3 шагаНачни сейчас

Что такое token approval простыми словами

Token approval — это ончейн-разрешение, которое вы выдаёте смарт-контракту, чтобы он мог тратить ваши токены без отдельной подписи на каждую операцию. Без него dApp не сможет, например, обменять ваш USDT на DEX или выставить NFT на продажу.

Аналогия: approval — это как разрешить приложению автосписание с карты. Один раз согласились — дальше оно списывает само, в пределах выданного лимита, пока вы не отмените доступ.

У ERC-20 токенов разрешение бывает ограниченным (на конкретную сумму) или безлимитным (unlimited). Безлимитный approval удобен — не нужно переподтверждать каждый раз, поэтому его используют и крупные площадки. Но он же опасен: контракт с unlimited-доступом может вывести весь ваш баланс этого токена. Важно понимать границу: разрешение действует только на тот токен или коллекцию, к которым выдано, — approval на WETH не даёт доступа к вашему USDT или USDC. Сам ETH под approval не попадает (это не ERC-20): чтобы отдать его контракту, ETH сначала «оборачивают» в WETH. Перед подтверждением любого approval кошелёк показывает, какому адресу и на какую сумму вы выдаёте доступ, — на это стоит смотреть всегда: именно здесь видно, что незнакомый контракт просит безлимит.

Риски approvals: чем грозят забытые разрешения

Проблема не в самой механике, а в том, что разрешения живут бессрочно. Три причины, почему забытый approval — это риск:

  • Лежит годами. Вы попользовались протоколом один раз и забыли, а approval остался. Если проект потом взломают, атакующий выведет токены через ваш старый доступ — даже спустя годы после последнего захода.
  • Безлимит — это весь баланс. Если разрешение безлимитное, у злоумышленника нет «потолка»: он заберёт всё, что есть в кошельке по этому токену.
  • Доступ может сменить хозяина. Если владелец одобренного контракта передаст его другому лицу (или фронтенд проекта взломают), ваше разрешение окажется в руках того, кому вы ничего не разрешали.

Самый частый способ кражи — фишинг: пользователь заходит на поддельный сайт и подписывает approval (или gasless-подпись), думая, что это легитимное действие. Дальше токены уходят. Масштаб виден по цифрам: по отчёту ScamSniffer, за 2023 год фишинг увёл около $300 млн у примерно 320 000 пользователей; а по данным Hacken, только за I квартал 2026 года Web3 потерял $482 млн в 44 инцидентах.

Отдельно стоит выделить риск подписей: с распространением Permit2 и маркетплейс-подписей злоумышленнику всё чаще не нужна даже ваша ончейн-транзакция — достаточно, чтобы вы поставили одну «бесплатную» (gasless) подпись на поддельном сайте, и все заранее одобренные активы уйдут одной операцией. Поэтому опасны не только висящие approvals, но и невнимательность при подписи: оба пути ведут к одному результату — потере токенов без возможности их вернуть. Хорошая новость в том, что почти все эти сценарии предотвращаются двумя привычками: регулярной чисткой разрешений и проверкой того, что именно вы подписываете.

Четыре типа кражи — и что делать в каждом

Чтобы понять, что произошло и что вообще поможет, сначала определите, что именно украли. Revoke.cash выделяет несколько типичных сценариев:

до 555% Bybit · Savingsдо 555%годовых на Savings + до 5 100 USDT новичкам · 3 шагаНачни сейчас
ТипПризнакЧто поможет
Компрометация seed-фразыУходят разные активы на нескольких сетях/кошельках; нативный токен (ETH/BNB) исчезает сразу после поступленияНичего не вернуть — кошелёк бросают, остаток переносят на новый (лучше аппаратный)
Marketplace-подпись (OpenSea/Blur/Permit2)Списаны сразу все заранее одобренные активы одной операциейОтменить подпись на странице Signatures в Revoke.cash (окно крошечное); на будущее — регулярно чистить approvals
Token approvalУкраден один или несколько конкретных одобренных активовНемедленно отозвать approval — иначе атакующий продолжит выводить
Прямой переводСписан один актив; в истории — функция вроде «Security Update» или «Claim»Это «один раз»; отзыв не нужен, но смените привычки безопасности

Ключевой нюанс, который многие путают: marketplace-подпись и approval — это разные вещи. Отзыв approval не отменяет уже подписанную офчейн-подпись (Permit2 или маркетплейса) — для подписей у Revoke.cash отдельная страница, и времени на отмену очень мало.

Урок «спящих» контрактов: почему Aztec потерял $2,19 млн

Свежий пример того, как старый доступ превращается в дыру, — эксплойт Aztec Connect. Этот приватный сервис закрыли ещё в марте 2023-го, но 14 июня 2026 года из его иммутабельного контракта вывели около $2,19 млн (детали — в нашей новости про эксплойт Aztec Connect).

Почему это важно для темы approvals: иммутабельный контракт нельзя ни обновить, ни поставить на паузу — даже его авторам. Иммутабельность обычно плюс (никто не подменит код), но у закрытого, неподдерживаемого протокола она оборачивается ловушкой: когда находят изъян, залатать его невозможно, а средства и разрешения, оставшиеся в контракте, защитить уже нельзя. По имеющимся данным, уязвимый контракт Aztec обновляли ещё в апреле 2024 года — и это обновление, судя по всему, прошло без внешнего аудита, открыв дыру, которую затем некому было закрыть.

Вывод для вас: деньги и активные approvals в протоколах, которыми вы давно не пользуетесь, — это открытая дверь, которую уже никто не охраняет. Выводите остатки из закрытых dApp и отзывайте их разрешения, не дожидаясь «спящего» эксплойта. Случай не первый: ранее старые контракты NFT Trader увели NFT на сумму свыше $3 млн, после чего пользователей просили срочно отозвать approvals двух адресов.

Как отозвать approvals — пошагово

Отозвать доступ можно за пару минут. Два основных инструмента — Revoke.cash и блок-эксплорер (Etherscan и аналоги).

Обязательно отзывайте approval в четырёх случаях:

  • вы перестали пользоваться приложением или сервисом;
  • у протокола нашли уязвимость или его взломали;
  • вы случайно подключились не к тому контракту;
  • вас уже скамнули — отзыв не вернёт украденное, но остановит дальнейший вывод по этому разрешению.

Через Revoke.cash (поддерживает 100+ сетей):

  1. Откройте Revoke.cash — лучше из закладки, чтобы не попасть на фишинг-клон, — и подключите кошелёк или просто введите свой адрес.
  2. Выберите нужную сеть (Ethereum, BNB Chain, Polygon и т.д.).
  3. В списке approvals отсортируйте «от новых к старым» — так быстрее найдёте свежие и подозрительные разрешения.
  4. Нажмите Revoke напротив ненужного approval. Можно не отзывать полностью, а уменьшить лимит (иконка карандаша) — если доступ ещё пригодится.

Через Etherscan (для тех, кто привык к эксплореру):

  1. Откройте Token Approval Checker (раздел More → Token Approvals) и введите адрес кошелька.
  2. Выберите тип токена (ERC-20, ERC-721, ERC-1155) и включите «Show all approvals».
  3. Нажмите Revoke напротив нужного контракта — для каждого отдельно. Для других сетей используйте свой эксплорер: BscScan, Polygonscan и т.п.

Отзыв — ончейн-операция, поэтому за него платится газ. Исключение — gasless и пакетные механизмы (Permit2), где отозвать несколько разрешений можно дешевле и за раз.

approve, Permit и Permit2: в чём разница

Механизм approvals развивался, и от этого зависит, как именно вас могут обмануть и как защититься.

МеханизмКак работаетГазОсобенность
approve (ERC-20)Ончейн-транзакция на каждый approvalПлатится за каждыйБезлимит живёт до ручного отзыва
Permit (ERC-2612)Офчейн-подпись, контракт исполняет её ончейнБез газа при подписиПодпись на фишинге = доступ без вашей транзакции
Permit2 (Uniswap)Безгазовые approvals для любых токеновБез газаЕсть авто-истечение и пакетный отзыв — меньше «висящих» доступов

Permit2 удобнее и безопаснее за счёт срока истечения, но именно подписи (Permit и Permit2) — любимый инструмент фишеров: одной gasless-подписью на поддельном сайте можно авторизовать вывод всех заранее одобренных активов. Поэтому подписи проверяйте так же придирчиво, как обычные транзакции.

Гигиена кошелька: как не попасть

Профилактика дешевле потерь. Чек-лист привычек:

  • Чистите approvals регулярно — раз в 1–2 месяца и обязательно после крупных взломов в индустрии: отзывайте доступы превентивно, даже если ваш протокол не пострадал напрямую.
  • Разделяйте активы. Держите три кошелька: «сейф» для долгого хранения (его никогда не подключают к dApp), рабочий — для торговли на проверенных площадках и «расходник» (burner) — для незнакомых сайтов. Так одна неудачная подпись не уведёт все сбережения.
  • Аппаратный кошелёк — не панацея. Он защищает приватный ключ, но не мешает вам подписать вредоносный контракт. О выборе устройства — в сравнении Ledger Nano X и Trezor Model T.
  • Проверяйте URL и используйте закладки. Заходите на DeFi-сайты из закладок, сверяйте адрес перед подписью, ставьте защитные расширения (Revoke, Pocket Universe) — они предупреждают о вредоносных подписях.
  • Берегите seed-фразу. Не вводите её ни на одном сайте и не храните в облаке — это фундамент всей безопасности (наш разбор: как хранить seed-фразу).

Базовые принципы хранения и защиты мы собрали в отдельном материале о безопасности крипто-кошелька.

Если вы уже подписали лишнее

Действуйте быстро и по порядку:

  1. Отзовите approval в Revoke.cash — это остановит дальнейший вывод, если кража идёт через разрешение.
  2. Определите тип кражи по таблице выше. Если украдены разные активы на нескольких сетях, а нативный токен исчезает сразу после поступления, — вероятно, скомпрометирована seed-фраза.
  3. При компрометации seed-фразы кошелёк уже не спасти: проверьте компьютер на вредоносное ПО, заведите новый кошелёк (лучше аппаратный) и перенесите остаток. Если в скомпрометированном кошельке осталось больше ~$1000, обратитесь в Flashbots Whitehat Hotline — «сборщик» атакующего может перехватывать переводы.
  4. Не верьте «возвращателям». Украденные ончейн-активы вернуть нельзя; любой, кто за деньги обещает их вернуть, — сам мошенник. Сообщить о случае на биржи и в местные органы имеет смысл ради следа, а не ради гарантий.

FAQ

Отзыв approval вернёт украденные деньги? Нет. Отзыв только останавливает дальнейший вывод через это разрешение. Уже украденные ончейн-активы вернуть невозможно.

Нужно ли платить за каждый отзыв? Обычный отзыв — это ончейн-операция с газовой комиссией за каждое разрешение. Механизмы вроде Permit2 позволяют отзывать дешевле и пакетно; на некоторых сетях газ копеечный.

Безопасно ли давать unlimited approval крупным DEX? Сам по себе безлимитный доступ — не «красный флаг»: его используют и репутационные площадки ради удобства. Риск создают разрешения незнакомым контрактам и забытые approvals закрытых проектов — именно их и нужно чистить.

Защищает ли аппаратный кошелёк от вредоносного approval? Нет. Аппаратный кошелёк бережёт приватный ключ, но если вы сами подпишете вредоносный approval или подпись, устройство это исполнит. Помогают сегрегация активов и привычка проверять, что именно подписываете.

Как часто проверять approvals? Раз в 1–2 месяца как привычка и дополнительно — после каждого крупного взлома в индустрии. Это занимает пару минут и кратно дешевле возможных потерь.

Что выбрать — Revoke.cash или Etherscan? Для большинства удобнее Revoke.cash: единый список по всем сетям и подсветка рискованных разрешений. Etherscan подойдёт, если вы уже привыкли к эксплореру. Результат одинаковый — оба отправляют ончейн-транзакцию отзыва, за которую платится газ.

до 555% Bybit · Savingsдо 555%годовых на Savings + до 5 100 USDT новичкам · 3 шагаНачни сейчас
Поделиться
Связаться:
Крипто- и data-аналитик, инженер-программист (факультет компьютерных наук ХНУРЭ). В IT с 2008 года: администрировал корпоративный мониторинг в «Vodafone Украина», семь лет разрабатывал и продвигал веб-проекты, пять лет руководил маркетингом на метриках — конверсия, CTR, ROI, LTV.Криптовалютными рынками занимаюсь с 2021 года: ончейн-метрики, токеномика, макроэкономические индикаторы. Разработал собственную data-driven модель анализа рынка на 30+ метрик. Стек — Python (pandas, NumPy, SciPy, matplotlib), математическая статистика и EDA; сбор и сверку данных автоматизирую AI-агентами.Принцип — «Don't trust, verify»: каждая цифра проверена по первоисточнику, ключевые — минимум по двум независимым; прогнозы — только сценарии с условиями. Тезис без данных не публикуется.