跳转到正文
buybitcoinsmart

术语表 /钱包与托管

PSBT 第2版

又称 PSBTv2。

PSBT 第2版是什么?
PSBT 第2版是取消固定未签名交易的部分签名交易格式,因此参与者在文件创建之后仍可添加输入和输出。

规定于 BIP-370。

第0版在创建时就固定了输入和输出的集合;第2版则把所有细节移入各输入和各输出的映射中。BIP-370于2021年1月14日分配编号,并跳过了数字1,因为 BIP-174的格式是第0版,曾被口头称为第1版。对持有者而言,只有在签名过程中,另一位参与者向您已经发起的交易添加币时,第2版才有意义。

运作方式

PSBT 第2版保留了 BIP-174的外层容器,并重新安排了其内部内容。切换由两条规则界定:PSBT_GLOBAL_UNSIGNED_TX 必须不存在,PSBT_GLOBAL_VERSION 必须存在且设为2。

被移除的交易原先承载的内容,被分散到十二个新字段中。其中五个是全局字段:交易版本(0x02)、备用锁定时间(0x03)、输入数量(0x04)、输出数量(0x05)和可修改标志字节(0x06)。五个位于每个输入上:32字节的前序 txid(0x0e)、被花费输出的索引(0x0f)、序列号(0x10),以及两种必需的锁定时间,一种基于时间戳,大于或等于500000000(0x11),另一种基于区块高度,小于该值且大于零(0x12)。输出新增两个字段:以聪计的金额,为64位有符号小端整数(0x03),以及脚本(0x04)。

真正起作用的是可修改标志字节。位0表示仍可添加或移除输入,位1对输出表示同样的含义,位2则记录某个签名已使用 SIGHASH_SINGLE 作出承诺,因此其输入与输出的配对必须保留。签名方必须在签名过程中收紧这些位:未使用 SIGHASH_ANYONECANPAY 的签名会清除位0,未使用 SIGHASH_NONE 的签名会清除位1。继续编辑的权限会随着签名的加入而自行失效,而不是依赖下一位持有者的自觉。

BIP-370解决了缺失的交易留下的两个问题。锁定时间取各输入一致认可的最大值,若无则回退到全局字段,全局字段也不存在时则为0,且基于区块高度的要求在并列时优先。交易标识则取将所有序列号强制设为0后,由各字段组装得到的 txid,因为序列号之后仍可被编辑。

在哪里会遇到它

PSBT 第2版引入了 BIP-174中没有对应角色的构建者(Constructor)。创建者(Creator)打开文件时包含0个输入和0个输出,然后将其传递下去;构建者在检查可修改标志之后添加它们。预期会有他人贡献的创建者,还必须把交易版本至少设为2,这样依赖该版本的功能,例如 OP_CHECKSEQUENCEVERIFY,仍然可用。

第2版沿用了 BIP-174的序列化方式,因此文件从外部看起来相同,这种区分是有意为之:BIP 中的24个无效测试向量里,有13个是普通的第0版文件,因某个字段位置不当或版本号错误而被拒绝。转换比较容易,因为第2版文件可以根据自身字段重建为第0版文件。参考实现是 Bitcoin Core 的 pull request 21283,BIP 头部将状态记录为 Deployed。

在本站的41篇钱包评测中,有两篇提到 PSBT,分别是 Sparrow(评分4.7)和 BlueWallet(4.2),两者都没有指明版本。除非软件另有说明,请按第0版对待,并在让不熟悉的工具处理其余资金之前,先用小额金额测试。

PSBT 第2版 vs 交易版本号

PSBT 第2版是文件格式的编号,而交易版本号是文件内部正在组装的交易的编号。两者位于同一个全局映射中,BIP-370明确指出它们不是同一个字段。PSBT_GLOBAL_VERSION 在每个第2版文件中都是2;PSBT_GLOBAL_TX_VERSION 是所构建交易的有符号32位整数,当创建者预期会有他人贡献时,BIP-370要求其至少为2,这正是两者容易混淆的原因。更改前者,较旧的解析器会拒绝该文件。更改后者,则会改变判定该笔花费所依据的共识规则。

请勿混淆

常见问题

使用硬件钱包需要 PSBT 第2版吗?

不需要。第0版是 BIP-174定义的格式,适用于在开始任何签名之前输入和输出就已确定的普通花费。只有当另一位参与者必须向您已经发起的交易添加币时,第2版才有用武之地。

为什么没有 PSBT 第1版?

该编号是被有意跳过的。BIP-174的格式是第0版,但在设计 BIP-370期间,它被口头称为第1版,因此新格式采用了数字2,以免出现两个都叫第1版的东西。

第0版软件能打开第2版文件吗?

就目前而言不能。BIP-370通过全局版本字段有意使两种格式互不兼容,不过第2版文件可以通过根据其字段构建未签名交易,转换为第0版文件。

接着阅读

来源

最近审阅:2026年9月6日。

相关术语

钱包与托管中的更多术语

阅读本页英文版