中級者用語を調べる
BIP39とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
BIP39は、乱数を単語列に変換してウォレットのバックアップにするための仕様です。この共通規格があるおかげで、あるウォレットで作ったフレーズを別の会社のウォレットで復元できます。単語リストは2048語で、末尾にはチェックサムが埋め込まれています。
要点
- 単語リストは2048語、11ビットで1語を表す
- 最後の語にチェックサムが含まれ誤記を検出できる
- 任意のパスフレーズを追加できる仕様がある
- メーカーをまたいで復元できる互換性の根拠
定義
Bitcoin Improvement Proposal 39。乱数からニーモニックフレーズを生成し、そこからウォレットの種(シード)を導出する手順を定めた仕様。
手順は決まっています。128〜256ビットの乱数を用意し、そのSHA-256ハッシュの先頭数ビットをチェックサムとして末尾に付け、全体を11ビットずつ区切って単語に対応させます。128ビットなら4ビットのチェックサムが付いて132ビット、11で割って12語になります。256ビットなら24語です。
この単語列から、PBKDF2という処理を2048回繰り返して64バイトのシードを作ります。ここで任意の文字列(パスフレーズ)を混ぜられるのが仕様の一部で、同じ単語列でもパスフレーズが違えば完全に別のウォレットになります。何も入力しなければ空文字列として扱われます。
単語リストが公開された共通規格であることの価値は、ウォレット会社が倒産しても資産を取り戻せる点にあります。BIP39対応と書かれたウォレットであれば、フレーズを持っていれば別の対応ソフトに移せます。ただし派生パスの慣習は製品ごとに違うことがあるため、移行時はパスの確認が必要です。
注意点
- · オンラインの「フレーズ生成ツール」は使わない。生成された値が保存されている可能性がある
- · パスフレーズを設定したことを忘れると、正しい単語列があっても復元できない
- · チェックサムが通るからといって、自分が控えた語順と同じとは限らない