比特币操作码技术新闻通讯191期
翻译:Google translate 校对:李林
本周的时事通讯描述了用新的操作码扩展或替换比特币脚本的建议,总结了最近关于改进 RBF 政策的讨论,以及指向 OP_CHECKTEMPLATEVERIFY 操作码的继续工作的链接。 还包括我们的常规部分,描述了流行的比特币基础设施项目的显着变化。
News 新闻
● 比特币脚本的扩展和替代方案:一些开发人员在 Bitcoin-Dev 邮件列表中讨论了改进比特币脚本和 tapscript 语言的想法,这些接收比特币的人使用 指定他们稍后将如何证明他们授权了这些比特币的任何支出。
● 循环(折叠):开发者 ZmnSCPxj 描述 提出的 OP_FOLD 操作码作为允许比特币中类似循环的行为的一种方式 脚本。 他描述了可以对循环施加的一系列约束,以确保它们使用的 CPU 或内存不超过比特币脚本和 tapscript 当前可以使用的任何 CPU 或内存——但这会通过消除在脚本中包含重复代码的需要来减少带宽。
● 使用 Chia Lisp:Anthony Towns 发布 关于向比特币添加 Chia Lisp,这是为 Chia altcoin 设计的 Lisp 方言。 这将是传统比特币脚本和 Tapscript 的完全不同的替代方案,提供与之前提出的 Simplicity 语言相同的重新开始的一些好处。 Towns 建议他的替代方案——“Binary Tree Coded Script”或“btc-script”——比 Simplicity 更容易理解和使用,尽管也许它 将更难正式验证。
● 改进 RBF 政策的想法:Gloria Zhao 已发布 关于 Replace-by-Fee 的讨论摘要 (RBF) 最近在伦敦举行的 CoreDev.Tech 会议的政策以及一些相关更新。她报告说,讨论的主要概念是试图限制用于中继事务及其替换的最大资源量,例如通过限制在一定时间内中继的相关事务的数量。
Zhao 还写了一个gist总结了 关于允许交易建议使用后代限制的要点。例如,一个交易可以建议将它及其后代在内存池中可以消耗的最大空间量限制为 1000 vbytes,而不是默认的 100,000 vbytes。这将使诚实一方可以更低成本克服最坏的情况 固定攻击。
此外,Zhao 正在寻求算法的反馈,这个算法用来根据当前内存池的情况计算交易对矿工的价值。这可以促进节点软件更灵活地决定是否接受替代交易。
● 继续 CTV 讨论:如时事通讯 #183 中所述,讨论提议的 OP_CHECKTEMPLATEVERIFY (CTV) 操作码的会议继续进行,Jeremy Rubin 提供了摘要:1,2、3、4和 5。 此外,上周,James O’Beirne 发布 基于 CTV 保险库 的代码和设计文档。
显著的代码的文档变化
● Bitcoin Core #24198 扩展了 listsinceblock、listtransactions 和 gettransaction RPC,添加了一个新的 wtxid 字段,其中包含 BIP141中定义的每个交易的见证交易标识符 。
● Bitcoin Core #24043 添加新的 multi_a 和 sortedmulti_a descriptors 用于创建可以使用 tapscript 的 OP_CHECKSIGADD 操作码而不是旧脚本的 OP_CHECKMULTISIG 和 OP_CHECKMULTISIGVERIFY 操作码的支出授权策略。 有关 Tapscript 这方面的更多信息,请参阅时事通讯 #46。
● Bitcoin Core #24304 添加了一个新的演示 bitcoin-chainstate 可执行文件,可以传递比特币核心数据目录和一个块,它将验证并添加 到数据目录。 预计这不会直接有用,但会创建一个工具 libbitcoinkernel 项目将利用该工具来生成其他项目可用于验证块和 使用比特币核心使用的完全相同的代码进行交易。
● C-Lightning #5068 增加BOLT7的最小数量 node_announcement 消息 C-Lightning 每天将每个节点中继一到两个。 这可能会缓解与节点更改 IP 地址或临时脱机进行维护相关的一些问题。
● BIPs #1269 将 BIP326 分配给 建议 taproot 交易设置一个 nSequence 值,即使合约协议不需要它以在 BIP68需要共识强制的 nSequence 值。 BIP326 还描述了如何使用 nSequence 来替代当前通过交易锁定时间字段启用的 anti fee sniping 保护。 请参阅时事通讯 #153 获取原始邮件列表提案的摘要。