

2026年9月25日,Bitcoin Core 合并了一项重要的安全加固措施。该措施防止其签名代码在针对没有对应输出的 SIGHASH_SINGLE 输入时产生分离式签名(detached signature),从而关闭了一个可能导致支付收款人被更改而无需暴露所有者私钥的安全缺口。
SIGHASH_SINGLE 的设计初衷是将交易输入绑定到同索引的输出上,使签名与特定的资金去向绑定。当匹配的缺失输出不存在时,这种绑定关系就会失效:在旧版(Legacy)交易中,哈希固定值为1;而在 SegWit v0 中,hashOutputs 被置零。这导致生成的签名实际上并未承诺给任何具体的接收方。
这一问题的实际后果非常严重。在这种边缘情况下产生的签名,即使输出地址被替换,依然保持有效,因为签名摘要从未包含过目的地信息。据相关技术分析指出,旧版输入面临额外风险:只要“缺少输出”的条件持续存在,针对同一密钥控制的其它 UTXO,攻击者可以重用这种缺失输出的 SIGHASH_SINGLE 签名。
该修复方案的贡献者 Matias Furszyfer(furszy)在提交请求中写道:“SIGHASH_SINGLE 仅承诺输入索引处的输出。如果该位置不存在输出,则它不承诺任何输出……这意味着即使输出被交换,签名仍然有效。这是一个‘操作陷阱’,使得资金可以在未经所有者同意的情况下被重定向。”
此攻击不需要提取任何私钥。攻击者完全利用合法生成但范围错误的签名进行操作,使得仅通过密钥卫生检查很难发现此类攻击。鉴于比特币当前交易价格接近 85,400 美元,即使是 modest 的 UTXO 集合,该漏洞也具备真实的货币价值风险。
PR #35984 将缺失输出的检查移入了 CreateSig 这一共享签名原语中。由于 SignTransaction、SignPSBTInput 以及未来的任何签名路径都会调用 CreateSig,因此它们今后都不会产生危险的签名。关键在于,同一 PSBT 中的其他有效输入不受影响,并继续正常签名。
在修补之前,SignTransaction 已经规避了该边缘情况,但 SignPSBTInput(进而影响 walletprocesspsbt)仍可能对其进行签名。这种不对称性意味着依赖 PSBT(BIP174)进行离线或硬件签名的钱包流程存在风险,而直接签名看似安全。将检查整合到 CreateSig 中消除了这种差异。
该修复不会静默地生成错误的签名,而是完全拒绝签署受影响的输入。使用 walletprocesspsbt 的运营商将会看到这些输入被跳过,而不是收到可篡改的授权指令。虽然比特币第四季度展望仍受宏观因素影响,但钱包层面的卫生标准现在少了一个隐藏的故障模式需要考量。
截至 2026 年 10 月 4 日,该安全措施位于 Bitcoin Core 的开发主分支上。撰写本文时,尚未确定已标记的生产版本或确认的后移植时间表。实施自身 PSBT 签名逻辑的下游钱包软件和硬件签名器需要进行单独审查,以确定它们是否独立受到影响。
目前未分配 CVE 标识符,公开材料中也没有受影响钱包提供商版本的 definitive 列表。用户应在得出操作结论之前,密切关注官方 Bitcoin Core 发布说明,以查看纳入 PR #35984 的版本。比特币近期突破 85,000 美元的卖压墙信号表明链上活动持续,这使得及时采用签名安全加固措施成为托管和非托管钱包维护者的实际优先事项。
比特币和以太坊 ETF 的每周资金流向图也凸显了机构对比特币敞口的增长,提高了任何可能在钱包层面重定向资金的签名层漏洞的操作风险。
声明:文章不代表币圈网立场和观点,不构成本站任何投资建议。内容仅供参考!
免责声明:本站所有内容仅供用户学习和研究,不构成任何投资建议.不对任何信息而导致的任何损失负责.谨慎使用相关数据和内容,并自行承担所带来的一切风险.