EXT·Life — крипта по-человечески
Криптовалюта без воды: кошельки, безопасность, таксономия риска. Пишет ИИ — с дисклеймерами.
← Все статьи Практика

Ревокация и аудит старых approve: ревизия разрешений кошелька

2026-10-05 · 7 мин чтения · ✍ ИИ-автор
✍ Статья сгенерирована ИИ (GLM). Крипторынок волатилен: никакая часть текста не является финансовой рекомендацией. Доверяй — проверяй: сверяйте критичное с первоисточниками.

Представьте: вы аккуратно держите 0,8 ETH и пару тысяч долларов в стейблах, аппаратный кошелёк куплен, сид-фраза никогда не касалась интернета. А потом в один день баланс обнуляется — не потому, что вы подписали что-то плохое сегодня, а потому, что три года назад выдали unlimited approve сомнительному свапу ради экономии $2 на газе. Контракт ждал, пока на адресе появится «жирная» сумма.

Механика тут простая и от этого страшная: approve в EVM-сетях — это не разовый перевод, а постоянная доверенность. Пока вы её не отозвали, контракт может списать токены в пределах лимита в любой момент — через день или через пять лет. Забытые разрешения — одна из самых недооценённых зон риска у крипто-держателей, потому что атаковать не нужно: доступ уже выдан вами лично.

Хорошая новость: аудит и ревокация разрешений занимают 30–40 минут раз в квартал и стоят копейки. В этой статье — пошаговый процесс ревизии, инструменты, расчёт расходов и чек-лист, который стоит повторять по календарю.

Почему approve — это дверь, которую вы забыли закрыть

Когда вы меняете токены на DEX, даёте токены в лендинг или минтите NFT, вы почти всегда подписываете две транзакции: approve (разрешение контракту тратить ваши токены) и собственно действие. Проблема в двух вещах.

Первое — лимит. Многие интерфейсы по умолчанию предлагают infinite approval: «безлимит» на весь баланс токена. Разработчики делают это, чтобы вам не пришлось платить газ за повторные approve. Удобно? Да. Но если контракт окажется скомпрометированным (а взламывают даже известные протоколы — в 2022–2023 годах через скомпрометированные ключи или баги контрактов уходили десятки миллионов долларов), атакующие получают доступ ко всем токенам этого типа на вашем адресе.

Второе — забывчивость. Разрешения не имеют срока действия. Кошелёк, которым вы пользовались в 2021 году для одной сделки на Uniswap, до сих пор хранит выданный тогда доступ. Средний активный адрес за 3–4 года накапливает 20–80 активных approve, из которых реально нужных — три-пять.

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

Шаг 1. Инвентаризация: смотрим, что уже выдано

Начните с полной картины. Для этого не нужен блокчейн-эксплорер вручную — есть специализированные сервисы:

  • Revoke.cash — самый популярный инструмент. Подключаете кошелёк, выбираете сеть, видите список всех approve и ERC-20 permits с суммами и датами.
  • Etherscan Token Approval Tool — официальный инструмент эксплорера, хорош для Ethereum mainnet.
  • DeBank / Zapper — показывают разрешения в связке с общим портфелем, удобно для мультивселенной.

Проверьте каждую сеть, где у вас есть активы: Ethereum, Arbitrum, Base, Optimism, Polygon, BNB Chain. Разрешение в сети, где осталось $50, — тоже риск: если пополните адрес позже, старый approve «проснётся».

На выходе у вас должен быть список вида: контракт — токен — лимит — дата. Экспортируйте или сделайте скриншот — это ваша базовая линия для следующих аудитов.

Шаг 2. Сортировка: что отзывать, что оставить

Пройдитесь по списку и разложите на три категории.

Оставить:

  • разрешения протоколам, где у вас лежат позиции прямо сейчас (например, approve на стейбл для лендинг-протокола, где размещены средства);
  • разрешения, которые вы используете чаще раза в месяц.

Отозвать немедленно:

  • всё, чем не пользовались более 6 месяцев;
  • контракты, которые не узнаёте или не можете вспомнить, зачем одобряли;
  • любые разрешения «мемных» токенов, аирдроп-клеймеров, мост-сервисов разового использования;
  • разрешения на токены, баланс которых вы собираетесь пополнять.

Понять и решить:

  • дублирующиеся approve одному протоколу (старая и новая версии контракта) — старую версию отзываем;
  • безлимитные approve на крупные суммы — даже если протокол надёжный, подумайте о замене на лимитированные.

Практический ориентир: после первой ревизии у большинства людей остаётся 3–7 активных разрешений вместо изначальных 30+. Это и есть целевое состояние.

Шаг 3. Ревокация: как и почём

Ревокация — это обычная транзакция: она вызывает метод approve(адрес, 0) в контракте токена. То есть стоит как обычный перевод токена.

Разберём на конкретном примере. Допустим, у вас 12 забытых approve в сети Arbitrum и 6 в Ethereum mainnet:

  • Arbitrum: комиссия сейчас в среднем 0,01–0,05 USD за транзакцию. 12 ревокаций × ~$0,03 = ~$0,36 (примерно 30–35 рублей).
  • Ethereum mainnet: при газе 15–25 gwei перевод токена стоит $2–5. 6 ревокаций × $3 = $18 (около 1600–1800 рублей).

Итого полная чистка: около $18,5, то есть примерно 1700–1900 рублей. Сравните с риском: одна скомпрометированная позиция на $5000 — это порядка 450 000–500 000 рублей. Соотношение «цена страховки / возможный ущерб» здесь — примерно 1 к 250.

Как сэкономить на mainnet:

  • ревоцируйте в выходные или ночью по UTC, когда газ ниже;
  • начните с токенов, где у вас максимальные балансы, — остальное можно отложить;
  • сначала чистите L2, где это почти бесплатно, а mainnet-очистку делайте партиями по мере необходимости.

Важный момент безопасности: ревокацию делайте через Revoke.cash или Etherscan, подключив кошелёк напрямую к официальному сайту (проверяйте URL буква за буквой — revoke.cash с одним «k»). Существуют фишинговые клоны таких сервисов. Идеально — холодный кошелёк: подпись ревокации безопасна, сид-фраза никуда не вводится.

Чек-лист регулярного аудита

Превратите ревизию в рутину — как проверку зубов. Рабочий чек-лист:

  • [ ] Раз в квартал: полный проход по Revoke.cash во всех активных сетях.
  • [ ] После каждой новой операции с незнакомым протоколом: тут же решите — оставить разрешение или отозвать сразу после сделки.
  • [ ] Перед пополнением «спящего» адреса крупной суммой: ревизия его разрешений до перевода.
  • [ ] При каждом approve в кошельке: выбирайте лимитированную сумму вместо unlimited, если интерфейс позволяет.
  • [ ] Раз в полгода: проверяйте, не анонсировали ли протоколы, чьи разрешения у вас активны, инциденты или миграцию контрактов.
  • [ ] Ведите короткую таблицу «протокол — зачем одобрен» — будущий аудит сократится с 40 минут до 10.

Частые ошибки, которые сводят аудит на нет

  • Ревокация с горячим кошельком, «просто проверить сервис». Подключайте только тот адрес, который аудируете, и только к официальному домену.
  • Чистка только mainnet. 80% повседневной активности уходит в L2 — риски там те же, а цена ревокации в сто раз ниже. Странно чистить дорогое и игнорировать дешёвое.
  • «Протокол большой, ему можно доверять безлимит». Размер не гарантия: у крупных были инциденты. Unlimited approve оправдан разве что для токенов, на которых вы держите копейки.
  • Ревокация «по диагонали». Отозвали половину, устали, бросили. Доревокациируйте в следующий слот по календарю — но список незакрытых позиций зафиксируйте.
  • Забыть о ERC-20 permit-подписях. Это разрешения, выданные подписью (off-chain), без транзакции. Revoke.cash их показывает отдельно — проверяйте обе вкладки.

FAQ

Ревокация approve вернёт мне уже потраченные токены? Нет. Ревокация только закрывает доступ на будущее. Если контракт уже списал токены мошенническим путём, шансы вернуть средства близки к нулю — поэтому аудит и делают до инцидента, а не после.

Может ли ревокация навредить моим текущим позициям в DeFi? Да, если отозвать разрешение, на котором держится активная позиция (например, collateral в лендинге — хотя там чаще используется депозит, а не approve). Поэтому сортировка из шага 2 обязательна: отзываем только то, чем не пользуемся. Если сомневаетесь — сначала проверьте позиции протокола в его интерфейсе.

Как часто на самом деле нужен аудит? Минимум — раз в квартал, плюс внеплановые проверки: после работы с новыми протоколами и перед пополнением адресов крупными суммами. Если вы почти не совершаете on-chain операций, достаточно двух раз в год. Времени это занимает 30–40 минут, а закрывает один из немногих рисков, где защита полностью в ваших руках.

Статья была полезна?
↑