EXT·Life — крипта по-человечески

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

Подпись транзакций: что вы одобряете в кошельке на самом деле

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

Каждый день кто-то теряет криптовалюту не из-за взлома биржи и не из-за украденной seed-фразы. Причина банальнее: человек сам подписал транзакцию, которая отдала смарт-контракту право тратить его токены. Нажал «Confirm», увидел знакомый интерфейс, поверился — и через день, неделю или месяц обнаружил пустой кошелёк.

Механизм называется approve (одобрение). Это не bug, а фундамент DeFi: чтобы обменять токен на DEX или внести его в стейкинг, вы должны разрешить контракту списывать этот токен с вашего адреса. Проблема в том, что по умолчанию кошельки просят одобрить неограниченный лимит, а пользователь в момент подписки этого не понимает.

В этой статье разберём, как читать окно подтверждения, чем опасен unlimited approve, и как за 5 минут отозвать старые разрешения — до того, как ими воспользуется кто-то другой.

Что такое approve и почему это опасно

Стандарт ERC-20 разрешает токену хранить «карту доверия»: кто и сколько ваших токенов может переводить. Вызов approve(адрес, сумма) записывает в сам токен-контракт разрешение для указанного адреса. Ключевой момент: разрешение живёт в токен-контракте, а не в кошельке. Вы можете поменять кошелёк, устройство, пароль — одобрение продолжит действовать, пока вы его не отзовёте.

Опасность в двух сценариях:

  • Скам-контракт. Фейковый сайт или «аирдроп» просит подписать approve на ваш USDT. Через час скамер вызывает transferFrom и уводит всё.
  • Взлом легитимного протокола. Даже если вы доверяли DEX, его контракт могли взломать — и все старые одобрения станут дверью к вашим средствам.

Правило: каждая подпись approve — это доверенность на списание. Подписали на unlimited — выдали генеральную доверенность навсегда, пока сами её не отзовёте.

Как читать окно подтверждения

Метамаск показывает минимум, но и этого достаточно, чтобы не попасться.

Что смотреть в деталях транзакции

  • Request permission to access your X tokens — это approve. Дальше читаем внимательно.
  • Spend limit: unlimited — красный флаг. Конкретное число (например, 250 USDT) — приемлемо.
  • Interacting with — адрес контракта. Сверьте первые и последние 6 символов с официальным сайтом протокола. Не с результатом Google-поиска, а с доменом, который вы знаете.
  • Function called: approve, transferFrom, setApprovalForAll — всё, что связано с доступом к вашим активам.

setApprovalForAll — отдельная история: так отдают всю коллекцию NFT целиком. Если не понимаете, зачем это нужно интерфейсу, — закрывайте окно.

Практический пример с цифрами

Допустим, у вас 1 500 USDT (примерно 138 000 ₽ по курсу 92 ₽). Вы заходите на новый DEX менять 100 USDT на ETH. Кошелёк показывает: approve, spend amount: unlimited. Вы подписали.

Математика: DEX нужен доступ к 100 USDT (≈9 200 ₽). Вы дали доступ к 1 500 USDT (≈138 000 ₽). Избыточный риск — 1 400 USDT, или 128 800 ₽, которые вы не собирались тратить. Если контракт DEX взломают через 8 месяцев (средний срок жизни уязвимости до обнаружения — от полугода), скамер заберёт весь баланс одним вызовом. Потеря: 100% портфеля вместо нуля.

Решение: в MetaMask (версии 12+) на экране approve нажмите «Edit permission» и введите точную сумму — 100 USDT. Лишние 5 секунд против риска на 128 800 ₽.

Чек-лист перед подписью

  • [ ] Это approve или обычный перевод? Если approve — читаем дальше.
  • [ ] Spend limit конкретный, не unlimited (или отредактирован вручную).
  • [ ] Адрес контракта сверен с официальным доменом.
  • [ ] Сайт открыт по закладке, а не по ссылке из чата/поиска.
  • [ ] Понятно, какая функция вызывается и зачем.
  • [ ] Для NFT: нет setApprovalForAll без явной необходимости.

Хотя бы один пункт не сходится — не подписывайте. Никакой аирдроп не стоит кошелька.

Как отозвать старые одобрения

Существующие approve — это мины, оставшиеся от прошлых экспериментов с DeFi. Чистить их стоит раз в квартал.

Порядок действий:

  1. Зайдите на revoke.cash или etherscan.com/tokenapprovalchecker (для Ethereum; аналоги есть почти для всех сетей).
  2. Подключите кошелёк через отдельный режим браузера или, лучше, view-only: вставьте свой адрес вручную — подписывать ничего не нужно.
  3. Отсортируйте одобрения по сумме. Признаёте контракт (Uniswap, Aave) — можно оставить. Не помните или сумма большая — жмите Revoke.
  4. Каждая revoke-транзакция стоит газ: в Ethereum это 30 000–65 000 gas, при цене газа 15 gwei и ETH ~300 000 ₽ — примерно 135–295 ₽ за отзыв. В L2 (Arbitrum, Base) — копейки, доли рубля.
  5. Отзывайте крупное в первую очередь: приоритет — одобрения на thousands of долларов и все setApprovalForAll для NFT.

Типичные ошибки, которые costing деньги

  • Подписать unlimited approve «чтобы потом не платить газ повторно» — экономия пары сотен рублей против риска всего баланса.
  • Сверять адрес по первым 4 символам — скамеры делают vanity-адреса с совпадающим началом.
  • Подписывать что-либо на сайте, куда пришли из Telegram-«поддержки» или рекламного объявления.
  • Думать, что после вывода средств с сайта одобрение исчезло. Не исчезло — оно в токен-контракте.
  • Хранить рабочий баланс и «экспериментальный» в одном кошельке. Подписываете эксперименты burner-кошельком, основной — холодный.

FAQ

Что произойдёт, если я отзову approve, которым пользуюсь? Ничего страшного: протокол просто попросит подписать новый approve при следующей операции. Это одна дополнительная транзакция за 135–295 ₽ — небольшая цена за закрытый вектор атаки.

Безопасно ли вообще использовать unlimited approve на крупных DEX? Это риск-менеджмент, а не бинарный выбор. Uniswap или Curve вряд исчезнут завтра, но история показывает взломы даже крупных протоколов (например, инциденты с роутерами в 2021–2023 годах). Правило простое: unlimited — только на кошельке с суммой, которую не жалко, на основном кошельке — точные лимиты.

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

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