本周的 Newsletter 介绍了一项提议:Bitcoin Core 允许在其内存池中替换交易见证,并总结了有关更新 LN gossip 协议的持续讨论。此外,我们的常规栏目还包括 Bitcoin Stack Exchange 精选问答、新版本和候选版本的公告,以及对热门比特币基础设施项目值得注意的变更描述。

新闻

  • 交易见证替换: Larry Ruane 在 Bitcoin-Dev 邮件列表上征求意见,讨论是否允许用见证更小(因此 wtxid 不同)但 txid 相同的交易来替换原有交易。Ruane 想了解目前是否已有应用会创建见证大小可能变化的交易(例如从 taproot 脚本路径支出切换到密钥路径支出),而其他交易细节(例如输出地址或金额)保持不变。

    如果现有或拟议中的应用能够从见证替换中获益,Ruane 还希望了解见证需要缩小多少才应允许替换。要求缩小幅度越大,可被替换的交易就越少——从而在最坏情况下限制攻击者浪费节点带宽。但如果要求过高,也会阻止应用通过见证替换获得较小或中等程度的节省。

  • 关于更新 LN gossip 协议的持续讨论: 正如 Newsletter #188 所报道,LN 协议开发者正在讨论如何修订用来播报可用支付通道信息的 LN gossip 协议。本周出现了两个活跃的讨论线程:

    • 重大更新: 在对 Rusty Russell 上月提出的重大更新方案回应中,Olaoluwa Osuntokun 多次表达了对该方案中一项内容的担忧——它会在链上资金与特定 LN 通道之间引入可信否认。这一特性也会让非 LN 用户更容易宣称某些并不存在的通道存在,从而削弱付款方在网络中找到有效路径并向收款节点付款的能力。

    • 小幅更新: Osuntokun 提出了另一份更小范围的更新提案,主要目的是支持基于 taproot 的通道。该提案使用 MuSig2,通过单个签名即可证明与四个公钥(两个节点标识公钥、两个通道支出公钥)相关的授权,并可能要求通道建立交易可使用 MuSig2 进行支出。

      他还建议在通道公告消息中增加一条 SPV 部分默克尔分支证明,用于证明通道建立交易已被纳入某个区块,从而使轻客户端无需下载包含该交易的整个区块就能验证其存在。

Bitcoin Stack Exchange 精选问答

Bitcoin Stack Exchange 是 Optech 贡献者寻找答案的首选之地之一——当我们有空时也会在那里帮助求助用户。在这一月度专栏中,我们精选自上次更新以来得票最高的一些问答。

发布与候选发布

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

  • BDK 0.17.0 这是用于构建比特币钱包的库的新版本。此次改进使钱包即便离线也更容易派生地址。

  • Bitcoin Core 23.0 RC2 这是这一主流全节点软件下一主要版本的候选发布。草案发行说明列出了多项改进,鼓励高级用户与系统管理员在最终发布前进行测试

  • LND 0.14.3-beta.rc1 这一候选版本为这款流行的 LN 节点软件带来了数个错误修复。

值得注意的代码与文档变更

本周在 Bitcoin CoreC-LightningEclairLDKLNDlibsecp256k1硬件钱包接口 (HWI)Rust BitcoinBTCPay ServerBDK比特币改进提案(BIPs)以及闪电网络规范(BOLTs)项目中的值得注意变更。

  • C-Lightning #5078 该变更使节点能够更高效地使用与同一对等节点建立的多条通道,包括在路由消息指定的通道不可用或效果不佳时,改用同一对等节点的其他通道来转发付款。

  • C-Lightning #5103 新增 setchannel 命令,可设置特定通道的路由费率、最小付款金额和最大付款金额。此命令取代已弃用的 setchannelfee

  • C-Lightning #5058 移除了对原始固定长度洋葱数据格式的支持,该格式也在 BOLTs #962 中被提议从 LN 规范中删除。可变长度格式在近三年前已被加入规范。BOLTs #962 PR 中提到的网络扫描结果显示,在超过 17,000 个公开节点中,只有 5 个节点仍未支持该格式。

  • LND #5476 更新了 GetTransactionsSubscribeTransactions RPC 结果,新增关于输出的详细信息,包括支付金额与脚本,以及该地址(脚本)是否属于内部钱包。

  • LND #6232 新增一项配置,可要求所有 HTLCs 都由注册在 HTLC 拦截器挂钩上的插件处理。这确保在 HTLC 拦截器有机会注册之前,不会接受或拒绝任何 HTLC。HTLC 拦截器允许调用外部程序来检查 HTLC(付款)并决定是否接受或拒绝。