讲师中心 微信公众号
AI工具推荐 视频效率加速

比特币契约第三部分:SIGHASH_ANYPREVOUT(APO)技术解析

冬明君_9817

冬明君_9817

发布时间:2026-07-23 11:16:23

|

283人浏览过

|

来源于php中文网

原创

比特币(btc)契约第三部分:sighash_anyprevout

SIGHASH_ANYPREVOUT(简称 APO,对应 BIP-118)是比特币 Taproot 升级后引入的一种新型签名哈希类型。其核心突破在于:签名时无需绑定具体的输入 UTXO,仅对输出结果进行签名。这一机制实现了更灵活的支出逻辑,成为闪电网络 Eltoo 改造的技术基石。通过大幅降低状态存储需求,APO 助力通道工厂与轻量级瞭望塔的构建,显著提升了比特币二层扩展性能。

APO 允许比特币签名授权任何兼容的 UTXO,而非锁定在固定的输出点上。这使得 Lightning 网络、Vault 以及 Layer-2 协议能够使用可重新绑定的预签名交易,且无需额外的密钥管理开销。

本文是 Cointelegraph Research 关于比特币契约技术系列的第三部分。建议先行阅读前两部分以建立完整认知。

SIGHASH_ANYPREVOUT 的概念最早可追溯至 Joseph Poon 和 Thaddeus Dryja 在 2015 年 Lightning Network 论文中提出的 SIGHASH_NOINPUT 概念。2016 年 2 月,Joseph Poon 在比特币开发邮件列表上正式提出了该提案。它并非新的操作码,而是 SIGHASH 标志的一个新提议值,旨在通过软分叉升级引入比特币网络。SIGHASH 标志附加在签名之后,用于决定交易哪些部分已被签署,并由 CHECKSIG 操作码验证。旗帜的选择由签署者决定,而非由 scriptPubKey 强制执行。受软分叉技术细节限制,SIGHASH_ANYPREVOUT 提案目前仅适用于来自主根地址的支出。

如图 1 所示,比特币已存在多种标准 SIGHASH 模式。若标志设置为 SIGHASH_ALL,签名必须覆盖所有输入、所有输出及具体的输出点,从而将授权加密绑定到特定的 UTXO。输出点(outpoint)由交易 ID 和输出索引组成,唯一标识被消耗的 UTXO。相比之下,SIGHASH_NONE 仅对输入签名,输出不受约束;SIGHASH_SINGLE 对所有输入签名,但仅对与输入索引相同的输出签名。ANYONECANPAY 修饰符则允许单个输入独立签名,增加了灵活性。关键在于,这些现有模式均要求签名包含对输出点的承诺,而 SIGHASH_ANYPREVOUT 正是为了移除这一限制。

BTC契约三:ANYPREVOUT

BIP-118 定义了两种 ANYPREVOUT 变体,主要区别在于摘要中省略的前一输出信息比例不同(如图 2 总结):

  • SIGHASH_ANYPREVOUT: 输出点被排除在摘要之外,但签名仍承诺之前输出的数量和 scriptPubKey,以及输入的 nSequence。
  • SIGHASH_ANYPREVOUTANYSCRIPT: 金额和 scriptPubKey 也被排除,意味着签名完全不绑定在已花费输出的锁定脚本上。

所有其他承诺遵循标准的 Taproot 签名消息结构,并依赖于所选的基础标志(如 SIGHASH_ALL 或 SIGHASH_SINGLE)。

Web3dropper Crypto Price Skill
Web3dropper Crypto Price Skill

用于代理的Billions/Iden3身份认证与身份管理工具,包含链接、证明、签名和验证。

下载

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

由于摘要中省略了输出点,同一签名可以授权使用任何满足剩余提交字段的兼容 UTXO。例如,若一笔交易预先签名为 ANYPREVOUT | SIGHASH_ALL,当同一地址后续收到另一个 0.5 BTC 的 UTXO 时,即使创建原始签名的私钥已不可用,该签名仍可重复使用以产生 0.5 BTC 的输出。但若新 UTXO 金额超过 0.5 BTC,且原始签名未包含变更输出,矿工将损失多余部分。这种“重新绑定”特性使 ANYPREVOUT 在第二层协议中极具价值,因为同一预签名事务可适用于多个可能的链上 UTXO,无需为每个协议重新签名。

对于类似契约的应用,ANYPREVOUT 变体保留对前一输出 scriptPubKey 的承诺,确保资金绑定在同一锁定脚本下。而 ANYPREVOUTANYSCRIPT 完全去除了这种绑定,因此不太适合需要严格契约约束的场景。

与 OP_CTV 类似,SIGHASH_ANYPREVOUT 改进了预签名事务的逻辑能力,但本身不支持递归契约或事务自省。它主要通过放松签名与特定 UTXO 之间的绑定,允许签名在多个兼容 UTXO 间重复使用。

部分研究指出,移除输出点承诺可实现“密钥恢复构造”——即公钥可从固定签名和消息对中推导出来,使得对应的私钥对任何人都可证明为未知。这使 UTXO 的密钥路径可证明不可使用,强制任何花费必须通过脚本路径。这一机制避免了临时密钥的需求,而临时密钥在依赖脚本路径强制执行的构造中是使密钥路径不可用的关键。这一观察见于 Jacob Swambo 等人(2020年)的《比特币契约:三种控制未来的方式》,尽管它目前仍属理论构造,而非 BIP-118 的设计初衷。

SIGHASH_ANYPREVOUT 签名的主要风险在于签名重放。由于签名不承诺特定输出点,只要新 UTXO 满足剩余提交字段,同一签名即可用于花费与原意不同的 UTXO。以下场景会加剧重放风险:

  • 使用 ANYPREVOUT | SIGHASH_SINGLE 且可重新排列输出金额;
  • 存在具有相同 scriptPubKey 和金额的独立 UTXO;
  • 同一公钥以兼容文字出现(如 ANYPREVOUTANYSCRIPT);
  • 矿工可影响交易排序和包含性,利用上述条件。

然而,这些场景多为故意滥用,或源于用户/开发者在协议设计时未充分考虑重放条件。

在下一篇文章中,我们将探讨作为辅助工具的操作码。这些工具扩展了比特币脚本或数据处理的表达力,但除非与其他操作码结合,否则不实现契约功能。下一类将重点讨论 OP_CHECKSIGFROMSTACK 和 OP_CAT。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

0

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

0

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

0

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

0

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

0

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

0

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

0

2026.09.22

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

0

2026.09.22

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

20

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 2.9万人学习

go语言基础与基本函数
go语言基础与基本函数

共17课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn