

Подключение MetaMask к сайту само по себе обычно не даёт приложению права свободно распоряжаться всеми активами кошелька. Ключевой момент наступает позже — когда пользователь подтверждает разрешение на использование конкретного токена.
Такое разрешение нужно для обычных Web3-операций. Без него DEX не сможет забрать токены для свопа, lending-протокол — внести их в пул, а автоматизированный контракт — выполнить предусмотренное действие.
Проблема в том, что доступ может сохраниться и после закрытия сайта. Пользователь отключает dApp от MetaMask и считает вопрос закрытым, хотя allowance — разрешённый лимит списания — продолжает храниться в блокчейне.
Разберёмся, чем token approval отличается от подключения сайта и подписи, как проверить разрешения кошелька и когда действительно нужен revoke.
В Ethereum и других EVM-сетях многие взаимозаменяемые токены работают по стандарту ERC-20. Контракт токена хранит не только балансы, но и allowances — лимиты, в пределах которых другой адрес или смарт-контракт может переводить токены от имени владельца.
Здесь есть два связанных понятия:
Допустим, в кошельке лежит 1 000 токенов, а пользователь хочет обменять 100 через DEX. Роутер биржи не может самостоятельно забрать нужную сумму. Сначала владелец разрешает этому контракту использовать токен, после чего роутер выполняет перевод в рамках свопа.
Разрешение относится к конкретной комбинации:
Approval для одного токена не открывает доступ ко всем остальным активам. Разрешение в Ethereum также не создаёт автоматически такое же разрешение в BNB Smart Chain или другой сети.
Понять техническую основу этого механизма поможет материал о том, как работают смарт-контракты.
Смарт-контракту нужен контролируемый способ выполнить действие с токеном, которое запросил пользователь. При этом приложение не должно получать seed phrase или private key.
DEX запрашивает доступ к токену для проведения обмена. Lending-протоколу нужно переместить актив в пул. Контракт подписки или автоматической операции может получить заранее заданный лимит.
Обычный approval не раскрывает секреты кошелька. Он даёт определённому spender право перемещать конкретный токен в пределах разрешённой суммы.
На уровень риска влияют:
Именно поэтому безопасность кошелька не заканчивается хранением recovery phrase. Статья про seed phrase и private key объясняет контроль над самим кошельком, а approvals определяют полномочия уже подключённых контрактов.
При ограниченном approval контракт получает право использовать конкретную сумму. Если для свопа требуется 100 токенов, можно разрешить ровно 100. После операции allowance будет исчерпан или почти исчерпан.
Unlimited approval устанавливает очень большой лимит, который на практике воспринимается как неограниченный. Такой подход избавляет пользователя от новой approval-транзакции перед каждым следующим действием и экономит время и gas.
Безлимитное разрешение не означает, что контракт немедленно получает весь кошелёк. Оно означает, что spender потенциально может перемещать доступный баланс конкретного токена в пределах установленного allowance.
Выбор выглядит так:
Само наличие unlimited approval не доказывает мошенничество. Его используют и известные протоколы. Но потенциальный ущерб становится больше, если контракт взломают, вредоносно обновят или подменят через фишинговый интерфейс.
В MetaMask можно посмотреть подключённые сайты и удалить ненужный. Это закрывает активный канал связи: сайт больше не сможет через это подключение запрашивать адрес, подписи или новые транзакции.
Однако allowance уже записан в контракте токена. Отключение сайта не изменяет состояние блокчейна.
Полезно разделять три действия:
Удаление сайта из MetaMask, очистка браузера, переустановка расширения или переход на другое устройство не обнуляют активные allowances.
Чтобы убрать ERC-20-разрешение, обычно требуется новая транзакция, которая устанавливает allowance на ноль или уменьшает его. За неё платится gas.
Посмотреть approvals можно через встроенный инструмент кошелька, специальный раздел блокчейн-эксплорера или проверенный сервис управления разрешениями.
Перед подключением кошелька внимательно проверьте домен. Сервисы revoke сами становятся приманкой для фишинга: пользователь уже встревожен и психологически готов подтвердить «защитную» транзакцию.
В списке разрешений нужно проверить:
Название протокола рядом с адресом — лишь удобная подпись интерфейса. Если разрешение незнакомо, откройте spender в надёжном эксплорере, проверьте верификацию контракта, историю операций и связь с официальным приложением.
Для такой проверки пригодится навык чтения транзакции в блокчейн-эксплорере: важно видеть контракт, метод, адреса, статус и перемещения токенов.
Интерфейсы отличаются, но общий порядок выглядит одинаково:
Revoke — это on-chain операция. На кошельке должна быть нативная монета для gas: например, ETH в Ethereum или соответствующий актив в другой EVM-сети.
Транзакция должна менять существующий allowance. Если MetaMask показывает перевод токенов, продажу NFT, развёртывание контракта или другое неожиданное действие, подтверждать её нельзя.
После включения транзакции в блок нужно убедиться, что разрешение действительно стало нулевым или уменьшилось до выбранной суммы. Сообщения «успешно» на сайте недостаточно.
Отзывать каждое разрешение после любой операции дорого и неудобно. Хранить все approvals годами тоже неразумно. Нужен риск-ориентированный подход.
Revoke имеет смысл, если:
Для регулярно используемого и понятного протокола можно оставить ограниченный allowance, если это соответствует вашему риску. На кошельке с крупным балансом постоянных разрешений должно быть меньше, чем на небольшом адресе для экспериментов.
Пользователи, которые регулярно делают свопы через DEX, сталкиваются с approvals чаще тех, кто только получает и отправляет активы. Поэтому долгосрочный резерв лучше не держать на том же адресе, которым постоянно подключаются к новым dApps.
Разрешение на списание не всегда начинается с отдельной транзакции approve.
Некоторые токены поддерживают механизм Permit. Пользователь подписывает структурированное сообщение, а другая сторона может позже передать эту подпись в блокчейн. Если подпись действительна и не истекла, контракт создаст allowance.
Это улучшает UX и иногда сокращает количество транзакций. Но формула «я ничего не отправлял, только подписал сообщение» больше не является гарантией безопасности. Подпись может дать финансовые полномочия без оплаты gas в момент её создания.
Permit2 — более универсальная система разрешений, которую используют некоторые приложения. Пользователь может сначала выдать токену approval на контракт Permit2, а затем подписывать более точные разрешения для отдельных приложений.
Получается два уровня:
Перед подписью нужно проверить:
Blind signing — подтверждение непонятных данных — особенно опасно. Если MetaMask или аппаратный кошелёк не показывает смысл подписи, лучше остановиться и разобраться до подтверждения.
Если неизвестный контракт уже получил разрешение, но средства пока не ушли, действовать нужно быстро.
Закройте подозрительный сайт. Откройте проверенный approval checker через известную закладку или вручную введённый адрес и отзовите доступ в каждой сети, где он мог быть выдан.
Затем проверьте остальные токены и последние операции. Если есть подозрение не только на approval, но и на утечку ключа, вредоносное расширение или компрометацию устройства, безопаснее создать новый кошелёк на чистом устройстве и перевести оставшиеся активы.
Порядок действий:
Смена локального пароля MetaMask не поможет, если злоумышленник получил seed phrase или private key. В этом случае весь кошелёк следует считать скомпрометированным.
Не доверяйте «сервисам возврата», которые просят recovery phrase, удалённый доступ к компьютеру или предоплату. После первой ошибки срочность легко использовать для второй атаки.
В Web3 несколько разных действий выглядят почти одинаково, хотя последствия у них разные.
Сайт видит публичный адрес и может запрашивать подписи или транзакции. Отключение закрывает соединение, но не удаляет on-chain allowance.
Обычная транзакционная подпись разрешает конкретное действие в блокчейне. Кошелёк должен показать сеть, получателя, сумму, gas и взаимодействие с контрактом.
Сообщение может использоваться для входа по кошельку, подтверждения заявки, размещения ордера или Permit-разрешения. Некоторые подписи не двигают деньги, другие создают полномочия для будущего списания.
У NFT свои модели доступа. Разрешение может относиться к одному токену или давать оператору управление всей коллекцией. Их нужно проверять отдельно от ERC-20 allowances.
Импорт токена и добавление сети меняют отображение в кошельке, но сами по себе не разрешают списание. При этом неожиданный «подарочный» токен может служить приманкой для перехода на вредоносный сайт.
Общий контекст этих действий разобран в обзоре возможностей и рисков MetaMask.
Управление approvals лучше встроить в общую архитектуру хранения, а не вспоминать о нём после подозрительной подписи.
Используйте отдельный кошелёк для dApps и отдельный адрес для резерва. На активном Web3-кошельке держите только сумму, необходимую для текущих операций. Периодически проверяйте unlimited approvals, особенно после знакомства с новым протоколом.
Перед подтверждением:
Эти правила дополняют защиту от других атак на кошелёк, включая подмену адреса через фейковые транзакции.
Компания может использовать Web3-кошельки для обмена активов, управления ликвидностью, выплат, работы с DeFi и казначейских операций. Такие адреса нельзя вести по правилам личного браузерного кошелька.
Бизнесу пригодятся:
Стоит также отделить Web3-активность от приёма клиентских платежей. Кошелёк, который регулярно взаимодействует с новыми DeFi-контрактами, не должен одновременно быть единственным хранилищем выручки и резервов.
CryptumPay позволяет учитывать клиентские криптоплатежи, статусы и выводы без необходимости использовать экспериментальный Web3-кошелёк в каждой платёжной операции. После обработки поступлений бизнес может переводить средства в выбранное хранилище по собственной казначейской политике.
Такое разделение дополняет общие меры безопасности криптоплатежей. Approvals, проверка платежа, AML, контроль доступа и подтверждение вывода решают разные задачи.
Перед approve или revoke проверьте:
Token approvals не являются опасной функцией сами по себе. Это базовый механизм, позволяющий смарт-контрактам работать с пользовательскими токенами. Риск возникает, когда доступ шире необходимого, остаётся активным слишком долго или выдаётся через поддельный интерфейс.
Задача пользователя — не бояться любого approve, а понимать его смысл, ограничивать постоянный доступ и удалять разрешения, у которых больше нет понятного назначения.
Нет. Отключение удаляет активное соединение с сайтом, но записанные в блокчейне allowances сохраняются до отдельной транзакции revoke или изменения лимита.
Обычно да. Изменение ERC-20 allowance является on-chain действием, поэтому оплачивается нативной монетой сети.
Стандартный token approval не раскрывает seed phrase. Он разрешает spender-контракту перемещать конкретный токен. Если recovery phrase вводилась на сайте или передавалась кому-то, весь кошелёк нужно считать скомпрометированным.
Нет. Он может остановить дальнейшее использование разрешения, но не отменит уже подтверждённые переводы.
Не обязательно. Оцените spender, репутацию и необходимость протокола, сумму под риском и собственную модель использования. Старые, неизвестные и ненужные безлимитные разрешения лучше отозвать.
Create an account and connect the checkout yourself, or talk to sales and we will plan the integration with you.
Напишите нам в Telegram, и мы спланируем интеграцию