跳到主要内容
ecdsa.com

SIGHASH 标志

附加在比特币签名末尾的字节,用于选择签名覆盖交易的哪些部分:ALL(0x01)、NONE(0x02)、SINGLE(0x03),可与 ANYONECANPAY(0x80)组合,另外还有 Taproot 的默认值 0x00。
其他写法sighashSIGHASH_ALLSIGHASH_ANYONECANPAYsighash type

SIGHASH_ALL 覆盖所有输入和输出,钱包几乎总是使用它;NONE 对输出不作约束,SINGLE 只覆盖与该输入索引相同的输出,ANYONECANPAY 允许他人添加输入(类似众筹)。Taproot 的 SIGHASH_DEFAULT(0x00)效果与 ALL 相同,并省去这个字节。BIP-143(SegWit v0)和 BIP-341(Taproot)定义了摘要的构造方式,其中包括输入金额,因此硬件钱包能够验证手续费。

PSBT 中出现不寻常的标志是危险信号:签名者一旦被诱骗使用 SIGHASH_NONE 或 SINGLE,别人就能把资金转到别处。除非协议确实需要,签名者应当拒绝非默认标志。

标准与参考资料

全部术语