BIP 341(Taproot)
一句话定义: 定义 Taproot:SegWit v1 输出直接以调整后的 x-only 公钥作为地址,密钥前没有哈希层。
BIP-341 定义 Taproot——SegWit 版本 1 输出:以一把调整过的 x-only 公钥直接作为地址。2021 年 11 月在区块高度 709,632 作为软分叉激活,与 BIP-340(Schnorr 签名)和 BIP-342(Tapscript)同批。
头条级结构选择:公钥前面没有哈希层。 bech32m 地址(bc1p... 开头的那串)就是一个 32 字节的调整后 x-only 公钥,直接呈现在读链人眼前。旧的哈希型地址(P2PKH、P2WPKH)把公钥藏在 160 位哈希后面,直到花费才暴露。P2TR 不藏。每个 P2TR 输出在创建的那一刻就把公钥放上了链。
这一选择让密钥路径与脚本路径花费在线上看起来完全一致——脚本树承诺被折叠进密钥调整(tweak),而非独立的哈希层——也是 P2TR 输出在后量子语境下「始终暴露」的原因:无论输出将来是否被花费,公钥从输出创建那一刻起就是法证可达的。
两条花费路径
P2TR 输出可以承诺单把公钥(「内部密钥」)、一棵备选花费脚本树(「脚本路径」),或两者皆有。Taproot 调整把两者揉进一把输出密钥,不泄露存在哪些路径。
- 密钥路径花费。 一把调整后密钥上的单个 Schnorr 签名。见证恰好 64 字节。观察者无法分辨是否存在脚本路径、它们会是什么。这是常见情形,也是比特币里最便宜的花费类型。
- 脚本路径花费。 揭示默克尔脚本树的一个叶子,证明它被承诺在调整中,然后在 Tapscript 下执行叶脚本。其余分支保持隐藏。用到哪个分支,就为哪个分支付费。
由 Pieter Wuille、Jonas Nick 和 Anthony Towns 撰写。激活前经历了延长的「Speedy Trial」信令期,2021 年 6 月锁定,11 月全面激活。
规范:BIP-341。
相关词条: BIP(比特币改进提案) · Taproot · Schnorr 签名 · BIP 342(Tapscript) · SegWit(隔离见证,BIP 141) · 软分叉(Soft Fork) · 默克尔化抽象语法树(MAST) · P2WPKH(付给见证公钥哈希) · P2WSH(付给见证脚本哈希) · 公钥(Public Key) · 椭圆曲线(Elliptic Curve) · 后量子比特币(Post-Quantum Bitcoin)