首页 > 比特币 > 正文

本周的时事通讯描述了一项允许通过费用进行通用交易替换的提案,并包括有关准备主根的新每周系列中的第一篇文章。还包括我们的常规部分,描述客户和服务的更新、新版本和候选版本,以及流行的比特币基础设施项目的显着变化。

消息

  • 默认情况下允许交易替换:相信今天几乎所有比特币完整节点都实现了BIP125选择按费用替换(RBF),这允许节点内存池中的未确认交易被支付更高费用的替代版本替换——但前提是创建者交易在原始交易中设置一个信号。这种选择加入行为被提议作为希望允许交易替换(例如费用增加或附加支付批处理)的人和反对的人之间的妥协,因为允许替换简化了欺骗接受未经确认的交易作为最终交易的商家的构建工具。
    五年后,现在似乎很少有商家将未经确认的交易视为最终交易,并且不清楚有多少商家实际上正在检查 BIP125 选择加入信号并以不同方式对待这些交易。如果没有人依赖 BIP125 信号,那么允许每笔交易都是可替换的可以提供一些优势,例如:

    • 简化对预签名交易协议(例如 LN 和金库)的分析,其中使用 RBF 费用增加的想法需要考虑恶意交易对手防止设置 BIP125 信号的能力。如果每笔交易都可以被替换,这将不是问题。
    • 减少交易分析机会,因为选择加入 RBF 的交易在链上看起来与不加入的交易不同。由于大多数钱包始终选择加入或不加入,这提供了证据,表明监控公司可以用来确定谁拥有哪些比特币。如果每个事务都是可替换的,则无需设置 BIP125 信号。
  • 本周,Antoine Riard向 Bitcoin-Dev 邮件列表发布了一项提案,要求最终更改 Bitcoin Core 的代码,以允许 RBF 用于所有交易,无论他们是否设置了 BIP125 选择加入信号。在第一次交易中继研讨会会议上也讨论了这个想法。一些会议参与者提到比特币核心PR #10823作为一种替代方法——它允许任何交易被替换,但前提是交易在节点内存池中花费了一定时间(最初建议为 6 小时;后来建议为 72小时)。
    Riard 的电子邮件和会议参与者都指出,任何更换不包含 BIP125 选择加入信号的交易的提议都需要商家的反馈,目前取决于 BIP125 的行为。Optech 鼓励任何此类商家回复邮件列表线程。

对服务和客户端软件的更改

在这个月度功能中,我们重点介绍了比特币钱包和服务的有趣更新。

  • Trezor Suite 增加了 RBF 支持:Trezor 的钱包软件 Trezor Suite在 21.2.2 版本中增加了对费用替换 (RBF) 的支持。RBF 是默认开启的,并且也被 Trezor 的一些硬件设备支持。
  • Lightning Labs 宣布推出 Terminal Web:在最近的一篇博客文章中,Lightning Labs 描述了他们基于 Web 的 Lightning 节点评分仪表板Terminal Web。
  • Spectre v1.4.0 发布:Spectre v.1.4.0添加了使用 BIP125 opt-in Replace-by-Fee (RBF) “取消”交易的功能。
  • Phoenix 添加 LNURL-pay:ACINQ 的移动钱包Phoenix在其v1.4.12 版本中添加了对LNURL-pay协议的支持。
  • JoinMarket v0.8.3 发布:JoinMarket v0.8.3添加了提供自定义更改地址和 Electrum 兼容的隔离见证签名消息实现的功能。

准备主根 #1:BECH32 发送支持

关于开发人员和服务提供商如何为即将在块高度 709,632 处激活主根做准备的每周系列的第一部分。

从区块 709,632 开始,预计在 11 月,比特币用户将能够安全地接收到主根地址的付款。鉴于用户对主根的热情以及钱包开发人员必须对其实施支持的五个月时间,Optech 预计会有几个流行的钱包允许用户尽早生成主根地址。

这意味着将比特币发送到用户提供的地址的任何其他钱包或服务都需要能够在块 709,632 之前发送到主根地址,否则可能会让用户感到困惑和失望。Pay to TapRoot (P2TR) 地址使用BIP350中指定的bech32m,这与用于隔离见证 v0 P2WPKH 和 P2WSH 地址的BIP173的 bech32 算法略有不同。Bech32m 在校验和函数中使用常量 0x2bc830a3 而不是 bech32 的 0x01。

更改单个常量提供了验证 bech32m 校验和的能力,但代码仍然需要对现有的 P2WPKH 和 P2WSH 地址使用原始常量。代码需要在不验证校验和的情况下对地址进行解码,确定它是使用 v0 segwit (bech32) 还是 v1+ segwit (bech32m),然后使用适当的常量验证校验和。有关示例,请参阅更新了 C、C++、JS 和 Python 的 bech32 参考实现的PR。如果代码已经使用了参考库,则可以将它们更新为该存储库中的最新代码,但请注意,某些 API 有轻微更改。BIP350 和参考实现提供了所有 bech32m 实现都应该使用的测试向量。

尽管在块 709,632 之前接收到主根地址的付款是不安全的,但发送付款不应给发件人带来任何问题。自 0.19 版(2019 年 11 月发布)以来,Bitcoin Core 已支持使用主根支付输出的中继和挖掘交易。Optech 鼓励钱包和服务的开发人员立即支持支付 bech32m 主根地址,而不是等到主根激活后。

发布和发布候选

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

  • LND 0.13.0-beta是一个新的主要版本,它通过将锚点输出作为默认的承诺交易格式来改进费率管理,增加了对使用修剪过的比特币全节点的支持,允许使用原子多路径(AMP)接收和发送付款,并增加了 LND 的PSBT功能,以及许多其他改进和错误修复。

显着的代码和文档更改

本周比特币核心、C-Lightning、Eclair、LND、Rust-Lightning、libsecp256k1、硬件钱包接口(HWI)、Rust 比特币、BTCPay 服务器、比特币改进提案(BIP)和闪电螺栓的显着变化。

  • Bitcoin Core #21365增加了钱包为主根支出创建签名的能力——keypath 支出仅使用 P2TR 公钥,scriptpath 支出使用tapscript。钱包也可以为使用主根的PSBT 签名,但前提是钱包已经拥有它需要的所有密钥路径或脚本路径信息。有点相关的合并 PR #22156仅允许在主根激活后导入该密钥路径和脚本路径信息(主网上的块 709,632,但在已经启用主根的测试网络上,现在可以使用导入)。
  • Bitcoin Core #22144在消息处理线程中随机化了对等方的服务顺序,该线程负责解析和处理来自对等方的 P2P 消息并将消息发送到这些对等方。以前,消息处理线程将按照与这些对等方的连接首次建立的顺序为每个对等方循环提供服务。此 PR 更改逻辑,以便在消息处理循环的每次迭代中,对等方的服务顺序是随机的。对等点仍然以相同的频率提供服务(每个对等点每次迭代服务一次),但避免了依赖于服务对等点的确定性排序的任何弱点或漏洞利用。
  • Bitcoin Core #21261可以更轻松地将入站连接保护扩展到更多网络,然后使用该框架将I2P添加到受保护网络列表中。当比特币核心正在修剪高延迟连接时,多样性保护(通常称为驱逐保护)允许一些具有理想特征的对等点保持连接。在匿名网络上保留与对等点的一些连接是非常可取的,因为它允许交易创建者使用这些网络来隐藏他们的网络身份,并且因为除了常规 Internet 协议之外,通过这些网络接收块的能力可以防止某些类型的蚀攻击。
  • Rust Bitcoin #601添加了对解析bech32m地址的支持,并要求使用 bech32m 而不是 bech32 对 v1+ 原生隔离见证地址进行编码。
  • 当用户选择使用热钱包接收付款时,BTCPay Server #2450会默认生成与payjoin兼容的发票。创建钱包屏幕上的按钮允许用户选择退出此默认设置。
  • BTCPay Server #2559添加了一个单独的屏幕,用于指导用户选择如何签署他们从钱包中花费的交易。对于热钱包,服务器可以只签名,但对于密钥存储在其他地方的钱包,一个有吸引力且信息丰富的 GUI 现在引导用户完成签名选项,例如输入他们的恢复助记符、使用硬件签名设备或生成 PSBT转移到签名钱包。

猜你喜欢
发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论信息