上級者用語を調べる
BIP32とは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 6 分
結論
BIP32は、1つの種から何本でも秘密鍵を階層的に導出する仕組みを定めた仕様です。これによりアドレスを使い捨てにしてもバックアップは1つで済むようになりました。現在のほぼすべてのウォレットがこの仕組みの上に作られています。
要点
- 1つのシードから鍵を木構造で無限に導出できる
- バックアップ対象がシード1つで済む
- 拡張公開鍵で秘密鍵なしにアドレスを生成できる
- 強化導出を使わないと鍵漏洩の影響が広がる
定義
Bitcoin Improvement Proposal 32。マスターシードから親子関係を持つ鍵を階層的に導出する、階層的決定性ウォレットの基礎仕様。
BIP32以前のウォレットは、アドレスを増やすたびに独立した秘密鍵を作り、そのすべてをバックアップする必要がありました。鍵を100個作れば100個の鍵ファイルを守ることになり、バックアップ後に作った鍵は復元できません。BIP32はこれを、種から決定的に導出する木構造に置き換えました。
導出には2種類あります。通常導出では、親の公開鍵から子の公開鍵を計算できます。これを使うと、店舗のレジや寄付サイトが拡張公開鍵(xpub)だけを持ち、秘密鍵をサーバーに置かずに入金アドレスを次々生成できます。ただし、親の公開鍵と子の秘密鍵が1組でも漏れると、親の秘密鍵が逆算できてしまいます。
この弱点を塞ぐのが強化導出で、派生パスのアポストロフィ(m/44'/0' の ' )がそれを示します。強化導出では親の秘密鍵がないと子を導出できないため、子の鍵が漏れても上位に波及しません。口座レベルより上の階層に強化導出を使うのが標準的な設計です。
注意点
- · 拡張公開鍵(xpub)を公開すると、そのウォレットの全入出金履歴を第三者に追跡される
- · 強化導出を使わない階層で子の秘密鍵が漏れると、同じ階層の全資産が危険になる
- · シードを失えば、木全体の鍵が一度に失われる