Вы отключили сайт от MetaMask и решили, что он больше не может трогать токены. Это не всегда так. Подключение к сайту и разрешение смарт-контракту расходовать активы — разные вещи. Старый approval может оставаться в блокчейне годами.
Если контракт взломают или вы когда-то подтвердили доступ фишинговому приложению, неограниченное разрешение способно привести к списанию токенов без нового подтверждения в интерфейсе сайта. Поэтому approvals полезно проверять после аирдропов, DEX, мостов, стейкинга и подозрительных подписей.
Если seed-фраза или приватный ключ уже раскрыты, отзыв разрешений не спасает кошелёк: злоумышленник может подписывать операции от вашего имени. Создайте новый кошелёк на чистом устройстве и переведите активы после проверки безопасности.
Три действия, которые часто путают
| Действие | Что оно делает | Чего не делает |
|---|---|---|
| Отключить сайт | Закрывает сайту просмотр адреса через текущую сессию | Не отменяет approval в блокчейне |
| Отозвать approval | Уменьшает или обнуляет лимит конкретного контракта | Не возвращает уже украденные токены |
| Отменить транзакцию | Пытается заменить неподтверждённую операцию | Не отменяет уже включённую в блок транзакцию |
| Перевести активы | Убирает средства со скомпрометированного адреса | Не делает старую seed-фразу безопасной |
Что такое разрешение смарт-контракту
Токены стандартов ERC‑20 и совместимых сетей хранят баланс и таблицу разрешений. Владелец адреса может позволить другому адресу — обычно смарт-контракту — расходовать определённое количество токенов через функцию approve.
Это нужно для обмена на DEX, внесения ликвидности, моста и других приложений. Без approval контракт не смог бы забрать из кошелька токены, необходимые для выбранной операции.
Проблема возникает с unlimited approval — практически неограниченным лимитом. Он экономит повторные транзакции, но увеличивает потенциальный ущерб. Ethereum отдельно рекомендует периодически проверять и отзывать ненужный доступ. Пошаговый принцип описан в официальном руководстве Ethereum.
Когда нужно проверить approvals
- после подключения к неизвестному или закрывшемуся DeFi-сервису;
- после минта NFT, аирдропа или токенсейла;
- после сообщения о взломе протокола;
- если кошелёк неожиданно показывает исходящее списание;
- перед длительным хранением крупной суммы;
- после тестирования нескольких DEX и мостов;
- если вы подписали непонятную транзакцию.
Перед работой с новым активом полезно пройти полный чек-лист проверки токена. Поддельный контракт может быть опасен даже при небольшой тестовой покупке.
Что понадобится для отзыва разрешения
- кошелёк с адресом, который выдавал approval;
- правильно выбранная сеть;
- немного нативной монеты для комиссии: ETH, BNB, POL и так далее;
- адрес токена и контракта-получателя разрешения;
- обозреватель сети или проверенный сервис управления approvals.
Отзыв — это новая транзакция в блокчейне. Даже если баланс токена равен нулю, для записи нового лимита требуется комиссия.
Способ 1. Проверка через обозреватель блокчейна
Крупные EVM-обозреватели имеют раздел Token Approvals. Общий порядок одинаков:
- Откройте обозреватель именно нужной сети.
- Найдите раздел проверки разрешений.
- Вставьте публичный адрес кошелька.
- Просмотрите ERC‑20, NFT и другие типы approvals отдельно.
- Сверьте адрес spender — контракта, получившего доступ.
- Подключите кошелёк только для выбранной операции.
- Подтвердите отзыв и дождитесь включения в блок.
Публичный адрес можно проверять без подключения кошелька. Сначала изучите список в режиме чтения и только затем подписывайте транзакцию.
Способ 2. Проверка через сервис управления разрешениями
Специализированный сервис собирает approvals из нескольких сетей и показывает токен, лимит, spender и предполагаемую стоимость активов под риском. Это удобнее, если кошелёк использовался в десятках приложений.
Но такой сайт тоже нужно проверить:
- введите адрес вручную, не переходите из рекламного объявления;
- не сообщайте seed-фразу;
- сначала используйте режим просмотра по публичному адресу;
- читайте данные транзакции в кошельке;
- не подписывайте Permit или SetApprovalForAll вместо revoke.
Как понять, какое разрешение опасно
| Признак | Уровень внимания | Почему |
|---|---|---|
| Unlimited approval неизвестному контракту | Высокий | Потенциально доступен весь баланс токена |
| Контракт взломанного протокола | Высокий | Уязвимость уже подтверждена |
| SetApprovalForAll для NFT | Высокий | Оператор может управлять всей коллекцией |
| Лимит равен сумме одной завершённой операции | Средний | Остаточный риск ограничен лимитом |
| Официальный контракт активного протокола | Зависит от использования | Доступ может быть нужен, но риск контракта сохраняется |
Название приложения не является доказательством. Сравнивайте полный адрес spender с официальной документацией и историей своих операций.
Unlimited approval: отзывать или оставить
Неограниченный лимит удобен для частого использования DEX: не приходится каждый раз платить за approve. Но удобство означает, что контракт сохраняет доступ к будущим пополнениям этого токена.
Для основного кошелька с долгосрочными накоплениями разумнее выдавать ограниченный лимит или использовать отдельный операционный адрес. Для небольшого DeFi-кошелька допустимый риск может быть другим.
Практичная схема:
- холодный кошелёк — хранение без регулярных approvals;
- рабочий кошелёк — ограниченная сумма для проверенных приложений;
- тестовый кошелёк — новые сайты, минта и аирдропы.
Различия между вариантами хранения разобраны в статье о криптовалютных кошельках.
Отзыв разрешения в Ethereum, BNB Chain и Polygon
Логика одинакова, но approval существует отдельно в каждой сети. Разрешение в Ethereum не отменяет доступ к версии токена в BNB Chain. Поэтому повторите проверку для всех сетей, которыми пользовался адрес.
Комиссия оплачивается нативной монетой выбранной сети. Если на адресе нет газа, переведите минимально необходимую сумму с доверенного источника. Не используйте случайные «краны» для основного кошелька.
Что делать после подозрительной подписи
- Отключите подозрительный сайт в настройках кошелька.
- Проверьте токеновые и NFT-разрешения во всех использованных сетях.
- Отзовите неизвестные и неограниченные approvals.
- Проверьте историю исходящих транзакций.
- Если раскрыта seed-фраза — создайте новый кошелёк на чистом устройстве.
- Переведите активы, начиная с наиболее ликвидных и ценных.
Отзыв approvals помогает при опасном контракте, но не лечит заражённый компьютер и не меняет скомпрометированный приватный ключ.
Как проверить результат
После подтверждения откройте транзакцию в обозревателе. Успешный статус означает, что изменение записано, но интерфейсу сервиса может понадобиться обновление.
Повторно найдите адрес и убедитесь, что лимит стал нулевым либо разрешение исчезло. Затем обновите страницу кошелька и проверьте другие типы доступа — отдельно ERC‑20 и NFT.
Как снизить риск в будущем
- выдавайте лимит на сумму операции, а не unlimited;
- не используйте основной кошелёк для аирдропов;
- проверяйте домен и адрес контракта;
- не подписывайте непонятные Permit-сообщения;
- раз в месяц просматривайте approvals активного кошелька;
- удаляйте ненужные подключения сайтов;
- храните seed-фразу офлайн.
Почему seed-фраза важнее приложения и как сделать резервную копию, объясняется в отдельном материале о безопасном хранении seed-фразы.
Частые вопросы
Нет. Он запрещает контракту будущие списания в пределах этого разрешения. Уже подтверждённые операции блокчейн автоматически не отменяет.
Да. Отзыв изменяет состояние смарт-контракта, поэтому является обычной блокчейн-транзакцией и требует нативную монету сети.
Нет. Отключение закрывает текущую сессию сайта, но ранее выданное токеновое разрешение может оставаться в блокчейне.
Обычно каждое разрешение изменяется отдельно. Некоторые сервисы предлагают пакетные операции, но они сложнее и требуют особенно внимательной проверки подписываемых данных.
Итог
Проверка approvals — такая же базовая гигиена, как обновление паролей. Начните с публичного просмотра адреса, отзовите неизвестные и неограниченные разрешения, затем разделите хранение и эксперименты между разными кошельками. Если раскрыта seed-фраза, не тратьте время только на revoke — переносите активы на новый безопасный адрес.







