MSTR Cat

ブロックチェーン/レベル II · 仕組み/2.1 暗号技術/レッスン 7

シードフレーズ(BIP39)

12語、チェックサム、そしてすべてを制御する512ビットのシード

用意するものBIP39英単語リスト(github.com/bitcoin/bips)ノート

問い

  1. ランダムなビット列が、16進数のままではなく12個の英単語になるのはなぜでしょうか?
  2. フレーズ内の1語を同じリストの別の単語と入れ替えると、ウォレットはどうなるのでしょうか?
  3. まったく同じ12語から、まったく異なる2つのウォレットが生成されるのはなぜでしょうか?

探究

  1. 2013年、Trezorハードウェアウォレットの開発チームを含む開発者たちによって書かれたBIP39は、生の暗号学的エントロピーを人間が読めるニーモニックに変換します。32文字または64文字の16進数を手で書き写すと誤りが起きやすい一方、単語は書くのも、読み返すのも、確認するのも簡単です。この規格は、バイナリ列と固定の辞書の単語との間の決定的な対応関係を定めており、ユーザーは短いリストを暗記するか書き留めるだけで、鍵の階層全体を復元できます。
  2. このプロセスはエントロピー、つまり128、160、192、224、または256ビットのランダムな列から始まります。このエントロピーのSHA-256ハッシュの先頭Nビットを取り、チェックサムとしてエントロピーに付加します。Nはエントロピーの長さを32で割った値です。標準的な12語のフレーズ(128ビットのエントロピー)では4ビット、24語(256ビットのエントロピー)では8ビットが追加されます。このチェックサムにより、ウォレットソフトウェアはインポート時にほとんどの転記ミスを即座に検出できます。
  3. エントロピーとチェックサムを結合したビット列は11ビットずつのセグメントに分割され、各セグメントが2,048語からなるBIP39英語リストの単語1つを指します。このリストは、手書きで転記する際の曖昧さを減らすため、最初の4文字が同じ単語が2つ存在しないように選定されています。最後のセグメントにはチェックサムの一部が含まれるため、ランダムに選んだ単語は通常チェックに通りません。ランダムな12語の並びのうちチェックサムを通過するのは約16分の1にすぎません(24語では256分の1)。
  4. 鍵生成に使われる実際のシードを導出するため、ニーモニック文とオプションのパスフレーズが、2,048回の反復を行うPBKDF2-HMAC-SHA512に入力されます。ソルトは、文字列「mnemonic」の後にパスフレーズを続けたもの(パスフレーズがない場合は「mnemonic」のみ)です。このストレッチング関数により、決定的な512ビットのシードが生成されます。パスフレーズを使用している場合、攻撃者が12語すべてを手にしていても、パスフレーズが推測に耐えるほど強力であれば、それなしにシードを導出することはできません。
  5. この仕組みにより、二層のセキュリティモデルが生まれます。ニーモニックは復元機能と基本的な誤り検出を提供し、パスフレーズは「隠しウォレット」の層として機能します。単語だけで開けるウォレットには少額のおとりを置き、メインの資金はパスフレーズの奥に保管するユーザーもいます。ただし、これは資産を失う原因にもなります。パスフレーズを忘れたり紛失したりすると、ニーモニックだけから復元する方法はないため、資金へのアクセスは永久に失われます。
  6. すべてのウォレットがBIP39に従っているわけではありません。Electrumは独自の方式を使用しており、SLIP-0039は複数者による管理のために秘密をShamirシェアに分割します。それでも、ハードウェアデバイスやソフトウェアアプリケーションとの幅広い互換性から、BIP39は依然として主流の規格です。ここで生成される512ビットのシードは、BIP32の階層的決定性(HD)鍵導出のルート入力となります。つまり、ウォレット内のすべての秘密鍵は、最終的にこの特定のフレーズとパスフレーズの組み合わせにたどり着きます。

重要な事実

  • BIP39は、128〜256ビットのエントロピーとSHA-256チェックサムを、2,048語のリストから選ばれる12〜24語に対応付けます。
  • 英語の単語リストは、最初の4文字で各単語を一意に識別できるように設計されています。
  • 2,048回の反復を行うPBKDF2-HMAC-SHA512が、ニーモニックとパスフレーズを512ビットのシードへとストレッチします。
  • 同じニーモニックに異なるパスフレーズを適用すると、まったく別の有効なウォレットが生成されます。
  • ニーモニックの単語、または対応するパスフレーズのどちらかを失うと、資金へのアクセスは永久に失われます。
  • SLIP-0039は別個の互換性のない規格で、しきい値による復元のために秘密をShamirシェアに分割します。

演習 九・六・三・一

9集める9つのウォレットまたは署名デバイスをリストアップし、それぞれがBIP39、独自の方式、またはSLIP-39を使用しているかを記載してください。
6まとめる鍵のバックアップ方法によって、9つを6つに分類してください:12語、24語、単語+パスフレーズ、Shamirシェア、マルチシグ構成、その他。
3絞り込む6つを、復元のしやすさと盗難への耐性の間にある3つのトレードオフに絞り込んでください。
1結晶化するBIP39フレーズの最後の単語が、それより前の11語と数学的に異なる理由を、1文で説明してください。

事実確認

日付、数字、主張は、下記に記載された公表資料と照合して確認しました。

インタラクティブ版で開く →

EN PT ES ZH KO RU DE FR MS