Заказать звонок

    Ваше имя

    E-mail

    Сообщение

    Статьи

    Token Approve: зачем кошелек дает доступ к токенам и как отозвать разрешение

    Автор: Олег А.

    При первом swap на DEX кошелек нередко показывает две операции подряд. Сначала пользователь подтверждает Approve, а уже потом сам обмен. Со стороны это может выглядеть как лишняя техническая формальность, но на самом деле approve определяет, какой смарт-контракт и в каком объеме получает право перемещать определенный токен от имени владельца.

    Коротко: token approve — это разрешение смарт-контракту расходовать ERC-20 токены с адреса пользователя в пределах установленного allowance. Revoke — отдельная on-chain операция, которая уменьшает или обнуляет такое разрешение.

    Approve не передает seed-фразу и не дает контракту полный контроль над кошельком. Но слишком широкое разрешение способно создать риск для конкретного токена, особенно если контракт окажется вредоносным или будет скомпрометирован.

    Зачем вообще нужен approve

    Смарт-контракт DEX не может произвольно забрать USDC, ETH или другой актив из кошелька. Для ERC-20 токенов владелец сначала разрешает определенному spender использовать заданную сумму.

    Представим, что пользователь хочет обменять 500 USDC через DEX.

    На первом шаге он разрешает router-контракту работать, например, максимум с 500 USDC. После подтверждения allowance записывается в блокчейне.

    На втором шаге router использует это разрешение для исполнения swap.

    Схема:

    кошелек → approve spender → allowance → swap через контракт.

    Без approval стандартный ERC-20 контракт не позволит стороннему контракту выполнить transferFrom в нужном объеме.

    Что такое allowance

    Allowance — лимит, который владелец токена установил для конкретного spender.

    Допустим:

    • баланс пользователя — 2 000 USDC;
    • allowance для DEX-router — 500 USDC.

    Контракт не должен иметь возможности перевести больше разрешенного лимита через стандартный механизм allowance.

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

    Важно: approve относится к конкретной паре owner → spender → token. Разрешение на USDC не дает автоматически доступ к ETH, USDT или другим токенам.

    Что такое unlimited approval

    Чтобы пользователь не подтверждал approve перед каждым swap, многие приложения предлагают практически неограниченный allowance.

    В технической реализации это может быть очень большое число, близкое к максимальному значению типа uint256.

    Преимущество понятно: меньше отдельных транзакций и меньше дополнительных network fees.

    Недостаток тоже существенный: если у spender остается unlimited approval, он потенциально может использовать весь доступный баланс этого токена сейчас и в будущем.

    Ethereum.org в руководстве по revoke отдельно предупреждает, что бессрочный доступ сохраняет риск даже после того, как пользователь перестал пользоваться платформой.

    Почему отключить кошелек от сайта недостаточно

    Это одна из самых распространенных ошибок.

    В интерфейсе кошелька пользователь может нажать Disconnect. После этого сайт перестает видеть текущую сессию подключения. Но on-chain allowance уже записан в блокчейне.

    Disconnect ≠ Revoke.

    Ethereum.org прямо указывает: отключение кошелька от dApp не удаляет выданный token allowance. Для отмены доступа требуется отдельная revoke-транзакция.

    Поэтому пользователь может годами не заходить на сайт, а старое разрешение все равно продолжит существовать.

    Какие риски создает старый approve

    Сам approve не является проблемой, если spender надежен и лимит разумен. Риск возникает, когда меняется контекст.

    Например:

    • протокол взломан;
    • контракт содержит уязвимость;
    • пользователь подписал approve фишинговому контракту;
    • интерфейс подменил spender;
    • был выдан unlimited allowance неизвестному приложению.

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

    Именно поэтому Ethereum.org рекомендует выдавать только необходимый объем разрешения и периодически отзывать старые allowances.

    Как выглядит вредоносный approve

    Фишинговый сайт может имитировать популярный DEX или airdrop и предложить «подтвердить кошелек». На деле пользователь подписывает approve на неограниченный расход токена.

    После этого злоумышленнику не нужна seed-фраза. Он использует разрешение через контракт.

    Особенно опасна ситуация, когда в кошельке сейчас почти нет нужного токена. Пользователь считает approve безвредным, но позже пополняет адрес. Старое разрешение продолжает действовать и может быть использовано спустя месяцы.

    Как проверить активные token approvals

    Для EVM-сетей существуют explorer-инструменты и специализированные revoke-интерфейсы, которые читают данные allowance из блокчейна.

    Логика проверки проста:

    1. подключить нужный адрес;
    2. выбрать сеть;
    3. посмотреть список токенов и spender-контрактов;
    4. проверить установленный лимит;
    5. отозвать ненужные разрешения.

    Важно открывать revoke-сервис по проверенному адресу. Фишинговый «сервис для защиты кошелька» сам может попытаться получить новые разрешения.

    Если интерфейс позволяет просматривать allowance без подключения кошелька по публичному адресу, это еще безопаснее для первичной проверки.

    Как работает revoke

    Revoke обычно устанавливает allowance в ноль или уменьшает его.

    Это тоже блокчейн-транзакция, поэтому потребуется native token сети для gas.

    Например, в Ethereum понадобится ETH. В BNB Smart Chain — BNB. В Polygon — нативный токен соответствующей сети.

    После подтверждения revoke старый spender больше не должен иметь прежнего права расходовать токен через данный allowance.

    Ethereum.org советует после транзакции обновить проверочный интерфейс и убедиться, что разрешение действительно исчезло или стало нулевым.

    Revoke не возвращает уже украденные токены

    Если злоумышленник уже воспользовался approve и перевел активы, отзыв разрешения не отменяет прошедшую транзакцию.

    Revoke защищает от дальнейшего использования оставшегося allowance.

    Поэтому при подозрении на компрометацию кошелька нужно оценивать ситуацию шире: какие approvals выданы, раскрыта ли seed-фраза, подписывались ли подозрительные permits, существуют ли другие активы на адресе.

    Если seed-фраза скомпрометирована, одного revoke недостаточно. В таком случае злоумышленник владеет самими ключами.

    Approve и Permit — не одно и то же

    Классический approve — on-chain транзакция. Но некоторые токены и протоколы используют подписи типа Permit.

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

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

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

    Почему кошелек иногда предлагает Approve Max

    Интерфейс стремится уменьшить количество повторных транзакций. Если пользователь регулярно совершает swap, unlimited approval позволяет не платить gas за новый approve каждый раз.

    С точки зрения UX это удобно.

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

    Для крупного баланса разумно выбирать ограниченный allowance, если приложение и токен позволяют это сделать без проблем.

    Ограниченный approve или unlimited: что выбрать

    Сравнение выглядит так:

    ПодходПлюсМинус
    Approve exact amountМинимальный объем рискаНужно повторять approve
    Approve slightly moreКомпромиссОстаточный allowance сохраняется
    Unlimited approvalУдобно и меньше транзакцийМаксимальный потенциальный риск при компрометации spender
    Revoke после использованияУменьшает длительный рискТребует дополнительного gas

    Для редкого взаимодействия с неизвестным или новым dApp unlimited approval выглядит особенно неоправданно.

    Нужно ли отзывать все approvals каждый день

    Нет. Это может создавать лишние комиссии и операционный шум.

    Рациональнее периодически проверять старые разрешения, особенно после использования новых DeFi-протоколов, участия в airdrop, подключения к неизвестным сайтам или новостей об уязвимости сервиса.

    Для кошельков с крупными суммами практика минимальных разрешений имеет больше смысла, чем постоянный unlimited allowance десяткам контрактов.

    Что делать после взаимодействия с подозрительным сайтом

    Если seed-фраза не вводилась, но пользователь подтверждал транзакции или подписи, сначала нужно изучить approvals.

    Отзовите неизвестные allowances. Проверьте историю транзакций и разрешений. Если кошелек содержит крупные активы и есть основания считать, что могли быть подписаны другие опасные действия, безопаснее оценить перенос оставшихся средств на новый адрес.

    Не переводите деньги «службе восстановления», которая пишет первой. Ethereum.org предупреждает, что обещания вернуть необратимые блокчейн-транзакции за дополнительную оплату часто являются вторичным мошенничеством.

    FAQ

    Что такое approve в криптокошельке?

    Это разрешение конкретному смарт-контракту использовать определенный токен пользователя в пределах заданного allowance.

    Approve дает доступ ко всему кошельку?

    Нет. Стандартный allowance относится к конкретному токену и spender. Но unlimited approve может дать право расходовать весь текущий и будущий баланс этого токена.

    Disconnect отменяет approve?

    Нет. Отключение сайта от кошелька не удаляет on-chain разрешение.

    Что такое revoke?

    Это транзакция, которая уменьшает или обнуляет ранее выданный allowance.

    За revoke нужно платить gas?

    Да, поскольку изменение allowance записывается в блокчейн.

    Нужно ли отзывать разрешение после каждого swap?

    Необязательно. Это зависит от модели риска, суммы и частоты использования. Но ненужные старые allowances стоит периодически проверять.

    Содержание

    Рекомендуем

    Статьи
    Proof of Reserves: как проверить резервы криптобиржи или стейблкоина и что такая проверка не показывает

    После крупных банкротств криптокомпаний выражение Proof of Reserves стало одним из главных аргументов в пользу...

    21 октября, 2026
    Статьи
    Депег стейблкоина: почему USDT, USDC и другие stablecoin могут потерять привязку к доллару

    Название stablecoin создает ощущение, что его цена обязана всегда оставаться ровно на уровне $1. На практике...

    21 октября, 2026
    Пул ликвидности в криптовалюте: как работает liquidity pool и что такое impermanent loss

    На централизованной бирже встречаются продавцы и покупатели через книгу заявок. В DeFi многие обмены устроены иначе:...

    21 октября, 2026
    Статьи
    Проскальзывание в криптовалюте: что такое slippage и почему токен покупается по другой цене

    Пользователь открывает DEX, вводит сумму обмена и видит расчет: за 1 000 USDC он должен получить определенное...

    21 октября, 2026
    Статьи
    Что такое криптомост и как переводить токены между блокчейнами

    У пользователя может быть USDC в Ethereum, а нужное приложение работает в Arbitrum. Или токен находится в одной сети, а...

    21 октября, 2026
    Статьи
    Разлок токенов и vesting: что это и как разблокировка влияет на цену криптовалюты

    После запуска токена далеко не все выпущенные монеты сразу попадают на рынок. Часть предложения часто резервируется для...

    21 октября, 2026
    Статьи
    Капитализация и FDV криптовалюты: в чем разница и почему цена токена может вводить в заблуждение

    При сравнении криптовалют пользователи часто смотрят на цену одной монеты. Токен по $0,10 кажется «дешевым», а Bitcoin...

    21 октября, 2026
    Статьи
    Токеномика криптовалюты: что это и как анализировать токен перед покупкой

    Цена токена сама по себе почти ничего не говорит о его качестве. Актив за $0,05 может быть переоценен, а токен за $500...

    21 октября, 2026
    Статьи
    Как вывести USDT на карту в 2026 году: P2P, обменники и другие способы

    Напрямую зачислить USDT на обычную банковскую карту нельзя: карта принимает рубли, а USDT существует в блокчейне....

    22 сентября, 2026