Один и тот же адрес работает в десятке совместимых сетей, и выданные разрешения в каждой из них живут отдельно. Отзыв доступа в одной цепи ничего не меняет в остальных. Поэтому убрать лишние доступы — значит сначала составить перечень сетей, где адрес хоть раз использовался, а затем пройти инвентаризацию разрешений в каждой из них по отдельности. Одной кнопкой эта задача не решается.
Ошибка в рассуждении возникает из-за одинаковых адресов. Адрес выглядит один. Кошелёк один. Разрешения разные — потому что контракт токена в каждой сети свой, и запись о доступе лежит в его памяти, а не в вашем кошельке.
Под какой сценарий подбирается кошелёк и порядок инвентаризации
Объём работы задаёт история адреса. Если адрес использовался в одной сети, перечень разрешений короткий и проверяется за десять минут. Если адрес за пару лет побывал в пяти или шести совместимых сетях, в каждой осталась своя россыпь прав, о которой владелец помнит выборочно и обычно только о последних.
Отсюда требование к порядку. Сначала перечень сетей, потом разрешения, а не наоборот. Перечень удобно восстанавливать по истории адреса в обозревателях каждой сети, и эта работа встраивается в общий цикл сверок, описанный в материале о том, как организовать хранение криптовалюты, если держите активы годами.

Сравнение видов доступа: что меняется для пользователя
| Вид доступа | Где хранится запись | Переносится ли между сетями | Как убирается |
|---|---|---|---|
| Разрешение на расходование токена | В контракте токена той сети, где выдано | Нет | Транзакцией в той же сети, с установкой остатка в нуль |
| Разрешение неограниченной суммы | Там же, значением предельной величины | Нет | Отзывается первым: сумма не ограничена ничем |
| Доступ, выданный контракту-посреднику | В контракте токена, адресатом указан посредник | Нет | Отзыв в сети посредника, с проверкой адреса реализации |
| Подпись намерения с отложенным исполнением | Вне цепи, до момента предъявления | Зависит от того, включён ли идентификатор цепи | Сменой адреса или истечением срока подписи |
| Ключ наблюдения, отданный сервису | У сервиса | Относится ко всем сетям сразу | Не отзывается: сменой счёта или путей вывода |
Последняя строка выпадает из общей логики и потому требует внимания. Отданный расширенный публичный ключ раскрывает адреса и историю во всех сетях, где используется тот же корень, и забрать публикацию обратно нельзя. Что раскрывает такой ключ, разбирает материал, как устроен расширенный публичный ключ в мультиподписи.
Инвентаризация шаг за шагом
- Соберите перечень сетей, где адрес хоть раз появлялся: по истории в обозревателях, по письмам площадок, по приложениям, которыми вы пользовались.
- В каждой сети выгрузите действующие разрешения: кому выдано, на какой токен, на какую сумму, когда. Таблица на одном листе.
- Отметьте лишнее по двум признакам: сумма не ограничена либо последняя операция с этим адресатом была больше полугода назад.
- Отзывайте права по одной сети за раз, устанавливая остаток в нуль, и сверяйте результат запросом остатка после каждой транзакции.
- Для доступов, выданных контракту-посреднику, проверьте адрес текущей реализации: посредник мог сменить логику, оставив тот же внешний адрес.
- Запишите итог: сеть, число отозванных прав, дата. Через полгода эта запись станет точкой отсчёта для следующей ревизии.
Резервная копия и проверка восстановления
Перечень сетей и разрешений хранится рядом с резервной копией, но отдельной записью. Слова восстановления его не содержат: восстановленный кошелёк не знает ни о сетях, в которых вы работали, ни о правах, которые выдавали.
Проверка восстановления поэтому состоит из двух частей. Корень проверяется стандартно — чистое устройство, ввод слов, сверка первого адреса, очистка, дата. Картина по сетям проверяется описью: по списку добавляются сети, запрашиваются балансы и действующие разрешения, и результат сравнивается с прошлой ревизией.
Отдельно о «мусорных» токенах. Случайные зачисления от неизвестных отправителей иногда сопровождаются приглашением обменять их через незнакомый контракт, и согласие на такой обмен выдаёт разрешение. Механика рассылок разобрана в материале про как распознать пылевую атаку на кошелёк и что делать с полученной мелочью.
Типовые ошибки, которые стоят денег
Вторая ошибка — отзыв по подсказке всплывающего окна. Страница предлагает «очистить разрешения одним нажатием», и подписанная не глядя транзакция вместо отзыва выдаёт новое право тому же адресату, причём на неограниченную сумму и в той сети, которую владелец не собирался трогать. Читайте, что подписываете.
Третья ошибка — забытое неограниченное разрешение. Сумма не задана, срок не ограничен, адресат давно не используется, и доступ продолжает существовать, причём о нём не напоминает ни одно приложение до того дня, когда с баланса уходит весь остаток токена.
Четвёртая ошибка — проверка только по приложению кошелька. Интерфейс показывает разрешения тех сетей, которые в нём добавлены, и молчит об остальных. Инвентаризация идёт по перечню сетей, а не по экрану приложения, потому что добавленные в кошелёк сети отражают ваши сегодняшние привычки, а разрешения остались от привычек двухлетней давности.
Что делать при утере доступа
- Если токен списан, найдите транзакцию в обозревателе и посмотрите, по какому разрешению она прошла и кому это право выдавалось.
- Установите остаток этого разрешения в нуль в той же сети, а затем проверьте остальные сети на наличие права у того же адресата.
- Переведите оставшиеся активы на адрес, которому разрешений никогда не выдавалось, и работайте с новым адресом дальше.
- Зафиксируйте перечень сетей и прав, которые успели отозвать, чтобы не проходить инвентаризацию заново по памяти.
Ответственность за каждое выданное право остаётся на владельце адреса: отозвать его может только он и только транзакцией в соответствующей сети. Рамку этой ответственности описывает разбор, что такое самостоятельное хранение и какую ответственность оно даёт.
Чек-лист
- Перечень сетей, где адрес использовался, собран и записан
- Разрешения выгружены отдельно по каждой сети
- Неограниченные по сумме права отмечены для отзыва первыми
- Права старше полугода без операций признаны лишними
- Отзыв выполнен по одной сети за раз, с установкой остатка в нуль
- Результат каждого отзыва сверен запросом остатка
- Для посредников проверен адрес текущей реализации
- Итог ревизии записан с датой как точка отсчёта
Материалы по теме:
- Что такое самостоятельное хранение и какую ответственность оно даёт — опорный разбор раздела и граница чужой помощи.
- Как устроен расширенный публичный ключ в мультиподписи — доступ, который не отзывается в принципе.
- Как распознать пылевую атаку на кошелёк и что делать с полученной мелочью — откуда берутся приглашения выдать право.
- Как организовать хранение криптовалюты, если держите активы годами — куда встроить регулярную ревизию прав.
Частые вопросы
Я отозвал разрешение. В других сетях оно тоже снято?
Нет. Запись о праве хранится в контракте токена той сети, где разрешение выдавалось, и соседние цепи о ней ничего не знают. Отзыв требует отдельной транзакции в каждой сети. Поэтому инвентаризация начинается с перечня сетей, в которых адрес когда-либо использовался, а не с интерфейса кошелька.
Как узнать, в каких сетях я вообще работал?
По истории адреса в обозревателях сетей, по подтверждениям операций от площадок и по списку приложений, которыми вы пользовались. Перечень полезно хранить рядом с резервной копией: слова восстановления его не содержат, и после переустановки кошелька картина собирается заново вручную.
Чем опасно неограниченное разрешение?
Тем, что предел списания не задан. Стандарт описывает разрешение как право списывать многократно в пределах указанной суммы, и если сумма выставлена предельной величиной, ограничения нет вовсе. Такие права отзывают первыми, независимо от того, насколько надёжным казался адресат в момент выдачи.
Что проверять у контракта-посредника?
Адрес текущей реализации. Многие посредники построены как прокси: внешний адрес неизменен, а логика хранится в отдельном контракте, адрес которого администратор вправе сменить. Стандарт EIP-1967 задаёт для этого адреса фиксированный слот, и обозреватели сетей показывают его значение в карточке контракта.
Вердикт
Разрешения — единственный вид доступа, который владелец выдаёт сам и забывает в тот же день. Их независимость по сетям делает ревизию механической работой: перечень сетей, выгрузка прав, отзыв по одной цепи за раз. В обращениях читателей списания проходят по правам, выданным год назад и ни разу не пересмотренным. Поставьте ревизию в календарь раз в полгода.
Разборы и предупреждения о свежих схемах публикуем в Telegram-канале Cryptium.
Источники: спецификация ERC-20 о функциях approve и allowance и спецификация EIP-1967 о слотах хранения прокси-контрактов.
Обсуждение
Добавить комментарий