本文へスキップ
buybitcoinsmart

用語集 / アドレスと鍵

マスターチェーンコード

別名はマスター秘密鍵です。

マスターチェーンコードとは?
マスターチェーンコードは、シードの64バイトのハッシュの右半分であり、HDウォレットのツリーの深さゼロに位置するマスター秘密鍵と対になるものです。

BIP-32で規定されています。

今後使用するすべての鍵は、この1組のペアから派生します。シードに対してASCII文字列Bitcoin seedを鍵としてHMAC-SHA512を1回通すと64バイトが返り、最初の32バイトがマスター秘密鍵に、最後の32バイトがマスターチェーンコードになります。シードをコピーすれば、その下にあるすべてをコピーしたことになります。バックアップが書類棚ではなく1つの文章である理由は、まさにそこにあります。

仕組み

マスターの生成は、ウォレットの作成時にちょうど1回だけ実行されます。BIP-32は128ビットから512ビットの間のシードを受け付け、256ビットを推奨し、それを上記の鍵付きハッシュに通します。出力されるペアは、すべての導出パスの先頭にmとして書かれるノードであり、その上には何も存在しません。

この手順には有効性の検査が隠れています。左側の32バイトがゼロになった場合、またはsecp256k1曲線の位数以上の数になった場合、BIP-32はそのシードを無効と宣言し、実装はそれを拒否しなければなりません。どちらのケースに当たる確率も2の127乗分の1未満であるため、これまでに報告したウォレットはありませんが、この規則があるからこそ、受け入れられたすべてのシードが曖昧さなく使用できるのです。

シリアライズされると、ルートは自らを名乗ります。メインネットの拡張秘密鍵はバージョンバイト0x0488ADE4を持ち、xprvとして表示されます。拡張公開鍵は0x0488B21Eを持ち、xpubとして表示されます。ルートでは深さのバイトが0x00であり、親のフィンガープリントと子番号はいずれも4バイトのゼロです。指し示す親が存在しないためです。

実際に扱う番号は生のバイトではなくフィンガープリントです。マスター公開鍵をSHA-256で、続いてRIPEMD-160でハッシュ化し、最初の4バイトを残すと、そこから導出できるものを何も明かさずにウォレットを識別する8文字の16進文字列が得られます。

表示される場所

一般向けソフトウェアはマスターペアを完全に隠し、代わりにフィンガープリントを表示します。Sparrowは各キーストアの横にそれを表示し、Bitcoin Coreはlistdescriptorsの出力の各行を角括弧に入れたその値で始め、Coldcardはホーム画面にそれを表示するため、デバイスが現在どのシードを保持しているかを確認できます。PSBTが届くと、署名デバイスは鍵の出所フィールドにあるフィンガープリントを自身のものと照合してから、その要求が自分宛てかどうかを判断します。

マルチシグでは、ルートの識別情報が単なる豆知識ではなくなります。2-of-3ウォレットは3つのシードフレーズだけでは復元できません。再構築には各共同署名者のフィンガープリントとパスも知る必要があるためです。だからこそ、真剣なマルチシグツールはウォレットディスクリプタを単語の隣に保管するよう指示し、ディスクリプタを失うと、どの単一のフレーズでも到達できないコインが取り残される可能性があるのです。

マスター秘密鍵に直接触れる唯一の場面はインポートです。xprvをソフトウェアに貼り付けると、ツリー全体、つまりすべての目的、すべてのアカウント、すべての将来のアドレスを一度に引き渡すことになり、許可を1つの枝に絞る方法はありません。ルートには部分的なバージョンが存在しないため、ハードウェアウォレットはそのエクスポートを一切拒否します。

マスターチェーンコードvsシードフレーズ

フレーズが先にあり、マスターペアはその次であり、両者は異なる標準に属します。BIP-39は12語または24語を2,048回のPBKDF2の実行によって512ビットのシードに変換し、続いてBIP-32がそのシードをマスター秘密鍵とマスターチェーンコードに変換します。この層は十分に独立しているため、パスフレーズを追加するとシードが変わり、したがってマスターペアとその下のすべてのアドレスが変わりますが、カードに書かれた単語はまったく同じままです。Electrumは反対側からこの点を示します。同社のリカバリーフレーズはBIP-39ではなく、それでも通常のBIP-32のルートを生成します。

混同しやすい用語

よくある質問

ウォレットが繰り返し表示するマスターフィンガープリントとは何ですか?

これはルート鍵の8文字の識別子であり、マスター公開鍵のハッシュの最初の4バイトから取られます。ウォレットと署名デバイスは、トランザクションやディスクリプタが自分が保持するシードに属するものかを確認するために、これを使用します。

マスター秘密鍵をエクスポートしたり保管したりすべきでしょうか?

いいえ。xprvはすべてのアカウントとすべての将来のアドレスの管理権を一度に与えるものであり、あなたからそれを受け取る必要のあるウォレットはありません。代わりにリカバリーフレーズをバックアップし、ウォッチオンリーのアクセスが必要な場合にのみ、アカウントレベルの拡張公開鍵をエクスポートしてください。

関連用語

アドレスと鍵のその他の用語

このページを英語で読む