比特币隔离见证之前最主流的三种输出脚本——P2PK、P2PKH 与 P2SH,都能被 BIP-381 定义的 pk()、pkh()、sh() 描述符写成一行的文本。本文拆解这三种表达式的产出脚本、sh() 只能放在顶层的位置约束、redeemScript 的角色,以及从旧钱包迁移到描述符时该核对哪些地方。
汇总与「描述符」相关的文章,帮助你系统了解该主题。
比特币隔离见证之前最主流的三种输出脚本——P2PK、P2PKH 与 P2SH,都能被 BIP-381 定义的 pk()、pkh()、sh() 描述符写成一行的文本。本文拆解这三种表达式的产出脚本、sh() 只能放在顶层的位置约束、redeemScript 的角色,以及从旧钱包迁移到描述符时该核对哪些地方。
BIP-352 静默支付让一个固定地址反复收款而链上不留关联,但钱包怎么备份和交接这种密钥,长期没有标准格式。2026 年 2 月立项的 BIP-392 提出 sp() 输出脚本描述符,用 spscan 与 spspend 两种密钥表达式把扫描钥和支出钥装进描述符体系。本文讲解它的语法、编码和适用边界。
Taproot 的 P2TR 输出可以携带一棵脚本树,BIP-386 定义的 tr() 描述符把内部密钥与脚本树写进同一行表达式。本文拆解单密钥与带树两种形态的计算规则、x-only 密钥限制、两种非法嵌套,以及恢复备份时应核对的要点。
不是所有脚本都来自自己派生的密钥。BIP-385 的 raw() 与 addr() 描述符把任意已有输出脚本或任意地址包装成描述符,喂给扫描与工具链。本文讲两者的分工与失效边界:raw 只收十六进制、addr 只收合法地址、二者禁止嵌套,以及包装别人的地址时"扫描可得、签名不可得"的含义。
Bitcoin Core 的 combo() 描述符把一把钥匙同时展开成 P2PK、P2PKH、P2SH-P2WPKH、P2WPKH 四种脚本,是新旧钱包格式之间的一座桥。本文拆解 combo 的产出规则、什么时候它只出两种脚本、它如何终结"换地址类型要不要重扫"的困扰,以及使用时的三个核对点。
描述符能还原地址,却带不出“从哪个区块开始扫”“间隙容忍多大”这些运营参数。BIP-393 用问号加键值对的查询串写法,把起始高度、间隙上限等元数据拼进描述符字符串,且不动校验和算法。本文讲解这套语法与恢复场景。
钱包通常要备份两条几乎一样的描述符:收款一条、找零一条。BIP-389 允许在派生路径里写一个分号分隔的候选组,比如同一层的两个编号,让一条字符串展开成两条完整描述符。本文讲解这套语法、展开规则与常见误解。
getaddressinfo里的solvable只表示钱包知道脚本的花费路径,并不保证私钥就在当前钱包。本文把ismine、desc、parent_desc与外部签名器放进能力矩阵,帮助排查watch-only和描述符钱包。
listdescriptors 能盘点钱包全部描述符及活动、范围和派生状态。本文说明 private 参数风险、找零识别、next_index复核和最小暴露审计格式。
Bitcoin Core migratewallet 会把传统钱包迁移为描述符钱包,并生成恢复备份。本文给出迁移前冻结、长请求保护、返回对象核对和恢复演练清单。