本周周报介绍了一份草案 BIP,提议用一个后继测试网络取代 testnet4 测试网络。此外还包括我们的常规栏目:宣布新版本与候选版本,并总结流行比特币基础设施软件的重要代码变更。

新闻

  • testnet5 的草案 BIP: Pol Espinasa 在 Bitcoin-Dev 邮件列表上发帖,发布了一份草案 BIP,由他与 Fabian Jahr 共同起草,提议用 testnet5 取代 testnet4。 该提案的动机,是 testnet4 的可靠性较低;而这一问题源于难度例外规则持续被利用(也称“20 分钟规则”)。该规则允许 CPU 矿工在前一个区块出块 20 分钟后,以难度 1 挖出新区块,从而产生“区块风暴”:也就是在短时间内挖出大量低难度区块(见周报 #311)。

    这份草案 BIP 提议删除难度例外规则,使 testnet 的行为尽可能贴近主网。testnet5 除了两项改动之外,将遵循与主网相同的共识规则:从区块 1 开始激活 BIP54共识清理软分叉),并将工作量证明目标值的最大上限设为 0x1a0fffff(比 testnet4 的最大目标值更低,也就是最小难度更高)。

    Espinasa 邀请其他开发者对该提案提出反馈。邮件列表线程中的讨论主要围绕几个问题展开:是给 testnet4 打补丁还是另起一个新网络、testnet 代币被预挖的可能性,以及新网络应采用怎样的最小难度才最合适。

版本和候选版本

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

  • LND 0.21.0-beta 是这一流行 LN 节点实现的下一个主要版本发布。它新增了基础的洋葱消息转发、可用于生产环境的简单 Taproot 通道,并支持使用 RBF 进行合作关闭,还增加了通道关闭的重组保护、基于 Neutrino 的节点的更快初始同步、一个可选的原生 SQL 支付存储迁移,以及多项漏洞修复。

  • Core Lightning 26.06.1 是这一流行 LN 节点当前主版本的维护版本。它修复了运行 make installbwatch 插件注册失败的问题。

重大的代码和文档变更

以下是来自 Bitcoin CoreCore LightningEclairLDKLNDlibsecp256k1硬件钱包接口(HWI)Rust BitcoinBTCPay ServerBDK比特币改进提案(BIPs)Lightning BOLTsLightning BLIPsBitcoin InquisitionBINANAs 的近期重大变更。

  • Bitcoin Core #35410 修复了一个漏洞:它可能导致一次私密交易广播重试直接连接到某个 IPv4 或 IPv6 对等节点,而不是通过 Tor 或 I2P。当 sendrawtransaction-privatebroadcast=1 一起使用时(见周报 #388),Bitcoin Core 会强制通过 Tor 或 I2P 代理来建立交易广播连接。如果其中一条连接尝试使用 BIP324 v2 传输但失败,就会回退并重试 v1 传输。此前,在那些平时会直接建立 IPv4/IPv6 连接的节点上,这次重试可能会忘记私密广播所要求的代理覆盖设置。现在,这个代理覆盖设置会被保存下来,并在从 v2 回退到 v1 的重新连接过程中继续沿用。

  • Bitcoin Core #34779 实现了 BIP323,将区块头 nVersion 的第 5 位到第 28 位保留为矿工可用的额外 nonce 空间(见周报 #405)。此前,这些比特位属于 BIP9 版本位告警逻辑的监控范围,用于检测未知软分叉信号。Bitcoin Core 现在会把 BIP323 保留的这些比特位排除在该告警逻辑之外,避免矿工在使用它们进行 nonce 滚动时触发未知软分叉告警。

  • Bitcoin Core #32150 重写了分支定界法 coin selection算法,以避免回溯搜索树中那些只会重新产生等价输入集合的部分。新搜索过程不再反复回溯并重新测试相同的选择前缀,而是会跟踪下一个要尝试的 UTXO,剪掉无法达到目标值的分支,直接跳到下一个有意义的候选项,并跳过那些具有相同有效值、但重复或浪费更多手续费的 UTXO。这样一来,钱包就能把迭代预算用于更多彼此不同的候选选择。

  • LDK #4647 停止在 BOLT12盲化消息路径中使用远端引介节点,以避免与 LND 可选启用的洋葱消息支持不兼容;后者可能会接收来自非通道对等节点的消息,但不会转发这些消息。LDK 现在改为使用已公布的接收者自身作为引介点,这提高了互操作性,但会降低接收者的隐私性。

  • BTCPay Server #7218 为 BTC 多签名钱包增加了一个带引导的设置流程。商店所有者可以选择签名策略,邀请商店用户手动提交签名者密钥或通过 BTCPay Server Vault 提交,检查生成的地址,并在收集到所需密钥后创建钱包。

  • BIPs #2186 更新了 BIP77,规定 payjoin v2 接收者应如何回复兼容 BIP78 的发送者。BIP77 的常规回复路径,会使用发送者提供的一把回复密钥来加密提议的 PSBT,并将其投递到一个由发送者派生出的回复邮箱中;但 BIP78 发送者并不提供回复密钥。作为替代,接收者会把经过 base64 编码的提议 PSBT 写回接收者自己的邮箱,而发送者此前正是把原始 PSBT 发布在这个邮箱里。接收者使用一个经过 OHTTP 封装的 PUT 请求,将其提交给目录服务器。该更新记录了实现中已经在使用的这一条向后兼容的回复路径。