本周的周报包括我们关于交易池政策周报限定系列的最后一篇文章,以及我们常规的部分,描述了客户端、服务和流行的比特币基础设施软件的重要变化。

新闻

本周在 Bitcoin-Dev 或 Lightning-Dev 邮件列表中没有发现重要的新闻。

等待确认 #10:参与其中

我们周报限定系列的最后一篇文章,关于交易中继、交易池包含和挖矿交易选择——包括为什么 Bitcoin Core 的政策比共识允许的更为严格,以及钱包如何最有效地使用该政策。

我们希望这个系列可以让读者更好地了解在等待确认时发生了什么。我们从讨论比特币的一些意识形态价值开始,将其转化为比特币的结构和设计目标。对等网络的分布式结构提供了比典型的集中式模型更高的抗审查性和隐私保护。一个开放的交易中继网络有助于每个人知晓即将进入区块的交易。这提高了区块中继的效率,使得作为一个新矿工加入比特币网络更可行,同时也创造了一个对区块空间的公开拍卖。作为一个由许多独立的、匿名的实体运行节点组成的理想网络,节点软件必须被设计成可防 DoS 攻击并尽量减少运营成本。

手续费在比特币网络中扮演着重要的角色,作为解决区块空间竞争的“公平”方式。在交易池中,允许交易替换、可以感知交易包的选择和驱逐算法,使用激励兼容性来衡量存储一个交易的效用,并为用户启用 RBFCPFP 作为追加手续费的机制。这些交易池策略的组合、能经济地构造交易的钱包和良好的费率估计,可以为区块空间创造一个高效的市场,从而使每个人受益。

个别节点还会执行 交易中继策略,以保护自己避免资源耗尽表达个人偏好。在网络范围内,标准规则和其他策略保护着可扩展性、节点运行的可访问性以及更新共识规则的能力等至关重要的资源。由于网络中的绝大多数都遵守这些策略,它们是比特币应用程序和 L2 协议所依赖的接口的重要组成部分。然而,它们并不完美。我们描述了几个与交易池策略相关的提案,这些提案致力于解决广泛的局限性以及特定用例,比如对 L2 结算交易的钉死攻击

我们还强调,网络策略的持续演进需要协议、应用和钱包开发者之间的合作。随着比特币生态系统在软件、使用案例和用户方面的增长,去中心化的决策过程变得更加必要,但也更具挑战性。即使比特币的采用率增长,系统也是由利益相关者的关注和努力而形成的——没有一家公司负责收集客户反馈并雇佣工程师来构建新的协议功能或删除未使用的功能。对希望成为网络的粗略共识的一部分的利益相关者而言,有多种参与途径:自主了解情况、提出疑问和问题、参与网络设计,甚至贡献改进的实现。下次当你的交易确认时间过长时,就知道该怎么做了!

服务和客户端软件的变更

在这个月度栏目中,我们会标出比特币钱包和服务的有趣更新。

  • 10101 钱包 beta 版本测试在 LN 和 DLC 之间汇集资金: 10101 宣布了一个使用 LDK 和 BDK 构建的钱包,允许用户使用 DLC链下合约中非托管地交易衍生品。这个钱包还可以用于发送、接收和转发闪电网络支付。DLC 依赖于使用适配器签名进行价格认证的预言机。

  • LDK 节点公布: LDK 团队公布了 LDK 节点v0.1.0。LDK 节点是一个闪电网络节点 Rust 库,它使用 LDK 和 BDK 库,让开发人员能够快速设置自托管的闪电节点,同时可为不同的用例提供高度的可定制化。

  • Payjoin SDK 公布: Payjoin 开发工具包(PDK)公布。它是一个实现 BIP78 的 Rust 库,可用于想要集成 payjoin 功能的钱包和服务中。

  • 验证闪电签名者(VLS)beta 版公布: VLS 允许将闪电节点与控制其资金的密钥相分离。使用 VLS 运行的闪电节点将签名请求推送到远程签名设备,而非使用本地密钥。beta 版本支持 CLN 和 LDK、一层和二层验证规则、备份/恢复功能,并提供了参考实现。博客文章的公告还号召社区进行测试、功能请求并提供反馈。

  • BitGo 增加了对 MuSig2 的支持: BitGo 宣布支持 BIP327MuSig2)。同时他们指出与其他支持的地址类型相比,该类型的费用更低,隐私性更强。

  • Peach 增加了对 RBF 的支持: 服务点对点交易的 Peach Bitcoin的移动端应用宣布支持手续费替换(RBF)

  • Phoenix 钱包增加了拼接支持: ACINQ 宣布他们对 Phoenix 移动端闪电钱包的下一个版本进行了测试。该钱包支持单个动态通道,使用拼接(splicing)和类似于 swap-in-potentiam 技术的机制进行重新平衡(参见Podcast #259)。

  • 挖矿开发工具包征求反馈: 挖矿开发工具包(MDK)团队发布了他们在比特币挖矿系统硬件、软件和固件研发方面的最新进展情况。这篇文章呼吁社区就使用案例、范围和方法提供反馈。

  • 币安开始支持闪电网络: 币安宣布支持使用闪电网络进行发送(提现)和接收(充值)。

  • Nunchuk 增加 CPFP 支持: Nunchuk宣布支持子为父偿(CPFP),为交易的发送方和接收方提供提升手续费的功能。

重大的代码和文档变更

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

  • Bitcoin Core #27411 防止节点向位于其他网络(如普通的IPv4或IPv6)上的对等节点公告其 Tor 或 I2P 地址,并且不会将其地址从非匿名网络公告给 Tor 和 I2P 上的对等节点。这有助于防止有人将节点的常规网络地址与该节点在匿名网络上的地址关联起来。目前,CJDNS 与 Tor 和 I2P 的处理方式不同,尽管这可能会在将来发生变化。

  • Core Lightning #6347 为插件添加用通配符 * 来订阅每个事件通知的能力。

  • Core Lightning #6035 添加了请求使用 bech32m 地址接收存款到一个 P2TR 输出脚本的能力。交易的找零现在也将默认发送到一个 P2TR 输出。

  • LND #7768 实现了 BOLTs #1032#1063(参见周报 #225),允许最终接收方(HTLC)接受比他们所请求的金额更多、过期时间更久的付款。以前,基于 LND 的接收方遵守了 BOLT4 的要求,即金额和到期时间差正好等于他们请求的数额,但如此精确意味着转发节点可以稍微更改任一数值来探测下一个跳点是否为最终接收者。

  • Libsecp256k1 #1313开始使用 GCC 和 Clang 编译器的开发快照进行自动测试。这也许能检查出变更会否导致 libsepc256k1 特定代码的运行时间浮动。运行时长不固定的代码与私钥和 nonce 一起使用可能导致侧信道攻击。请参阅周报#246来了解可能发生这种情况的一个例子,以及周报#251来了解另一个例子和计划进行此类测试的一个公告。