Предложение BIP138 для резервного копирования кошельков Bitcoin было объединено в репозиторий Bitcoin Improvement Proposals 21 сентября, но спецификация остается в статусе Draft. Оно призвано сохранить информацию, которую мнемоническая фраза может не восстановить в сложном кошельке. Компромисс заключается в том, что третья сторона может прочитать эту информацию, если она уже владеет соответствующим расширенным публичным ключом (xpub) и получит копию зашифрованной резервной копии.
Мультиподписной кошелек требует более одного подписанта. Его дескриптор записывает публичные ключи и правила расходования, которые сообщают программному обеспечению кошелька, как реконструировать учетную запись и найти ее монеты. Мнемоническая фраза может восстановить приватные ключи одного подписанта, но потеря дескриптора все равно может сделать мультиподписной или miniscript скрипт невозможным для восстановления только по этой мнемонической фразе.
Предложение описывает другой сценарий отказа: кошелек, разработанный для выживания при потере одного сида, может также потерять публичный ключ этого подписанта. У оставшихся подписантов может отсутствовать часть скрипта, необходимая для восстановления монет. Это риски для кошельков, чья конфигурация расходов зависит от информации, выходящей за рамки сида, а не утверждение, что каждому кошельку Bitcoin требуется такое резервное копирование.
Ответом BIP138 является зашифрованный файл, содержащий дескрипторы, политики кошелька или другие метаданные, не являющиеся сидом. Материалы приватных ключей должны быть удалены перед шифрованием. Владелец соответствующего xpub из резервной копии кошелька может расшифровать копию без сида кошелька. Это раскрывает публичные ключи и структуру скрипта, необходимые для восстановления, в то время как сам по себе xpub не дает владельцу приватных ключей, необходимых для подписи.
Черновик устанавливает ограничения на то, кто может расшифровать. Публичные ключи, которые появляются непосредственно в скрипте, и корни xpub, которые могут быть раскрыты при расходовании, исключены в качестве ключей восстановления. Если ключ соподписанта исключен, этот человек не может использовать его для открытия файла. Эти ограничения не позволяют публичному ключу в блокчейне стать ключом к резервной копии вне блокчейна.

Предупреждение о конфиденциальности касается xpub, раскрытого до создания мультиподписного кошелька. Если сервер кошелька уже знает xpub учетной записи, и этот же xpub повторно используется в качестве соответствующего ключа мультиподписи, сервер сможет расшифровать резервную копию, если получит ее копию. Он сможет узнать метаданные кошелька внутри, хотя это само по себе не даст ему права на расходование. BIP описывает условное раскрытие, а не зарегистрированную утечку.
Существует публичная реализация на Rust с инструкциями по сборке из командной строки. BIP утверждает, что Liana, кошелек Bitcoin, использует более ранний формат резервного копирования, несовместимый с текущим файлом BIP138. Таким образом, слияние предложения устанавливает опубликованный черновик, а не изменение сети Bitcoin или гарантию того, что сегодняшние кошельки смогут создавать и восстанавливать этот формат.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Liam 'Akiba' Wright