本文へスキップ
ecdsa.com

BIP-32(階層的決定性ウォレット)

1 つのシードから HMAC-SHA512 とチェーンコードを使って鍵のツリーを導出する Bitcoin の標準で、1 つのバックアップですべてのアドレスをカバーでき、拡張公開鍵を使えば秘密鍵なしで受取アドレスを導出できます。
別表記BIP-32BIP32HD wallethierarchical deterministicchain code

マスター鍵とチェーンコードは HMAC-SHA512("Bitcoin seed", seed) から得られます。インデックス i の子は、親のチェーンコードを鍵として、親の公開鍵(通常の導出、i が 2³¹ 未満)または親の秘密鍵(強化導出、i が 2³¹ 以上、i' と表記)に HMAC を計算して得られます。拡張鍵は、バージョン、深さ、親のフィンガープリント、インデックス、チェーンコード、鍵からなる 78 バイトにシリアライズされ、Base58Check で xprv… または xpub… としてエンコードされます。

通常の導出には危険な落とし穴があります。xpub と、強化されていない子の秘密鍵が 1 つでもあれば、親の秘密鍵が判明してしまいます。そのため、共有している xpub の下で導出した子の秘密鍵は決して公開してはいけません。標準パス(m/84'/0'/0')の強化された階層が、このリスクを封じ込めます。Ethereum のウォレットも secp256k1 上で同じ方式を使っています。

規格と参考文献

すべての用語