メインコンテンツへスキップ

BIP 32

階層的決定性ウォレット

原題: Hierarchical Deterministic Wallets

Status
Deployed
Type / Layer
Informational / Applications
Author
Pieter Wuille
割り当て日
Status 検証日
原文
github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

要約

1 つの seed から鍵ペアの木構造を導出する「階層的決定性ウォレット(HD ウォレット)」を定義した提案。従来の実装は乱数から鍵を個別に生成していたため、鍵を使うたびにバックアップを取り直す必要があった。BIP32 は、拡張鍵(秘密鍵または公開鍵に 32 バイトの chain code を付けたもの)から HMAC-SHA512 を使って子鍵を導出する関数を定義し、seed さえ保管すればすべての鍵を再生成できるようにした。さらに楕円曲線の性質を利用して、秘密鍵を渡さずに拡張公開鍵だけを共有し、受取用アドレスを生成させる watch-only 運用を可能にする。仕様が例に挙げるのは、ウェブショップのサーバに顧客ごとの受取アドレスを作らせつつ、使用権限は渡さないという構成である。子鍵の導出には通常導出と hardened 導出(インデックス 2^31 以上)があり、後者は「親の拡張公開鍵と子の秘密鍵が同時に漏れると親の秘密鍵が復元できる」という事故を防ぐために使う。

技術的意義

今日ほぼすべてのウォレットが立っている土台である。「バックアップは seed 1 つ」という利用者体験も、ハードウェアウォレットや watch-only 監視の構成も、この派生木の上に成立している。BIP39 の seed 生成、BIP44 / 49 / 84 / 86 の用途別パスと組み合わせて使われる。

関連する BIP

関連する解説記事

このページに掲載しているのは原文の翻訳ではなく日本語の要約です。BIP は原文が正であり、Status を含むメタデータは上記の検証日時点で bips リポジトリから転記した値です。実装・検証の際は必ず原文を参照してください。

bitcoin/bips で原文を読む