Объединить мелкие остатки в один перевод и убрать лишние доступы — задача из двух частей, и только одна решается транзакцией. Консолидация тратит старые выходы, и всё, что было завязано на них, перестаёт работать: недоподписанные заготовки, выданные кому-то адреса, старые счета-ссылки. Но ключ, расширенный публичный ключ и выданные разрешения переживают любую трату. Их снимают отдельными действиями, и список этих действий составляют заранее.
Редакция собирает такие обращения месяцами. Картина повторяется. Человек помнит пароль и фразу, но не помнит, кому год назад отдал выгрузку для учёта.
Почему трата закрывает не всякий доступ
Доступ бывает двух природ. Первая привязана к конкретным кускам денег: пока они лежат на месте, заготовка подписи или выставленный счёт имеют силу, а после траты превращаются в бумагу. Вторая привязана к ключу и к дереву производных адресов — она переживает любое число переводов, потому что относится не к деньгам, а к самой способности их находить и подписывать.
Отсюда правило. Консолидация обнуляет первую категорию. Вторую она не трогает. Разница принципиальная.
Инвентаризация: что выдано и кому
Опись составляют до транзакции. Порядок тут важнее скорости. Иначе процедура превратится в уборку одной полки в захламлённой комнате.
| Вид доступа | Что он даёт держателю | Снимается ли консолидацией | Чем закрывается |
|---|---|---|---|
| Фраза восстановления или её копия | Полный контроль: просмотр, подпись, вывод всех средств со всех счетов дерева | Нет. Трата выходов не меняет ключ и не обесценивает копию фразы | Только перенос средств на новый ключ с новой фразой, записанной заново |
| Выданный наружу расширенный публичный ключ | Видимость всех адресов счёта, сумм и полной истории поступлений и трат | Нет. Новый адрес сдачи выводится из того же дерева и остаётся видимым | Переход на другой укреплённый счёт дерева или на другой ключ целиком |
| Подключённое приложение-наблюдатель | Видимость баланса и уведомления; подписывать средства оно не может | Нет, если приложению отдан ключ счёта, а не отдельный адрес | Удаление подключения на стороне приложения плюс смена счёта дерева |
| Незавершённая частично подписанная транзакция | Возможность дособрать подписи и опубликовать перевод с ваших выходов | Да. После траты тех же входов заготовка становится недействительной | Сама консолидация; дополнительно удалите файлы заготовок с устройств |
| Разрешение на списание токена в счётной модели | Право контракта списывать токен с вашего адреса в пределах выданного лимита | Нет. В счётной модели непотраченных выходов нет, и трата ничего не отменяет | Отдельная транзакция, обнуляющая лимит, по одной на каждое разрешение |
Как объединить мелкие остатки в один перевод и убрать лишние доступы: порядок
- Выпишите все устройства и программы, где когда-либо разворачивался этот кошелёк. Старые телефоны и рабочие ноутбуки тоже считаются.
- Найдите все выгрузки публичных ключей. Проверьте почту, облачные папки, переписки с бухгалтером и мастерами по настройке.
- Соберите файлы незавершённых подписей. Расширение зависит от программы, но формат один — описан в BIP-174.
- Для счётной модели составьте список выданных разрешений на списание и отсортируйте по размеру лимита.
- Проведите консолидацию: много входов, один выход на свежий адрес вашего кошелька, пометка замены по комиссии.
- Снимите остальные доступы по списку. То, что снять нельзя, закройте переходом на новый счёт дерева.

Как устроено наблюдение по публичному ключу
Расширенный публичный ключ — инструмент удобный и опасный одновременно. Он позволяет стороннему наблюдателю видеть поступления без права подписи, и тот же BIP-32 описывает это как штатный сценарий аудита: достаточно отдать публичные ключи счетов, и проверяющий увидит все переводы, не получив ни одного секретного ключа. Механику выдачи и то, как она работает в схемах с несколькими подписями, редакция разбирала в материале о том, как устроен расширенный публичный ключ в мультиподписи.
Правило короткое. Отозвать выданный публичный ключ нельзя — у этого действия нет обратной операции. Можно лишь перестать им пользоваться, то есть перейти на другой укреплённый счёт в дереве, и укреплённая производная как раз для того и введена: утечка ключей отдельного счёта не ставит под удар мастер-ключ и соседние счета.
Резервная копия: что проверяют до уборки
Перед сменой счёта или ключа копию проверяют заново. Консолидация переносит деньги на новый производный адрес, и если копия окажется нерабочей, восстанавливать будет нечего. Проверку делают на пустом кошельке: разворачивают фразу в отдельной программе и сверяют первый адрес. Базовая рамка ответственности здесь описана в статье о том, что такое самостоятельное хранение и какую ответственность оно даёт, — без внешнего арбитра ошибка остаётся с владельцем.
Типовые ошибки при уборке доступов
- Смена пароля устройства вместо смены ключа. Пароль защищает железо, а не производные ключи, и держателя старой фразы он не остановит.
- Удаление приложения с телефона без смены счёта дерева. Ключ наблюдения мог быть скопирован до удаления.
- Обнуление разрешений на списание в счётной модели задним числом, когда лимиты уже израсходованы.
- Консолидация без обновления прошивки устройства, на котором ставится подпись: порядок и риски разобраны в инструкции о том, как обновить прошивку аппаратного кошелька и не потерять доступ к средствам.
- Опись «по памяти» вместо письменного списка. Забытый доступ остаётся открытым ровно до первой проверки.
Что делать при потере доступа в ходе уборки
Самый частый сбой — переход на новый счёт дерева без записи пути. Деньги при этом целы, но кошелёк их не находит: он ищет по стандартному пути, а средства лежат по нестандартному. Лечится описью путей производных адресов: номер счёта, назначение, дата. Такую опись удобно вести вместе с общей схемой долгого хранения, разобранной в материале о том, как организовать хранение криптовалюты, если держите активы годами.
Чек-лист
- Список устройств и программ с этим кошельком составлен письменно.
- Все выгрузки публичных ключей найдены и отмечены как неотзывные.
- Файлы незавершённых подписей собраны и удалены после консолидации.
- Разрешения на списание токенов обнулены отдельными транзакциями.
- Консолидация проведена одним выходом на свежий адрес.
- Новый счёт дерева записан: путь, дата, назначение.
- Копия фразы проверена до перехода, а не после.
- Куски из разных источников не смешаны в одной транзакции.
Материалы по теме:
- Что такое самостоятельное хранение и какую ответственность оно даёт — кто отвечает за выданный доступ и за ошибку при его отзыве.
- Как устроен расширенный публичный ключ в мультиподписи — что видит держатель выгрузки и почему её нельзя отозвать.
- Как обновить прошивку аппаратного кошелька и не потерять доступ к средствам — подготовка устройства перед подписью консолидации.
- Как организовать хранение криптовалюты, если держите активы годами — где вести опись путей и выданных доступов.
Частые вопросы
Можно ли отозвать выданный расширенный публичный ключ?
Нет, обратной операции не существует. Получатель уже сохранил ключ и будет видеть все адреса счёта и дальше. Единственный рабочий ответ — перестать пользоваться этим счётом: перейти на другой укреплённый счёт дерева или на другой ключ целиком, перенеся туда средства отдельной транзакцией.
Обезвреживает ли консолидация старые заготовки подписей?
Да, и это её побочная польза. Частично подписанная транзакция ссылается на конкретные входы. Как только те потрачены, заготовку невозможно опубликовать: узлы отвергнут её как двойную трату. Файлы всё равно стоит удалить — они раскрывают структуру кошелька и пути производных адресов.
Нужно ли менять фразу восстановления после уборки доступов?
Менять фразу имеет смысл, когда есть подозрение, что её копия попала к посторонним. В остальных случаях хватает перехода на другой счёт дерева. Смена фразы означает перенос всех средств на новый ключ, и эту операцию планируют отдельно, с проверкой новой копии до перевода.
Как убрать лишние доступы в сетях со счётной моделью?
Там непотраченных выходов нет, и консолидация ничего не отменяет. Работают две вещи: обнуление ранее выданных разрешений на списание токенов отдельными транзакциями и перевод средств на новый адрес. Каждое обнуление оплачивается газом, поэтому список сортируют по размеру лимита и закрывают сверху вниз.
Сколько входов брать в одну транзакцию при такой уборке?
Столько, сколько относится к одному источнику и одному назначению. Смешивать куски из разных контекстов ради экономии не стоит: связь между ними станет публичной навсегда. Если источников несколько, делайте несколько транзакций, даже если суммарная комиссия окажется выше.
Вердикт
Уборка доступов — работа со списком, а не с кошельком. Транзакция закрывает лишь то, что привязано к потраченным кускам; всё остальное держится на ключе и снимается только сменой счёта или ключа. Полезно развести эти два действия по времени: сначала опись и консолидация, через несколько дней — переход на новый счёт, когда список выданных ключей уже выверен и ничего не всплывает задним числом. Сверяйте перечень раз в полгода.
Первоисточники: раздел Security стандарта BIP-32 и раздел 10 оригинальной работы о биткоине.
Разборы по доступам и ключам выходят в Telegram-канале Cryptium.
Обсуждение
Добавить комментарий