60 / 691XPUB

Extended Public Key (xpub)

BIP32 拡張公開鍵

Extended Public Key (xpub) は BIP32 公開鍵、chain code、メタデータをまとめたもので、秘密鍵を明かさずに HD wallet の一つのノード以下の非 hardened 公開鍵を派生できる。

xpub は Bitcoin address でも署名鍵でもない。BIP32 ツリーの一ノードをエクスポートし、watch-only wallet や受取サーバーが下位の公開鍵とアドレスを生成できるようにする。通常は支出できないが派生ブランチを観察でき、アドレスの意味は裸の xpub だけでは不十分な derivation path と script policy にも依存する。

BIP32 は拡張公開鍵を公開点 K と 32 バイトの chain code c の組として表す。シリアライズには version bytes、depth、parent fingerprint、child number も入る。xpub は単一の address や通常の public key ではなく、階層ノードと公開ブランチを続けるためのデータである。

CKDpub は parent public key、chain code、index を HMAC-SHA512 で組み合わせる。0 から 2³¹−1 の index では child public key と新しい chain code を生成し、署名秘密なしで receive/change address を作れる。派生できるのはエクスポートしたノードの子孫だけで、兄弟や祖先ではない。

Hardened index は 2³¹ から始まり、アポストロフィまたは h で表す。計算に秘密データが必要なため parent xpub からの CKDpub は失敗する。Wallet は通常 purpose、coin type、account を hardened にしてから account xpub を出力し、他の hardened account を隔離する。

BIP32 シリアライズは 78 バイトで、version、depth、parent fingerprint、child number、chain code、33 バイトの key material からなる。Base58Check では 111 文字となり、mainnet public は xpub、testnet は tpub で始まる。接頭辞は version bytes の結果で、別種の暗号鍵ではない。

xpub は派生鍵が P2PKH、wrapped SegWit、native SegWit、Taproot、multisig のどの script を作るか示さず、key origin がなければ位置も曖昧である。SLIP-0132 は ypub、zpub などをヒントとして導入したが、descriptor は script、fingerprint、path、xpub、wildcard、checksum を明示する。

account xpub を持つ者は、そのブランチの非 hardened receive/change public keys をすべて計算し、取引と残高を関連付けられる。税務ソフトに渡す、または公開 block explorer に貼ると永続的な口座ビューが生まれ、ネットワーク情報や本人情報と on-chain 履歴が結び付く可能性がある。

xpub 単体は通常署名できない。しかし BIP32 の重大な例外として、parent xpub と非 hardened 子孫一つの private key が揃うと parent private key と残りのブランチを復元できる。したがって xpub は機微情報として保護し、account 境界を hardened にする。

Watch-only wallet は xpub を監視し、未署名 transaction を作って署名機器へ渡せる。店舗サーバーは xprv を保存せず固有の受取 address を生成できる。これはサーバー侵害後の直接盗難を抑えるが監視は防がず、受取 address は信頼できる機器画面で確認すべきである。

Multisig では自分の seed だけが wallet 構成ではない。正確な復元には cosigner public keys、threshold、script type、derivation data が必要で、descriptor は裸の xpub 群より policy を明確に保存する。8 桁の master fingerprint は照合用で、本人証明ではなく衝突し得る。

インポート前に network、account、derivation path、script type、receive/change ブランチ、index 範囲を確定する。信頼できる機器で xpub または descriptor を比較し、複数の address を派生して元 wallet と照合する。プライバシー喪失を理解せず第三者 explorer に送ってはならない。 出典: BIP 32 — Hierarchical Deterministic Wallets; BIP 380 — Output Script Descriptors General Operation; SLIP-0132 — Registered HD Version Bytes; Bitcoin Core — Output Descriptors; Trezor — What Is a Public Key (XPUB)?.

理解を深めるには、この項目とあわせて次もお読みください HD Wallet, Watch-only Wallet, Bitcoin のプライバシー, Derivation Path, Bitcoin, Output Descriptor. 次の項目からも参照されています HD Wallet, Cold Storage, Watch-only Wallet, Output Descriptor.

DOC · 001BIP 32 — Hierarchical Deterministic Wallets仕様 ↗DOC · 002BIP 380 — Output Script Descriptors General Operation仕様 ↗DOC · 003SLIP-0132 — Registered HD Version Bytes仕様 ↗DOC · 004Bitcoin Core — Output Descriptors文書 ↗DOC · 005Trezor — What Is a Public Key (XPUB)?文書 ↗
2026年8月1日確認一次資料を優先 · 投資助言ではありません