BIP-84为原生P2WPKH分配purpose 84。路径不只是一个字符串:网络、账户、外部/找零链和扫描范围共同决定能否恢复出原地址。
本文用完整路径实例解释派生与恢复,不重复BIP-44的一般五层定义。
读懂m/84’/0’/0’/0/15
| 层级 | 值 | 含义 |
|---|---|---|
| purpose | 84’ | 原生P2WPKH用途 |
| coin_type | 0’ | 比特币主网;测试网通常使用1’ |
| account | 0’ | 第一个账户 |
| change | 0 | 外部收款链;1为内部找零 |
| address_index | 15 | 该链第16个地址 |
前三层硬化,后两层非硬化。得到子公钥后做HASH160,构造version 0、20字节见证程序,再编码为主网bech32地址。zpub可以提示用途,但它仍携带深度、父指纹和子编号;把xpub字符串前缀替换成zpub不会改变里面的公钥派生历史,也不能证明路径正确。
三个必须保留的事实
- 五层路径:BIP-84规定原生P2WPKH账户路径m/84h/coin_typeh/accounth/change/address_index,前三层为硬化派生。
- 公钥到P2WPKH:接收公钥哈希被编码为version 0见证程序,主网扩展公私钥可使用zpub与zprv版本字节表达用途。
- zpub版本:恢复仍需知道网络、账户、外部与找零链和扫描范围;不同钱包对zpub显示和账户发现支持可能不同。
操作前后逐项勾选
- 确认助记词或扩展公钥对应的网络和主指纹
- 按84、coin_type、account三层硬化派生账户
- 分别扫描外部链0与找零链1
- 把子公钥转成P2WPKH见证程序并核对地址
- 扩大扫描范围时记录最后使用索引和gap
故障与停止条件
| 误判 | 正确处置 |
|---|---|
| 只扫描外部地址,漏掉找零余额 | 保留原始证据,停止外推并按本文步骤复核 |
| 把主网coin_type用于测试网或反向混用 | 保留原始证据,停止外推并按本文步骤复核 |
| 仅替换xpub/zpub文本前缀就宣称转换完成 | 保留原始证据,停止外推并按本文步骤复核 |
zpub版本的最小测试集
正常样本应使用已知网络、已知对象和可复查输入。先完成“确认助记词或扩展公钥对应的网络和主指纹”,再执行“按84、coin_type、account三层硬化派生账户”,把未经格式化的请求、返回或字节与页面展示分开保存。验收者不读取作者结论,只依据五层路径和公钥到P2WPKH重做一次;若得到相同结果,才把这一条标为已复现。正常样本只证明这组输入成立,不能自动覆盖另一个网络、版本、账户或区块状态。
边界样本要故意触发“只扫描外部地址,漏掉找零余额”所对应的错误条件。正确实现应指出失败发生在输入、解析、状态还是权限层,并保留原始错误;它不应悄悄改用默认网络、跳过未知字段、把null转换成零,或用上一次成功缓存填充。第二个反例围绕“把主网coin_type用于测试网或反向混用”设计,只改变一个变量,以便确认系统确实在检查主题专属条件。
状态变化样本用于验证恢复扫描。先在时点A完成“分别扫描外部链0与找零链1”,再让网络状态、对象所有权、节点视图或费用条件发生一个可控变化,在时点B重做读取。页面必须展示两次证据各自的时间与上下文,不能用B的结果覆盖A,也不能继续沿用A的完成状态。
交付页面至少分成三栏:原始证据栏保存关键字节、整数、地址或状态码;解释栏写明采用的规范、公式与单位;结果栏只使用“已确认、被否定、待核验”三种状态。遇到“仅替换xpub/zpub文本前缀就宣称转换完成”时,结果必须停在待核验,并提示用户回到“把子公钥转成P2WPKH见证程序并核对地址”。这样的测试记录既能发现事实错误,也能发现索引、缓存和界面把正确底层数据展示错的问题。
来源、增量与风险边界
| 来源 | 本文用途 |
|---|---|
| Bitcoin Improvement Proposals | 正式接口、字段与规范语义 |
| BIP-32 | 实现路径、兼容性或安全边界 |
本文资料读取于2026-07-20。导入扩展公钥前必须确认其深度与父指纹,不能只改字符串前缀来转换地址类型。
站内相邻主题可继续阅读:BIP-32派生、地址编码检查。恢复钱包时不要把助记词输入网页或在线脚本。先用观察公钥和少量地址核对路径,再在可信环境扩大扫描。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。