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

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

Почему фразу нельзя проверить так, как проверяют слова

Разница заложена в стандартах. Набор слов по BIP-39 содержит служебные биты: часть разрядов получается из хеша энтропии, и при вводе устройство пересчитывает их, а при несовпадении отказывает в приёме. Для 24 слов таких разрядов восемь. Ошиблись в слове — отказ. Устройство не примет.

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

Схема Шамира из SLIP-39 добивает картину откровенной формулировкой: там предусмотрено три контрольных слова на каждую долю, а про строку сказано прямо — проверить правильность введённой парольной фразы невозможно. Это не недоработка, а намеренное свойство: именно оно даёт владельцу возможность держать несколько независимых кошельков на одном корне. Как слова превращаются в корень, разобрано в материале про стандарт BIP-39 и 24 слова восстановления.

Что отвергается при вводе, а что принимается молча

Тест строят по этой таблице: каждая строка показывает, кто сообщит об ошибке на входе, а кто примет неверное значение молча и переведёт оператора в кошелёк, о существовании которого тот не подозревал.

Что вводится Есть ли встроенная проверка Поведение при ошибке Чем проверяют на тесте
24 слова восстановления по BIP-39 Да, восемь служебных разрядов, вычисленных из хеша энтропии при создании набора и проверяемых устройством при каждом вводе. Устройство отказывается принять набор и требует исправить слово. Сам ввод служит проверкой: отказ означает ошибку в словах.
Доля по схеме Шамира из SLIP-39 Да, три контрольных слова в конце доли. Доля отвергается как повреждённая, порог не собирается. Ввод порогового числа долей с проверкой каждой на входе.
Парольная фраза Нет ни одного служебного разряда: стандарт не предусматривает для строки ни контрольной суммы, ни иного способа подтвердить правильность ввода. Открывается другой кошелёк с нулевым остатком и без предупреждений. Сверка отпечатка корня с эталоном, выписанным заранее.
Путь вывода адресов Нет, приложения подставляют значение по умолчанию. Отпечаток совпадает, но адреса и остаток не видны. Сверка первого адреса получения и записанного пути.
Второй PIN-код при фразе, привязанной к нему Да, неверный код отвергается устройством. Доступ не предоставляется, счётчик попыток растёт. Отдельная проверка кода без обращения к самой строке.

Слепой тест восстановления шаг за шагом

Слепой — значит по записям, без подсказок памяти. Оператор берёт только то, что лежит в хранилище, и повторяет путь человека, которому эти записи когда-нибудь достанутся без права задать вопрос автору строки.

  1. Достаньте из хранилища запись слов и запись фразы, не заглядывая в иные источники и не полагаясь на память о строке.
  2. Возьмите второе устройство или отдельный профиль приложения и восстановите корень по словам: отказ на этом шаге означает ошибку именно в словах.
  3. Введите строку в точности по записи, включая регистр и пробелы, и ничего не исправляйте «по смыслу», даже если результат выглядит неожиданным.
  4. Сверьте отпечаток корневого ключа с эталоном: совпадение знак в знак — единственное подтверждение того, что строка прочитана верно.
  5. Запросите первый адрес получения и сверьте его с записью, затем дождитесь окончания сканирования ветки и сверьте остаток.
  6. Отключите устройство от питания, повторите ввод с нуля и убедитесь, что результат воспроизводится; затем сотрите тестовое устройство.
Схема из пяти шагов: взять только записи из хранилища, восстановить корень по словам, ввести строку по записи без правок, сверить отпечаток с эталоном, повторить прогон после перезапуска
Схема из пяти шагов: взять только записи из хранилища, восстановить корень по словам, ввести строку по записи без правок, сверить отпечаток с эталоном, повторить прогон после перезапуска
Контрольная сумма набора слов по BIP-39 занимает ENT/32 бита, то есть восемь разрядов при энтропии 256 бит и четыре при 128 битах. В схеме SLIP-39 на каждую долю приходится три контрольных слова по правилам RS1024, а проверить правильность парольной фразы, по тексту стандарта, нельзя в принципе. Документация COLDCARD советует выписать расширенный отпечаток и сверять его при каждом входе, подтверждая настройку перезапуском устройства до внесения средств. Данные на 14 октября 2026 года по текстам BIP-39, SLIP-0039 и документации COLDCARD.

Эталонный отпечаток: как его завести

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

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

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

Типовые ошибки теста

  • Тест по памяти вместо теста по записи: проверяется голова оператора, а не хранилище.
  • Исправление строки «по смыслу» при первом несовпадении, после чего неизвестно, какая версия записана и какая работает.
  • Вывод о провале по нулевому остатку до окончания сканирования ветки адресов.
  • Отсутствие эталонного отпечатка: кошелёк открылся, но подтвердить, что это нужный кошелёк, нечем, и тест теряет смысл целиком.
  • Прогон один раз и без перезапуска устройства, из-за чего неустойчивое попадание принимается за воспроизводимый результат.
  • Тестовое устройство, оставленное с введённой строкой до следующего раза.

Что делать, если тест дал пустой кошелёк

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

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

Чек-лист теста восстановления

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

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

Почему устройство принимает любую парольную фразу?

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

Как часто проводить тест восстановления?

Привязывайте его к событиям, а не к календарю: смена устройства, обновление прошивки, переезд хранилища, появление второй копии записи. Из редакционной практики один прогон в год закрывает вопрос для спокойного хранения. Главное условие неизменно. Прогон идёт по записям, а не по памяти.

Можно ли тестировать фразу без второго устройства?

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

Что надёжнее для теста — отпечаток корня или первый адрес?

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

Нужно ли пополнять тестовый кошелёк, чтобы убедиться в успехе?

Нет, если эталон снят заранее и остаток на ветке известен. Пополнение требуется в другом случае — когда кошелёк создаётся впервые и эталона ещё нет, тогда небольшая сумма с подтверждением сети фиксирует рабочее состояние ветки и становится точкой отсчёта для будущих прогонов.

Материалы по теме:

Асимметрию проверок видно по первоисточникам. Текст стандарта SLIP-0039 о схеме Шамира прямо фиксирует, что правильность парольной фразы проверить невозможно, а руководство SatoshiLabs о парольной фразе описывает, почему каждая строка, включая опечатку, открывает собственный кошелёк и почему восстановить фразу нельзя.

Вердикт

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