32 / 736COLD

Cold Storage

日常のオンライン端末から鍵を分離する保管

ビットコインそのものを金庫やUSBメモリーにしまうわけではありません。コインの記録はネットワークにあり、守るのはそれを使うための鍵です。Cold Storage は鍵を日常のオンライン端末から分離します。長く安全に保管するには、確かなバックアップと実際に試した復元手順も必要です。

Cold Storageとは、ビットコインの秘密鍵を日常使うインターネット接続済みのパソコンやスマートフォンから分離して管理することです。鍵は、支払いを許可したことを検証できる署名を作ります。署名端末の電源が切れていても、オンラインで残高を確認し、入金を受け取れます。送金には端末の署名か、安全に復元した鍵が必要です。分離は遠隔攻撃を減らしますが、バックアップや支払いの確認の代わりにはなりません。

Aliceはビットコインを長く保有したいと思っていますが、ノートパソコンは仕事、メール、ファイルのダウンロードにも使います。パソコンが侵害されたとき、貯蓄の鍵までそのまま攻撃者に渡るのは避けたいところです。そこで鍵を別の信頼できる端末で作り、その中に保管します。パソコンのアプリに移すのは、ウォレットの状況を見るための公開情報だけです。それまで使っていたウォレットから、事前に確認した受取アドレスへビットコインを送るとき、署名端末は電源を切ったままで構いません。支払いはネットワークに記録され、アプリはその承認状況を表示します。お金の入ったファイルを端末へダウンロードするわけではありません。1か月後、Aliceは一部を別の相手に送ることにします。パソコンが送金先、金額、手数料を含む案を作ります。Aliceはそれを署名端末に渡し、端末の画面で内容を確認してから承認します。端末は秘密鍵を外に出さずに、支出の許可を示すデジタル署名を作ります。署名済みの取引をオンラインのアプリへ戻し、アプリがネットワークに送信します。この役割分担がCold Storageの要点です。名称だけでは、端末の品質、表示アドレスの正しさ、故障後にAliceが復元できるかどうかは分かりません。 [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 と、残額を自分のウォレットへ戻すお釣り(change)の UTXO を見つけ、有効な署名を作れることが必要です。単語の一覧が受理されただけでは足りません。信頼できる端末で試してください。端末や規則を変える前には少額で一連の流れを試します。漏えいが疑われたら新たな独立した鍵を作り、安全に資金を移します。新構成を確認するまで古い復元資料を捨てないでください。 [7] [9] [10]

スクリプトはビットコインを使える条件を定めます。拡張公開鍵xpubからは、ウォレットの該当する枝の公開鍵をさらに導出できます。それらからアドレスを作るには、支出条件を定めるスクリプトの種類も分かっている必要があります。xpubだけでは支払いに署名できません。オンラインのコーディネーターは、ウォレットの公開情報を持つアプリです。UTXO を探し、アドレスを導出して未署名トランザクションを作ります。秘密鍵は署名端末に置きます。Output Descriptor はスクリプトと鍵の由来を記述し、チェックサムは転記ミスの検出に役立ちます。公開ディスクリプターや xpub だけでは通常支出できませんが、アドレスや残高は知られ得ます。侵害されたコーディネーターは送金先もすり替えられます。 [4] [8] [15]

BIP174 の PSBT は未署名トランザクションと署名に必要な情報を運びます。データは識別子と値を組にした一覧であるマップにまとめられます。取引全体のマップに加え、各入力と出力にも個別のマップがあります。ファイル先頭のバイトは 0x70 0x73 0x62 0x74 0xff です。コーディネーターが情報を用意し、端末が署名を追加します。署名の結合と最終処理の後、完成したトランザクションを送信できます。オフライン端末は独自の UTXO データベースを必要としません。BIP370 は PSBT v2、BIP371 は Taproot 用フィールドを定めています。互換性は事前に確認します。 [1] [2] [3] [6] [7]

承認前に、信頼できる画面で受取先、金額、手数料または手数料率、自分のウォレットへ残りを返す change 出力を確認します。表示された入力と sighash モード、つまり署名が取引のどの部分を対象とするかを決める方式にも注意します。BIP174 は、提案された change が期待するウォレットのものかを確認するよう求めています。パソコンが付けたラベルだけでは不十分です。大きな支払いでは別の独立した、相手を認証できる経路でアドレスを確かめ、必要なら二人目にも確認してもらいます。 [1] [11] [12]

m-of-n では n 個の鍵のうち m 個が署名に必要です。紛失しても m 個以上が使えるなら復旧できます。一方、攻撃者が単独で支出するには m 個以上を手に入れる必要があります。この二つの条件を混同しないでください。Seed だけでは再構成できないこともあるため、xpub、鍵の順序、導出パス(各鍵を計算するまでの手順)、スクリプト形式を含むディスクリプターや Bitcoin Secure Multisig Setup (BSMS) 設定も保存します。複雑さを増す意味があるのは、管理し復元できる場合だけです。 [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文書
改訂日: 一次資料を優先 · 投資助言ではありません