BIP 39 — 決定性鍵生成のためのニーモニックコード

BIP 39: 決定性鍵生成のためのニーモニックコード

著者: マレク・パラティヌス (slush)、パヴォル・ルスナク、アーロン・ヴォワジーン、ショーン・ボウ ステータス: 提案 タイプ: スタンダードトラック 作成日: 2013年9月10日

概要

BIP 39は、決定性ウォレットの生成のためのニーモニックコード(一般的な英単語の並び)の実装を定義した。ニーモニック文は、生のバイナリや16進データよりも人間が書き留めて記憶しやすい。

仕組み

  1. エントロピー生成 — 128〜256ビットのランダムデータ
  2. チェックサム計算 — SHA-256ハッシュの先頭数ビットを取得
  3. グループ分割 — エントロピー+チェックサムを11ビットグループに分割
  4. 単語マッピング — 各11ビット値を2048語のうち1語に対応させる

エントロピーと単語数の関係:

  • 128ビット → 12単語
  • 160ビット → 15単語
  • 192ビット → 18単語
  • 224ビット → 21単語
  • 256ビット → 24単語

12単語のニーモニックは以下のようになる:

abandon ability able about above absent absorb abstract absurd abuse access accident

ニーモニックからシードへ

ニーモニック文はPBKDF2-HMAC-SHA512(2048回反復)を使用して512ビットのシードに変換される。オプションのパスフレーズにより追加のセキュリティを提供する。このシードはBIP 32でHDウォレットツリーを導出するために使用される。

意義

BIP 39は、一般ユーザーにとってビットコインのセルフカストディを実用的なものにした。「この12/24単語を書き留めてください」というオンボーディングフローは、事実上すべての暗号通貨ウォレットで普遍的になった。「ファイナル」ステータスに至らなかったにもかかわらず(一部のBitcoin Core開発者からのワードリスト結合に関する異議のため)、BIP 39は暗号通貨で最も広く採用された標準の一つとなった。

著者のマレク・パラティヌス(最初のビットコインマイニングプールであるSlush Poolの創設者として「slush」の名で知られる)とパヴォル・ルスナクは、Trezorハードウェアウォレットを開発するSatoshiLabsの共同創設者でもある。