32 / 736COLD

Cold Storage

Хранение ключей вне обычного компьютера онлайн

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

Cold Storage означает хранить приватные ключи к биткоинам отдельно от повседневного компьютера или телефона с подключением к интернету. Ключи создают подписи — проверяемые разрешения на платёж. Следить за балансом онлайн и получать деньги можно даже при выключенном подписывающем устройстве. Для отправки нужна его подпись или безопасно восстановленные ключи. Разделение ограничивает удалённые атаки, но не заменяет резервные копии и проверку платежа.

Алиса хочет хранить биткоин долго, но ноутбук использует также для работы, почты и скачивания файлов. Она не хочет, чтобы взлом ноутбука сразу отдал нападающему ключи от её сбережений. Поэтому создаёт их и хранит в отдельном доверенном устройстве. В приложение на ноутбуке она переносит только публичные сведения, необходимые для наблюдения за кошельком. Когда Алиса отправляет биткоин из прежнего кошелька на заранее проверенный адрес получения, подписывающее устройство может оставаться выключенным. Сеть записывает платёж, а приложение показывает его подтверждения; файл с деньгами на устройство не скачивается. Через месяц Алиса хочет перевести часть средств дальше. Ноутбук готовит предложение: кому, сколько и с какой комиссией. Алиса передаёт его подписывающему устройству, проверяет данные на его экране и лишь затем подтверждает. Устройство создаёт цифровую подпись, доказывающую разрешение на трату, не раскрывая приватные ключи. Подписанная транзакция возвращается в онлайн-приложение, которое передаёт её в сеть. Это разделение работы и составляет суть Cold Storage. Само название ничего не говорит о качестве устройства, верности показанного адреса или способности Алисы восстановить кошелёк после поломки. [7] [11]

От обычного компьютера онлайн отделяют ключи, не биткойны. Каждый UTXO, то есть ещё не потраченный выход прежнего платежа, остаётся записанным в публичном блокчейне. Отключить уже заражённый ноутбук недостаточно; металлическая пластина со словами — резервная копия, а не подписывающее устройство. Учитывайте кражу, пожар, поломку и смерть владельца. Поэтому Glacier Protocol разделяет подготовку, пополнение, вывод, просмотр и обслуживание. [9] [10]

Слова резервной копии называют Seed Phrase. Необязательная passphrase — выбранный вами дополнительный секрет для получения ключей кошелька, а не PIN устройства. Multisig, в свою очередь, требует подписей нескольких ключей. Создайте ключи на доверенном устройстве, запишите формат копии, используемую passphrase и конфигурацию кошелька. BIP129 описывает двухэтапную настройку Multisig с проверкой ключей и общей конфигурации. Сравните адрес получения на подписывающем устройстве, а не только на компьютере. Начните с малого перевода и проверьте получение, расходование и восстановление. Сам приход платежа не доказывает, что восстановление работает. [5] [11]

Seed Phrase и используемая passphrase позволяют заново вывести ключи; для поиска нужного кошелька могут понадобиться другие данные. Другая passphrase ведёт к другому кошельку и не заменяет забытую. Доли резервной копии SLIP39 — не дубликаты seed, то есть исходных секретных данных для получения ключей: для восстановления нужно определённое число долей. Защищайте копию от кражи, фотографирования и повреждений. Никогда не вводите настоящую резервную копию на сайте или обычном компьютере онлайн. [13] [14]

Air gap убирает прямое сетевое соединение, но данные всё равно поступают, например через QR или microSD. Ошибка программы, читающей полученные данные, вредоносное внутреннее ПО устройства (прошивка) или обманчивый экран могут угрожать и такой схеме. Используйте проверенную прошивку, поддерживаемые форматы и независимую проверку транзакции. Карта не очищает заражённый компьютер, а QR не безопасен автоматически. Проводная Hardware Wallet тоже может изолировать ключи. Сам способ подключения безопасности не гарантирует. [1] [7] [12]

Учитывайте взлом помещения, тайное копирование, принуждение и восстановление наследниками. Один инцидент не должен раскрыть достаточно ключей для кражи или уничтожить столько материалов, что восстановление станет невозможным. Пломба может показать вмешательство, но не предотвращает копирование. Скрытый или отвлекающий кошелёк не гарантирует защиты от принуждения. Опишите действия и роли без лишнего раскрытия секретов. Корпоративный двойной контроль требует иной организации, чем личное хранение. [9] [10] [13]

Проверяйте состояние копий, понятность инструкций и совместимость, не раскрывая seed без необходимости. Безопасный тест должен найти нужные UTXO из полученных платежей и из сдачи, возвращённой в собственный кошелёк и создать действительную подпись; принятия списка слов недостаточно. Используйте доверенное устройство. До смены устройств или правил проверьте весь процесс малой суммой. При подозрении на утечку создайте новые независимые ключи и безопасно переведите средства. Сохраняйте старые материалы до проверки новой схемы. [7] [9] [10]

Скрипт задаёт условия траты биткоинов. Расширенный публичный ключ xpub позволяет выводить следующие публичные ключи в соответствующей ветви кошелька. Чтобы получить из них адреса, нужно также знать тип скрипта, определяющий условия расходования. Сам xpub не позволяет подписывать платежи. Онлайн-координатор — приложение с публичными данными кошелька. Он находит UTXO, выводит адреса и составляет неподписанную транзакцию; приватные ключи держит подписывающее устройство. Output Descriptor описывает скрипты и происхождение ключей, контрольная сумма помогает выявить ошибки копирования. Публичного дескриптора или xpub обычно недостаточно для расходования, но они могут раскрыть адреса и балансы. Взломанный координатор также способен подменить получателя. [4] [8] [15]

PSBT по BIP174 переносит неподписанную транзакцию и необходимые для подписи данные. Данные сгруппированы в карты — списки обозначений и соответствующих значений: для всей транзакции и отдельно для каждого входа и выхода. Файл начинается байтами 0x70 0x73 0x62 0x74 0xff. Координатор готовит данные, устройство добавляет подпись; после объединения подписей и финализации готовую транзакцию можно отправить в сеть. Офлайн-устройству не нужна собственная база UTXO. BIP370 описывает PSBT v2, BIP371 добавляет поля Taproot. Заранее проверьте совместимость. [1] [2] [3] [6] [7]

До подтверждения проверьте на доверенном экране получателя, сумму, комиссию или её ставку и выходы, возвращающие остаток в ваш кошелёк, то есть change. Обратите внимание и на показанные входы и режим sighash, который определяет, какие части транзакции охватывает подпись. BIP174 требует проверять принадлежность предлагаемой сдачи ожидаемому кошельку; надписи от компьютера недостаточно. Для значительного платежа подтвердите адрес через другой независимый, аутентифицированный канал, при необходимости со вторым человеком. [1] [11] [12]

В схеме m-of-n для подписи нужны m из n ключей. Потерю можно пережить, если остаётся хотя бы m доступных ключей. Нападающему же для самостоятельного расходования нужно получить не меньше m. Не путайте эти границы. Одних seed может не хватить для восстановления кошелька: сохраните дескриптор или конфигурацию Bitcoin Secure Multisig Setup (BSMS), включая xpub, порядок ключей, пути деривации (последовательность шагов для вычисления каждого ключа) и тип скрипта. Сложная схема полезна лишь тогда, когда вы можете ею управлять и восстановить её. [4] [5] [8]

Для полной картины прочитайте эту статью вместе с Hardware Wallet, Самостоятельное хранение, Air-gapped Wallet, PSBT, Seed Phrase, BIP 39. На эту статью также ссылаются Hardware Wallet, Watch-only Wallet, PSBT, Custodial Exchange.

DOC · 001BIP 174 — Partially Signed Bitcoin Transaction FormatСпецификация DOC · 002BIP 370 — PSBT Version 2Спецификация DOC · 003BIP 371 — Taproot Fields for PSBTСпецификация DOC · 004BIP 380 — Output Script DescriptorsСпецификация DOC · 005BIP 129 — Bitcoin Secure Multisig SetupСпецификация DOC · 006Bitcoin Core — PSBT HowtoДокументация DOC · 007Bitcoin Core — Offline Signing TutorialДокументация DOC · 008Bitcoin Core — Output DescriptorsДокументация DOC · 009Glacier Protocol — About GlacierДокументация DOC · 010Glacier Protocol — Protocol StructureДокументация DOC · 011COLDCARD — Address ExplorerДокументация DOC · 012COLDCARD — QR Scanner and PSBT SigningДокументация DOC · 013Trezor — Wallet BackupsДокументация DOC · 014Trezor — Shamir BackupДокументация DOC · 015Bitcoin Optech — Output Script DescriptorsДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией