Owlio
RU
← Блог
ИнструкцияДля новичка

Отключение кошелька не отменяет разрешения на списание токенов

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

Отключение кошелька от сайта не отменяет выданное разрешение на списание токенов. Подключение - настройка кошелька, а лимит ERC-20 записан в контракте токена. Чтобы запретить конкретному адресу с правом списания использовать этот лимит, нужно изменить его в блокчейне и проверить новое состояние.

Здесь разбираем обычные разрешения ERC-20 в сетях EVM. Просмотр отделён от возможной транзакции. Для проверки публичного адреса не нужны фраза восстановления и приватный ключ.

Подключение, разрешение и баланс - разные записи

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

В стандарте ERC-20 метод balanceOf показывает количество токенов у адреса. Метод allowance(owner, spender) показывает, сколько этих токенов разрешено использовать конкретному адресу с правом списания. Адрес с правом списания называется spender. Это часто адрес контракта. Разрешение относится к этому токену в этой сети, а не автоматически ко всем активам кошелька.

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

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

Что меняет отзыв разрешения

Условный адрес держит 25 токенов A, а одному адресу разрешено списывать 100 токенов A. Это две записи, а не 125 токенов на балансе. Отключение от сайта оставляет разрешение.

Успешный обычный вызов approve(spender, 0) устанавливает этот лимит в 0. Баланс токена остаётся 25, если не было другой операции, меняющей баланс. Комиссия обычной транзакции за свой счёт оплачивается отдельно нативным активом сети. Такой отзыв объясняет справка Revoke.cash.

Сначала посмотрите, затем проверьте нужное изменение

  1. Выберите владельца и сеть. Скопируйте публичный адрес своего кошелька и выберите сеть, где выдавали разрешение. У того же адреса 0x в другой сети своё состояние контрактов. Открывайте сервис по официальному адресу, а не по ссылке из незнакомого токена или сообщения.
  2. Посмотрите разрешения без подписи. Инструкция Revoke.cash допускает ввод публичного адреса для просмотра. Можно использовать и проверку разрешений в подходящем обозревателе сети. Сервис видит запрашиваемый адрес и ваш IP. Пустой список из индексатора не доказывает отсутствие любых разрешений во всех сетях.
  3. Определите одно разрешение. Запишите полный адрес контракта токена, адрес с правом списания и текущий лимит. Знакомого тикера или подписи контракта недостаточно. Перед действием сверяйте токен и нужный адрес с правом списания с официальными сведениями проекта. Не взаимодействуйте с неизвестным токеном только потому, что он попал в список.
  4. Если решили отозвать, прочитайте транзакцию. Для обычного разрешения ERC-20 нужно установить ноль для этого адреса с правом списания. Подключайте нужный кошелёк для подписи только на этапе изменения. В подтверждении проверьте сеть, контракт токена и адрес с правом списания, затем комиссию и нативный баланс. Остановитесь, если вместо отзыва предлагается перевод, разрешение с ненулевым лимитом или непонятная подпись. Фразу восстановления в сервис проверки не вводят.
  5. Проверьте успешное подтверждение и текущее состояние. Откройте транзакцию в обозревателе этой сети. Транзакция в ожидании или с ошибкой не подтверждает отзыв. После успеха обновите лимит того же владельца для того же токена и адреса с правом списания: должен быть ноль. Одной успешной квитанции недостаточно, если нужное состояние не изменилось. Если сервис не показывает текущее значение, результат остаётся непроверенным.

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

Почему один ноль не проверяет весь кошелёк

Для других токенов, сетей и адресов с правом списания действуют отдельные разрешения. Права оператора NFT, Permit2 и сессий кошелька тоже требуют отдельной проверки. Эта последовательность для ERC-20 не охватывает их все. Отзыв не возвращает уже переведённые средства и не решает проблему доступа постороннего к ключам подписи.

Некоторые токены поддерживают подписанные разрешения по ERC-2612. Ещё действующую, но не отправленную в сеть подпись permit могут предъявить позднее, и она установит лимит. Обычный approve(spender, 0) не расходует её порядковый номер, или nonce. Поэтому ноль сейчас не доказывает, что старую подпись уже нельзя отправить. Не считайте любую подпись сообщения безвредной и не переносите правила одного токена на все остальные.

Что покажет трекер портфеля

Наблюдение за публичными адресами в Owlio позволяет смотреть поддерживаемые активы без разрешения на списание. Удаление адреса из трекера и скрытие актива меняют отображение, а не контракт токена. Owlio читает публичные данные и не может отозвать разрешение за вас. Политика приватности объясняет, какие поставщики данных видят адрес и IP.

Итог портфеля показывает найденные и оценённые активы. Он не сообщает, какие контракты могут списывать токен. Завершайте проверку конкретными владельцем, сетью, токеном, адресом с правом списания и подтверждённым текущим лимитом.

Частые вопросы

Отключение кошелька отменяет разрешения токенов?

Нет. Отключение меняет связь кошелька с сайтом. Разрешение ERC-20 остаётся в блокчейне, пока не будет использовано или изменено по правилам токена.

Можно проверить разрешения без подключения кошелька?

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

Отзыв разрешения убирает токены с кошелька?

Установка обычного лимита ERC-20 в ноль меняет право выбранного адреса на списание. Сама по себе она не переводит токены. За обычную транзакцию с собственной оплатой взимается комиссия в нативном активе сети.

Нулевой лимит означает, что весь кошелёк безопасен?

Нет. Он подтверждает состояние только для проверенных владельца, сети, токена и адреса с правом списания в момент проверки. Другие разрешения, ещё действующие подписи permit и компрометация ключей требуют отдельного внимания. Отзыв не отменяет прошлые переводы.