本周的 Newsletter 提供了先前提出的交易中继可靠性研讨会和 CVE-2021-31876 的更新。此外,还包括我们的常规栏目,描述了服务和客户端软件的更新、新的发布和候选发布,以及对流行的比特币基础设施软件值得注意的更改。

新闻

  • 中继可靠性研讨会安排:Newsletter #146 中提到的,Antoine Riard 将主持基于 IRC 的会议,讨论如何使未确认的交易中继对合约协议(如闪电网络(LN)、coinswaps 和 DLCs)更加可靠。会议时间表如下:

    • 6 月 15 日,19:00–20:30 UTC:关于 L2 协议链上安全设计的指导方针;跨层安全披露的协调;完整 RBF(Replace By Fee)提案

    • 6 月 22 日(同一时间):通用的二层手续费提升原语(例如包中继)

    • 6 月 29 日(同一时间):预留用于额外讨论

  • CVE-2021-31876 BIP125 实现差异的后续跟进:上周的 Newsletter 发布后,关于 BIP125 可选 Replace-by-Fee(RBF(Replace By Fee)topic rbf)与 Bitcoin Core 实现之间差异的讨论进一步展开。Olaoluwa Osuntokun 确认 btcd 全节点按规范实现了 BIP125,这意味着它确实允许基于继承信号的子交易被替换。Ruben Somsen 指出,空间链(spacechains)的一种假设变体,这是一种单向锚定的侧链,将会受到该问题的影响。另一方面,Antoine “Darosior” Poinsot 提到 Revault 保险库架构不会受到影响。

服务和客户端软件的更改

在本月的专题中,我们重点介绍了比特币钱包和服务的有趣更新。

发布与候选发布

针对热门比特币基础设施项目的新发布版本或候选版本。请考虑升级至新版本或协助测试候选版本。

  • LND 0.13.0-beta.rc2 是一个候选发布版本,新增了对使用修剪后的比特币全节点的支持,允许使用原子多路径(Atomic MultiPath)(AMP)接收和发送支付,并增强了其 PSBT 功能,以及其他改进和错误修复。

值得注意的代码和文档更改

本周 Bitcoin CoreC-LightningEclairLNDRust-Lightninglibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay Server比特币改进提案(BIPs)闪电网络规范(BOLTs) 中值得注意的更改。

  • Bitcoin Core #21462 增加了用于证明 Guix 构建输出的工具,并验证这些证明与其他人的证明。此更改之后,Windows 和 macOS 的代码签名将成为 Guix 构建与 Gitian 构建功能等同性之前的唯一缺失部分。

  • Bitcoin Core GUI #280 防止在错误对话框中显示无效的比特币地址,消除了在看似官方的对话框中显示任意消息的可能性。现在仅显示简单的“无效地址”错误。(参见 PR 中的前后对比截图。)

  • Bitcoin Core #21359 更新了 fundrawtransactionsendwalletcreatefundedpsbt RPC,新增了 include_unsafe 参数,用于在交易中花费其他用户创建的未确认 UTXO。这允许使用 CPFP 提升交易手续费,是由一位在 Eclair LN 节点中实现锚定输出的开发者添加的。此选项应仅在必要时使用,因为其他用户创建的未确认交易可能会被替换,从而可能阻止任何子交易被确认。

  • LND #5291 改进了 LND 确保 PSBTs 用于资助交易仅花费 SegWit UTXO 的方式。闪电网络要求 SegWit UTXO 以防止 txid 可变性导致退款交易无法花费。LND 之前通过检查 PSBT 中的 WitnessUtxo 字段来验证,但该字段对于 SegWit UTXO 来说是技术上可选的,因此一些 PSBT 创建者不会提供它。更新后的代码将使用提供的值(如果存在),否则将扫描 UTXO 集以获取必要的信息。

  • LND #5274 将节点为允许 CPFP 提升锚定输出手续费所保留的最大资金量限制为每通道金额的十倍。对于拥有大量通道的节点,这限制了它们的资本需求。如果它们需要关闭超过 10 个通道,可以使用关闭一个通道收到的资金来关闭下一个通道,形成多米诺效应。

  • LND #5256 允许从文件中读取钱包密码。这主要用于基于容器的设置,其中密码已经存储在文件中,因此直接使用该文件不会带来额外的安全问题。

  • LND #5253 为高层 LND RPC 命令(如 SendPaymentAddInvoiceSubscribeInvoice)新增了对 Atomic Multipath Payment (AMP) 发票的支持。AMP 发票目前是 LND 独有的功能,仅接受设置了 AMP 功能位以及 AMP 负载的 HTLC。这扩展了之前的工作 news147 lndamp,通过为 SendPayment RPC 提供手动指定的支付参数来启用 AMP 的使用。

  • Libsecp256k1 #850 新增了 secp256k1_ec_pubkey_cmp 方法,该方法比较两个公钥并返回其中一个是否比另一个更早排序(或返回它们相等)。此方法被提议用于 BIP67 密钥排序,特别是用于 sortedmulti 描述符的输出脚本描述符。