Детерминированное дерево вместо несвязанных ключей
Старые кошельки могли создавать множество независимых случайных ключей, поэтому резервная копия должна была охватывать и новые ключи. BIP 32 описывает иерархический детерминированный кошелёк: из одного корневого seed он выводит дерево родительских и дочерних ключей. Одинаковый корень и одинаковые правила вывода дают одинаковые ключи.
Расширенный открытый ключ позволяет watch-only-кошельку выводить адреса получения без возможности подписывать. Но его раскрытие может показать историю и балансы целой ветви, поэтому это не обычный публичный адрес для беззаботной публикации.
Что делает BIP 39
BIP 39 кодирует от 128 до 256 бит созданной компьютером энтропии и короткую контрольную сумму в 12, 15, 18, 21 или 24 слова. Это не случайное предложение, придуманное человеком. Порядок, точное написание и выбранный словарь являются частью данных.
Определённая функция создаёт из мнемоники и необязательной passphrase 512-битный seed, который может использовать BIP 32. BIP 39 — прикладной стандарт, а не правило консенсуса Биткоина, и его поддерживает не каждый кошелёк. Одно число слов не доказывает ни совместимость, ни качество реализации.
- слова представляют компьютерную случайность и контрольную сумму
- те же слова с другой passphrase создают другой seed
- seed — корень; отдельные адреса появляются при дальнейшем выводе
Почему правильные слова могут показать пустой кошелёк
Кошельки используют пути вывода и разные типы выходов: legacy, нативный SegWit или Taproot. Если программа восстановления ищет в другой ветви или иначе интерпретирует seed, она может показать нулевой баланс, хотя ключи не потеряны. Значение также могут иметь аккаунт, сеть и descriptor.
Поэтому в план резервирования входят название или стандарт кошелька, тип адреса, возможная passphrase и подходящие технические данные — но не вместе так, чтобы любой нашедший сразу получил всё. Восстановление следует проводить по документации совместимой программы.
Seed даёт возможность расходовать
Получивший seed и необходимую passphrase может вывести ключи на своём устройстве и подписать перевод. Исходное оборудование и разрешение производителя ему не нужны. Поэтому seed не фотографируют, не отправляют сообщением и не вводят на сайте, обещающем проверку или поддержку.
Контрольная сумма обнаруживает часть опечаток, но не кражу и не слабую фразу, придуманную человеком. Надёжный кошелёк должен создать seed из качественной случайности. Самостоятельно выбранные слова или онлайн-генератор могут дать предсказуемый либо уже раскрытый корень.