本周的周报总结了一个影响 Eclair 旧版本的漏洞,以及对全节点手续费设置的研究。此外是我们的常规栏目:Bitcoin Stack Exchange 的热门问答总结、新版本和候选版本的发行通告,以及热门的比特币基础设施软件的显著变更描述。

新闻

  • Eclair 漏洞:Matt Morehouse 在 Delving Bitcoin 论坛发帖宣布负责任地披露了一个影响 Eclair 旧版本的漏洞。建议所有 Eclair 用户升级到 0.12 或更高版本。该漏洞允许攻击者广播一个旧的承诺交易来窃取通道中的所有当前资金。除了修复该漏洞,Eclair 开发者还添加了一个全面的测试套件,旨在捕获类似问题。

  • 手续费设置研究:Daniela Brozzoni 在 Delving Bitcoin 论坛发布了对近 30,000 个接受传入连接的全节点的扫描结果。每个节点都被查询其 BIP133 手续费过滤器。该过滤器会表明这个节点当前接受中继未确认交易的最低手续费率。当节点交易池未满时,这是该节点的默认最小交易中继手续费率。结果表明,大多数节点使用默认的 1 聪/虚拟字节 (s/v),长期以来这一直是 Bitcoin Core 的默认值。约 4% 的节点使用 0.1 s/v,这是即将发布的 Bitcoin Core 30.0 版本的默认值。约 8% 的节点没有响应查询——表明它们可能是间谍节点。

    少部分节点使用的手续费过滤器值为 9,170,997(10,000 s/v),开发者 0xB10C 指出这是当节点比区块链最前端落后超过 100 个区块且专注于接收区块数据而非可能在后续区块中才确认的交易时,Bitcoin Core 通过四舍五入设置的值。

Bitcoin Stack Exchange 精选问答

Bitcoin Stack Exchange 是 Optech 贡献者寻找问题答案的首选地之一——或者当我们有一些空闲时间来帮助好奇或困惑的用户时。在这个月度栏目中,我们重点介绍自上次更新以来发布的一些获得最多投票的问题和答案。

发行和候选发行

热门的比特币基础设施项目的新版本和候选版本。请考虑升级到新版本,或帮助测试候选版本。

重大的代码和文档变更

本周出现重大变更的有:Bitcoin CoreCore LightningEclairLDKLNDlibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay ServerBDKBitcoin Improvement Proposals (BIPs)Lightning BOLTsLightning BLIPsBitcoin InquisitionBINANAs

  • Bitcoin Core #33333 如果节点的 dbcache 设置超过从节点系统 RAM 推导出的上限,会发出启动警告消息,以防止内存不足错误或大量内存交换。对于 RAM 少于 2GB 的系统,dbcache 警告阈值为 450MB;否则,阈值为总 RAM 的 75%。dbcache 16GB 限制已在 2024 年 9 月移除(参见周报 #321)。

  • Bitcoin Core #28592 由于网络上较小交易的增加,将入站对等节点的每个对等节点交易中继速率从 7 增加到 14。出站对等节点的速率高 2.5 倍,增加到每秒 35 个交易。交易中继速率限制了节点向其对等节点发送的交易数量。

  • Eclair #3171 移除了 PaymentWeightRatios。这是一种假设通道余额均匀性的路径查找方法,被替换为一个新引入的基于过去支付尝试历史的概率方法(参见周报 #371)。

  • Eclair #3175 开始拒绝无法支付的 BOLT12 要约,其中字段 offer_chainsoffer_pathsinvoice_pathsinvoice_blindedpay 存在但为空。

  • LDK #4064 更新其签名验证逻辑,以确保如果 n 字段(收款方的公钥)存在,则对其验证签名。否则,收款方的公钥从 BOLT11 发票中提取,使用高 S 或低 S 签名。此 PR 使签名检查与提议的 BOLTs #1284 以及 Eclair 等其他实现保持一致(参见周报 #371)。

  • LDK #4067 添加了对从零手续费承诺交易中花费 P2A 临时锚点输出的支持,确保通道对等节点可以在链上索回他们的资金。参见周报 #371 了解 LDK 的零手续费承诺通道实现。

  • LDK #4046 使经常离线的发送方能够向经常离线的接收方发送异步支付。发送方在 update_add_htlc 消息中设置一个标志,指示 HTLC 应该由 LSP 持有,直到接收方重新上线并发送 release_held_htlc 洋葱消息来索取这笔付款。

  • LDK #4083 弃用 pay_for_offer_from_human_readable_name 端点以移除重复的 BIP353 HRN 支付 API。鼓励钱包使用 bitcoin-payment-instructions crate 来解析和解决支付指令,然后调用 pay_for_offer_from_hrnBIP353 HRN(例如 satoshi@nakamoto.com)支付要约

  • LND #10189 更新其 sweeper 系统(参见周报 #346)以正确识别 ErrMinRelayFeeNotMet 错误代码,并通过手续费替换重试失败的交易,直到广播成功。以前,错误会被错误匹配,交易不会被重试。此 PR 还通过考虑可能的额外找零输出来改进权重估计,这在用于增强 LND 的 Taproot Assetstaproot 覆盖通道中是相关的。

  • BIPs #1963 将指定致密区块过滤器的 BIP,即 BIP157BIP158,的状态从 Draft 更新为 Final,因为它们自 2020 年以来已在 Bitcoin Core 和其他软件中部署。