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

BIP 49

P2SH にネストした P2WPKH アカウントの導出方式

原題: Derivation scheme for P2WPKH-nested-in-P2SH based accounts

Status
Deployed
Type / Layer
Specification / Applications
Author
Daniel Weigl
割り当て日
Status 検証日
原文
github.com/bitcoin/bips/blob/master/bip-0049.mediawiki

要約

SegWit のアドレスを P2SH に入れ子にした形(P2WPKH-nested-in-P2SH)で使うための導出方式を定めた提案です。purpose に 49' を入れることで、BIP44 の階層構造はそのままに、SegWit 専用のアカウントを分離します。分離する理由は復元時の事故を避けることにあります。同じ seed を仕様に対応していないウォレットへ持ち込んだとき、アカウントは見えるのに一部の UTXO だけが見つからないという中途半端な状態が起きると、利用者は残高が減ったと誤解しかねません。purpose で分けておけば、対応しないウォレットではそのアカウント自体が現れないので、見えているものは正しいと言えます。入れ子にする理由は後方互換です。witness program をハッシュして P2SH アドレスにすると、SegWit を知らない送金側のソフトウェアからも「3」で始まる普通のアドレスとして扱え、受取側だけが先に SegWit へ移行できます。拡張鍵には通常の xpub / xprv とは別のバージョンバイト(mainnet では ypub / yprv)を用います。

技術的意義

SegWit への移行期に、送る側の対応を待たずに受け取り側から恩恵を受けられる経路を作った規格です。ネイティブ SegWit(BIP84)に送れる送金元が広がった現在は新規に選ぶ理由が薄れていますが、この方式で作られたアドレスは今も使われており、ウォレットは復元互換のためにこのパスを引き続き走査します。

関連する BIP

関連する解説記事

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

bitcoin/bips で原文を読む