60 / 691XPUB

Extended Public Key (xpub)

BIP32 扩展公钥

Extended Public Key (xpub) 由 BIP32 公钥、chain code 和元数据组成,可在不暴露私钥的情况下派生某个 HD 钱包节点下所有非 hardened 公钥后代。

xpub 不是 Bitcoin 地址,也不是签名密钥。它导出 BIP32 树中的一个节点,让 watch-only 钱包或收款服务器生成该节点以下的公钥和地址。持有者通常不能花费资金,却能观察整条派生分支;地址含义还取决于裸 xpub 未完整表达的 derivation path 与 script policy。

BIP32 把扩展公钥表示为公钥点 K 与 32 字节 chain code c 的组合。序列化还包含 version bytes、depth、parent fingerprint 和 child number。因此 xpub 不是单个地址或普通公钥,而是一个层级节点及继续其公钥分支所需的数据。

CKDpub 通过 HMAC-SHA512 组合 parent public key、chain code 与索引。索引在 0 至 2³¹−1 时会产生 child public key 和新的 chain code,使在线钱包无需签名秘密即可生成 receive 与 change 地址。它只能派生所导出节点的后代,不能得到兄弟节点或祖先。

Hardened 索引从 2³¹ 开始,以撇号或 h 标记。派生需要私有数据,因此仅凭 parent xpub 无法执行 CKDpub。钱包通常把 purpose、coin type 和 account 层设为 hardened,再导出 account xpub,使其他 hardened 账户保持隔离。

BIP32 序列化共 78 字节:版本、depth、parent fingerprint、child number、chain code 和 33 字节 key material。Base58Check 编码后为 111 个字符;mainnet 公钥版本以 xpub 开头,testnet 以 tpub 开头。前缀来自 version bytes,并非独立的加密密钥类别。

xpub 本身不说明派生公钥应构成 P2PKH、wrapped SegWit、native SegWit、Taproot 还是 multisig 脚本;缺少 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,进而控制该分支。因此扩展公钥应按敏感数据保护,并用 hardened account 边界阻止风险扩散。

Watch-only 钱包可依据 xpub 监控地址、构造未签名交易,再交给签名设备。商店服务器可在不保存 xprv 的情况下生成唯一收款地址。这降低服务器失陷后的直接盗币风险,却不阻止监控;收款地址仍应在可信签名设备屏幕上核验。

在 multisig 中,自己的 seed 不是完整钱包配置;准确恢复还需要 cosigner 公钥、threshold、script type 与 derivation data。Descriptor 比零散 xpub 更精确地保存 policy。八位十六进制 master fingerprint 只用于匹配,不能证明身份,并可能碰撞。

导入前先确认 network、account、derivation path、预期 script type、receive/change 分支和索引范围。在可信设备上比对 xpub 或 descriptor,派生数个地址并与源钱包核对;除非明确接受隐私损失,否则不要把 xpub 提交给第三方 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日来源优先 · 非投资建议