比特币(BTC)契约第三部分:SIGHASH_ANYPREVOUT

SIGHASH_ANYPREVOUT(APO,BIP-118)是比特币Taproot升级后引入的新型签名哈希类型。其核心创新在于签名时无需绑定具体输入UTXO,仅对输出进行签名,从而实现更灵活的支出逻辑。该机制是闪电网络Eltoo改造的技术基石,可大幅降低状态存储需求,助力通道工厂与轻量级瞭望塔构建,显著提升比特币二层扩展性能。
APO允许比特币签名授权任何兼容的UTXO,而非固定的输出点。它允许为Lightning、Vault和Layer-2协议提供可重新绑定的预签名交易,而无需新的密钥管理开销。
这是Cointelegraph Research关于比特币契约的技术文章系列的第三部分。点击这里阅读上一篇文章。
SIGHASH_ANYPREVOUT,正如 BIP 118 中所述,基于 Joseph Poon 和 Thaddeus Dryja 在 2015 年 Lightning Network 论文中提到的早期SIGHASH_NOINPUT概念,后来由 Joseph Poon 于 2016 年 2 月在比特币开发邮件列表上正式提出。
SIGHASH_ANYPREVOUT不是新的操作码,而是SIGHASH标志的一个提议新值,设计用于作为比特币的软分叉升级。SIGHASH 标志附加在签名后,决定交易的哪些部分已签署,并由 CHECKSIG 操作码检查。所选的旗帜由签署者选择,而非由scriptPubKey强制执行。由于软分叉中升级的技术细节,SIGHASH_ANYPREVOUT提案仅适用于来自主根地址的支出。
如图1所示,已经存在多种标准SIGHASH模式。如果标志设置为SIGHASH_ALL,签名必须覆盖所有输入、所有输出以及具体的输出点,从而加密绑定授权到该精确的UTXO。outpoint 是交易 ID 和输出索引的组合,共同唯一标识交易正在消耗的 UTXO。而 SIGHASH_NONE 则只需对输入进行符号,输出则不受约束。SIGHASH_SINGLE变体对所有输入进行签名,但仅对与被签名输入索引相同的输出签名。ANYONECANPAY 修饰符通过允许单个输入独立签名,增加了更多灵活性。关键是,这些现有模式都不允许签名省略对出点的承诺。正是这个限制被SIGHASH_ANYPREVOUT移除了。

BIP-118定义了两种ANYPREVOUT变体,它们在摘要中省略的前一输出比例不同,如图2总结。在SIGHASH_ANYPREVOUT下,输出点被排除在摘要之外,但签名仍然承诺到之前输出的数量和scriptPubKey,以及输入的nSequence。在 SIGHASH_ANYPREVOUTANYSCRIPT 下,金额和 scriptPubKey 也被排除,这意味着签名完全不绑定在已花费输出的锁定脚本上。所有其他承诺都遵循标准的Taproot签名消息结构,并依赖于所选的基标志,如SIGHASH_ALL或SIGHASH_SINGLE。

由于摘要中省略了该输出点,同一签名可以授权使用任何满足剩余提交字段的兼容UTXO。例如,一笔以 ANYPREVOUT | 预先签名的交易如果同一地址后来收到另一个0.5 BTC的UTXO,即使用于创建原始签名的私钥已不可用,ALL可以重复使用以产生0.5 BTC的输出。但如果新的UTXO持有超过0.5 BTC,矿工将损失多余部分,除非原始签名包含变更输出。这种重新绑定特性使ANYPREVOUT在第二层协议中非常有用,因为同一预签名事务必须适用于多个可能的链上UTXO,而无需为每个协议重新签名。
对于类似契约的应用,ANYPREVOUT 变体保留对前一输出 scriptPubKey 的承诺,通常是最相关的。它们允许签名在兼容的UTXO间重复使用,同时确保资金绑定在同一锁定脚本下。ANYPREVOUTANYSCRIPT 完全去除了这种绑定,因此不太适合契约式应用。
与OP_CTV类似,SIGHASH_ANYPREVOUT改进了预签名事务已可实现的逻辑,但本身并不支持递归契约或事务内省。相反,它放松了签名与特定UTXO之间的绑定,允许签名在多个兼容的UTXO间重复使用。
一些研究还指出,移除输出点承诺使得恢复密钥构造成为可能——即公钥可以从固定签名和消息对中推导出来,使得对应的私钥对任何人都可证明未知,使UTXO的密钥路径可证明不可使用,强制任何花费通过脚本路径。这将避免临时密钥的需求,而临时密钥在依赖脚本路径强制执行的构造中是使密钥路径不可使用的关键。这一观察出现在Jacob Swambo等人(2020年)的《比特币契约:三种控制未来的方式》中,尽管它仍是理论构造,而非BIP-118中提出的设计。
SIGHASH_ANYPREVOUT签名的主要风险是签名回放。由于这些签名不承诺特定出点,只要新的 UTXO 满足剩余的已提交字段,同一签名可用于使用与原意不同的 UTXO。这种风险在特定配置中更为明显:当 ANYPREVOUT |使用单一(SINGLE)并可重新排列输出量;当存在一个独立的 UTXO,且具有相同的 scriptPubKey 和金额时,如 ANYPREVOUT;当同一公钥以兼容的文字出现时,如ANYPREVOUTANYSCRIPT;或者矿工可以影响交易排序和包含性,利用这些条件。然而,这些场景要么是故意滥用,要么是用户或开发者在协议设计时未能考虑重放条件。
在我们的下一篇文章中,我们将开始讨论作为辅助工具的操作码。这些工具扩展了比特币脚本或数据处理的表达力,但除非与其他操作码结合,否则不实现契约功能。在下一类中,我们将讨论OP_CHECKSIGFROMSTACK和 OP_CAT。
以上就是比特币(BTC)契约第三部分:SIGHASH_ANYPREVOUT的详细内容,更多关于BTC契约三:ANYPREVOUT的资料请关注脚本之家其它相关文章!
你可能感兴趣的文章
-
K33表示,比特币(BTC)接近周期底部,超过一半的供应处于亏损状态
K33最新报告指出,比特币流通供应中超50%处于浮亏状态,这一比例在历次熊市中均对应底部区间,研究主管Vetle Lunde表示,该信号出现后比特币通常数周内见底,此后一年涨幅在…
2026-07-08 -
Strike在熊市中推出“抗波动”比特币(BTC)贷款,但代价高昂
Strike推出'抗波动'比特币贷款,以超额抵押应对熊市风险,借款人需存入远超贷款额的比特币,一旦币价下跌触及平仓线,抵押品将被清算,这种设计虽保障了贷方安全,却让借方承…
2026-07-08 -
Lyn Alden分析,随着Strategy公司销售2.16亿美元BTC,比特币无需救世主
Strategy出售2.16亿美元比特币引发市场震动,但宏观分析师Lyn Alden认为,比特币从不需要依赖任何单一机构来维系价值,她指出,比特币的核心在于去中心化共识,而非某个“救…
2026-07-08 -
StarkWare首席执行官建议以4%的年比特币(BTC)通胀来取代2100万的上限
StarkWare CEO Eli Ben-Sasson 提出取消比特币2100万枚的硬顶,改为每年最高4%的通胀发行,他的理由是大量比特币因私钥丢失、硬盘损毁而永久沉睡,预计已有15%至20%的供应无…
2026-07-08 -
分析师称“教科书式比特币(BTC)底部”构建中 投机者动向成关键
链上数据显示,短期持有者持仓成本正成为关键防线,历史规律表明当投机者恐慌抛售接近尾声时,往往形成'教科书式'的阶段性底部,当前BTC价格持续测试该成本区间,短期持有者…
2026-07-08 -
SpaceX为何持有18,712枚比特币?持仓与纳指100纳入加密影响解析
SpaceX 招股书披露持有 18712 枚比特币,托管方式致使链上估算严重失真,其快速纳入纳指 100 带来数十亿被动资金,币价波动还会直接影响财报,本文分析该事件对比特币机构普…
2026-07-08 -
比特币RBF是什么意思?BTC转账卡住时怎么加速
比特币 RBF(Replace-by-Fee)是允许用更高手续费的新交易替换未确认旧交易的协议机制,BTC 转账卡住时,优先通过RBF 提费重发或CPFP(子付父)加速,无效则尝试矿池加速器…
2026-07-08 -
2026年用矿机挖比特币赚钱吗?收益与风险全解析
当下比特币挖矿属于重资产竞争,收益取决于电价、矿机性能、币价及全网算力难度,文中介绍 ASIC、云挖矿等各类挖矿模式,剖析设备折旧、用电消防、政策合规等多重隐患,下…
2026-07-08 -
比特币(BTC)多头争夺6.3万美元,美光股有望在美国芯片抛售中下跌10%
比特币多头正围绕6.3万美元关口激烈争夺,此前Strategy抛压已基本消化,现货买盘持续进场托底盘面,与此同时美股芯片板块抛售潮延续,大空头预警美光科技或在本轮回调中再跌…
2026-07-07 -
比特币(BTC)消化Strategy大额抛压快速反弹 融资利率冲高至9% 本轮牛
面对Strategy大额卖压,比特币快速从低位反弹,永续合约年化融资利率升至9%,多空杠杆需求重回均衡,尽管短期韧性凸显,但期权市场仍存温和压力,叠加宏观变量未消,尚不能…
2026-07-07










