Убрать лишние доступы — значит составить список всего, что способно читать или подписывать операции вашего кошелька, и сократить его до необходимого. Доступы делятся на отзываемые и неотзываемые: разрешения смарт-контрактов и сессии приложений отзываются транзакцией, а раскрытый ключ или копия фразы не отзываются никогда, и единственный выход в этом случае — перенос средств на новую ветку ключей. Процедура у них одна.

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

Какие доступы накапливаются незаметно

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

На 18 декабря 2025 года, по отчёту Chainalysis о похищенных средствах, потери с личных кошельков за 2025 год составили 713 млн долларов — это 20% всей похищенной суммы против 44% годом ранее. Число пострадавших при этом выросло: 158 тысяч инцидентов против меньших значений прошлых периодов, то есть сумма на одну жертву снизилась, а охват расширился.

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

Типы доступа и как отзывается каждый

Тип доступа Что он позволяет Как отзывается Остаётся ли след после отзыва
Разрешение смарт-контракту на списание токена Списывать токен с адреса владельца в пределах выданного лимита, многократно Транзакцией, устанавливающей лимит в ноль, с оплатой комиссии сети История выдачи и отзыва остаётся в сети навсегда, доступ прекращается
Сессия приложения, подключённого к кошельку Запрашивать подписи у кошелька без повторного подключения Отключением сессии в настройках кошелька, без транзакции и комиссии Следов в сети нет, подключение прекращается сразу
Расширенный публичный ключ у сервиса или человека Видеть все адреса и остатки ветки, включая будущие адреса Отзыву не поддаётся: ключ уже скопирован, удаление из интерфейса ничего не меняет Доступ к чтению сохраняется, снимается только переносом на новую ветку
Копия фразы восстановления у третьего лица Полный контроль над средствами ветки, включая подпись любых операций Отзыву не поддаётся, возврат носителя подтверждением уничтожения не является Доступ сохраняется бессрочно, снимается только миграцией на новую фразу

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

Отзыв разрешения смарт-контракту требует отдельной транзакции и оплаты комиссии сети. Стандарт ERC-20, опубликованный 19 ноября 2015 года, содержит прямую рекомендацию: интерфейсы должны сначала устанавливать разрешение в ноль и лишь затем задавать новое значение для того же получателя. Смена ненулевого лимита напрямую открывает окно, в котором получатель успевает использовать и старый лимит, и новый.

Инвентаризация и отзыв шаг за шагом

  1. Выпишите адреса, которыми пользуетесь, и для каждого отметьте сети, где с него подписывались операции, — чистку ведут по сетям отдельно.
  2. Соберите список выданных разрешений смарт-контрактам по каждой сети и отсортируйте его по размеру лимита и давности выдачи.
  3. Установите в ноль разрешения, которыми не пользовались, начиная с бессрочных и неограниченных по сумме, а не с самых старых по дате.
  4. Отключите в кошельке сессии приложений, подключённых ранее: это делается без транзакции и потому не требует комиссии.
  5. Отметьте доступы, которые отозвать нельзя: кому отдан расширенный ключ, у кого остались копии фразы, какие устройства не стёрты.
  6. Для неотзываемых доступов спланируйте миграцию на новую ветку ключей и сверьте новую резервную копию адресом до переноса средств.
Схема из пяти шагов: инвентаризация адресов и сетей, сбор списка разрешений, обнуление лишних лимитов, отключение сессий приложений, миграция для неотзываемых доступов
Схема из пяти шагов: инвентаризация адресов и сетей, сбор списка разрешений, обнуление лишних лимитов, отключение сессий приложений, миграция для неотзываемых доступов

Когда отзыв не помогает и нужна новая копия

Критерий один. Если доступ состоит в знании, а не в записи в сети, отзывать нечего. Фраза, запомненная или сфотографированная, остаётся работоспособной, пока на ветке есть средства, и никакая настройка кошелька этого не меняет. Расширенный публичный ключ ведёт себя похоже, но ограниченнее: он даёт чтение, а не подпись, и потому миграция тут вопрос приватности, а не сохранности.

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

Стандарт BIP-32 предупреждает: знание родительского расширенного публичного ключа вместе с любым незащищённым дочерним приватным ключом равнозначно знанию родительского расширенного приватного ключа и всех ключей ниже по ветке. Поэтому выданный расширенный ключ при утечке одного дочернего ключа превращается из доступа к чтению в доступ к подписи.

Типовые ошибки при чистке доступов

  • Разрешения отзывают только в той сети, где работали недавно. Лимиты, выданные в другой сети, остаются действующими и забываются.
  • Сортировку ведут по дате, а не по размеру лимита. Опаснее не старое разрешение, а неограниченное по сумме.
  • Возвращённый носитель с фразой считают закрытым доступом. Переписать 24 слова занимает минуту, и возврат ничего не доказывает.
  • Расширенный ключ удаляют из интерфейса сервиса и считают вопрос решённым. Ключ уже скопирован, удаление касается только отображения.
  • Миграцию делают на ту же фразу с другим номером счёта. Доступ при этом сохраняется: номер счёта выводится из той же фразы.
  • Устройства, на которых кошелёк разворачивали для проверки, остаются настроенными. Каждое такое устройство — отдельная точка доступа.

Что делать, если лишний доступ уже использовали

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

Затем — восстановление контроля. Новая ветка, новая резервная копия, сверка адресом, запись даты. Параллельно стоит сузить круг на будущее: вести письменный список выданных доступов с датами и ревизовать его по расписанию. Такой список и есть главный результат чистки, потому что без него через полгода инвентаризацию придётся начинать заново с чистого листа.

Чек-лист

  • Список используемых адресов составлен, по каждому отмечены сети, где подписывались операции.
  • Разрешения смарт-контрактам собраны по всем сетям и отсортированы по размеру лимита.
  • Неограниченные и неиспользуемые разрешения обнулены транзакцией.
  • Сессии ранее подключённых приложений отключены в настройках кошелька.
  • Неотзываемые доступы перечислены письменно: расширенные ключи, копии фразы, ненастёртые устройства.
  • По неотзываемым доступам запланирована миграция, новая копия сверена адресом до переноса средств.

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

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

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

Отзывается ли доступ, если удалить приложение с телефона?

Нет. Удаление убирает интерфейс, а не разрешение в сети: лимит смарт-контракта остаётся выданным. Сессии подключения прерываются, но они и отзываются в настройках кошелька без удаления приложения. Эти два вида доступа путают чаще всего.

Можно ли вернуть приватность после выдачи расширенного ключа?

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

Как часто проводить ревизию доступов?

Раз в квартал для активного кошелька и раз в полгода для холодного хранения. Внеплановую ревизию проводят после каждого взаимодействия с новым смарт-контрактом и после передачи устройства в ремонт. Письменный список доступов сокращает такую ревизию до нескольких минут.

Правила выдачи и обнуления разрешений заданы в тексте стандарта ERC-20 о токенах, а порядок отзыва описан в руководстве проекта Ethereum по отзыву доступа смарт-контрактов.

Вердикт

Чистка доступов делится надвое, и владельцы обычно занимаются только первой половиной. Обнулить лимиты не сложно. Это вопрос вечера и комиссий сети. Сложнее признать, что копия фразы у третьего лица и выданный расширенный ключ отзыву не поддаются, а значит чистка для них равна миграции. Начните со списка: письменный перечень доступов с датами меняет картину сильнее любого отзыва.

Практику ревизии доступов разбираем в нашем Telegram-канале Cryptium.