比特币Optech时事通讯为读者提供了比特币最重要技术新闻的顶级摘要,以及帮助他们了解更多信息的资源。为了帮助读者了解比特币的最新情况,我们将在下面重新发布最新一期的时事通讯。请记住订阅,以便直接将此内容接收到收件箱。
本周的时事通讯描述了一个影响协议的安全性披露,该披露取决于特定的BIP125选择加入替换为收费行为,并包括我们的常规部分,包括比特币核心公关审查俱乐部会议的摘要、新软件发布的公告和发布候选,以及对流行比特币基础设施软件显著变化的描述。
新闻
CVE-2021-31876 BIP125和比特币核心实现之间的差异:BIP125的opt-in-Replace-By-Fee(RBF)规范说,一个未经确认的表示可替换性的父事务使得花费父事务输出的任何子事务也可以通过推断继承来替换。本周,安托万·里亚德(Antoine Riard)在比特币开发者邮件列表上公布了他之前私下报告的发现,即比特币核心没有实现这种行为的全部信息。如果子事务显式表示可替换性,则子事务仍有可能被替换;如果父事务被替换,则子事务仍有可能被从mempool中逐出。
Riard分析了无法使用继承的可替换性如何影响各种当前和建议的协议。只有LN似乎受到了影响,而且只有在使用钉扎的现有攻击(见时事通讯#95)变得更便宜的情况下才会受到影响。各种LN实现对锚定输出的持续部署将消除执行该钉扎的能力。
截至撰写本文时,邮件列表上尚未对这一问题进行任何实质性讨论。
呼吁边缘拨款申请:Bitcoin Optech鼓励任何参与开源比特币或闪电项目的工程师在5月17日申请截止日期前申请边缘拨款。最初的资助为期一年,允许开发人员从世界任何地方全职从事开源项目。
比特币核心公关评论俱乐部
在这个月的部分,我们总结了最近比特币核心公关审查俱乐部会议,强调了一些重要的问题和答案。单击下面的问题以查看会议答案的摘要。
介绍节点重播模块是Amiti Uttarwar的一个PR(#21061),它将继续重播项目的工作(见时事通讯#64、#96、#129和#142),之前在review clubs#16698和#18038中讨论过,其目标是使钱包交易的节点重播行为与其他同行的交易不可区分。
回顾俱乐部讨论的重点是当前的交易行为和提议的变化:
为什么我们要重播交易?当我们的事务没有传播(可能我们的节点处于脱机状态)或似乎被网络中其他节点的mempool丢弃时。
为什么节点会从其mempool中删除事务?除了包含在块中,事务还可以在14天后过期,被更高费用的事务从节点有限的mempool大小(默认大小为300 MiB)中挤出,通过BIP125 opt-in-Replace-by-fee(RBF)替换,如果冲突事务包含在块中,则被删除,或者包含在一个块中,该块稍后被重新排序(在这种情况下,节点将尝试重新添加它,同时在重新排序之后更新mempool使其再次保持一致)。
矿工什么时候可以包含不在我们mempool中的事务?当矿工手动确定事务优先级(例如作为商业服务)时,在我们的节点之前收到它,或者该事务与我们的mempool中的另一个事务冲突,但不在他们的mempool中。
审查中的提案如何决定重播哪些交易?
对于每一个新区块,它建议重播至少30分钟前、重播次数不超过6次、最近重播次数不超过4小时的超过估计费率的交易,其中符合区块的交易最多占3/4。
为什么我们要在重播尝试跟踪器中保留一个事务,即使它已经从mempool中删除了呢?
共识规则更改后,网络上可能会有未更新的节点重播不符合新共识规则的事务。在重播尝试跟踪器中保留事务将避免这些节点重播它们太多次(90天内最多6次),并允许事务过期。
我们什么时候从重播尝试跟踪程序中删除事务?当事务被确认、RBF化或与块中包含的另一个事务冲突时。
如何计算转播的最低收费?为什么不在最后一个开采区使用最低的费率呢?
通过从mempool中组装一个区块来模拟下一个开采区块中的包裹体,每分钟将估计一次转播费下限。这种方法比使用最后开采区块的最低费率要好,因为它是根据变化环境中的近期未来而不是过去来计算费用的。
释放和释放候选人
热门比特币基础设施项目的新版本和候选版本。请考虑升级到新版本或帮助测试候选版本。
Rust Lightning 0.0.14是一个新版本,它使Rust Lightning与从Electrum样式的服务器获取数据更加兼容,添加了额外的配置选项,并改进了对LN规范的遵从性,以及其他错误修复和改进。
显著的代码和文档更改
本周,比特币核心、C-Lightning、Eclair、LND、Rust Lightning、libsecp256k1、硬件钱包接口(HWI)、Rust Bitcoin、BTCPay服务器、比特币改进方案(BIPs)和闪电出现了显著变化。
Bitcoin Core#20867将可包含在multisig描述符中并用于addmultisigaddress和createmultisig RPC的密钥数从16增加到20。增加的限值只能用于P2WSH输出。P2SH输出仅限于520字节的脚本,这些脚本的大小仅足以容纳15个压缩公钥。
Bitcoin Core GUI#125允许用户从简介对话框中的默认值调整自动运行块空间大小。它还对删减后的存储如何工作进行了改进的描述,明确了整个区块链必须下载和处理,但将来将被丢弃,以保持较低的磁盘使用率。
C-Lightning#4489添加了一个funder插件,用于配置双重资金贡献行为,以响应传入的通道开放请求。用户将能够指定一个通用的供款策略(匹配百分比、可用资金百分比或固定供款)、钱包预留金额(在该金额下不会发生双重供款)、任何单一渠道开放请求的最大供款金额,等等。
此PR代表了在C-Lightning节点之间实现实验性双重资金支持的最后一步。由这项工作产生的交互式事务构造和通道建立v2协议仍在openbolts#851pr中标准化。
C-Lightning#4496增加了插件注册主题的功能,这些主题是他们计划发布通知的主题。其他插件可以订阅这些主题以接收通知。C-Lightning已经有几个内置主题,但是这个合并的PR允许插件作者为他们想要使用的任何新主题类别创建和使用通知。
Rust Bitcoin#589启动了使用schnorr签名实现对主根的支持的过程。现有的ECDSA支持被移到一个新模块中,但继续以现有名称导出以保持API兼容性。新的util::schnorr模块增加了对BIP340 schnorr密钥编码的支持。问题#588用于跟踪主根兼容性的完整实现。
在这里找到原来的帖子。
请直接订阅比特币Optech时事通讯,每月将此内容直接发送到您的收件箱。