/ home / newsletters /
Bitcoin Optech Newsletter #323
本周的周报宣布了一个即将发布的安全披露,还包括了我们常规的部分:描述新版本、候选版本以及对热门比特币基础设施软件的重大变更介绍。
新闻
- ● 即将到来的 btcd 安全披露: Antoine Poinsot 在 Delving Bitcoin 中发布消息,宣布将在 10 月 10 日披露影响 btcd 全节点的共识漏洞。根据活跃节点的粗略调查数据,Poinsot 推测约有 36 个 btcd 节点容易受到攻击(其中 20 个节点也易受已公开的漏洞影响见周报 #286)。在回复中,btcd 维护者 Olaoluwa Osuntokun 证实了该漏洞的存在,并指出该漏洞已在 btcd 版本 0.24.2 中修复。鼓励运行较旧版本的用户升级到最新版本,该版本已经被宣布为安全的关键版本。
版本和候选版本
热门的比特币基础设施项目的新版本和候选版本。请考虑升级到新版本或帮助测试候选版本。
-
● Bitcoin Core 28.0 是主流全节点实现的最新主要版本,这是首个包含了 testnet4、机会性一父一子(1p1c)包中继、默认中继选择性拓扑限制直到确认(TRUC)交易、默认中继支付到锚点pay-to-anchor交易、有限的包手续替换 RBF中继以及默认全面的手续费替换 full-RBF 的版本。已添加 assumeUTXO 的默认参数,以允许使用在比特币网络之外下载的 UTXO 集(例如通过 torrent 下载)来使用
loadtxoutset
RPC。该版本还包括许多其他改进和错误修复,详情请见其版本说明。 -
● BDK 1.0.0-beta.5 是这个用于构建钱包和其他支持比特币的应用程序的库的候选版本(RC)。这个最新的 RC 版本“默认启用了 RBF(手续费替换),更新了 bdk_esplora 客户端以重试因速率限制而失败的服务器请求。
bdk_electrum
包现在还提供了一个 use-openssl 功能。”
重大的代码和文档变更
本周的重大变更有:Bitcoin Core、Core Lightning、Eclair、LDK、LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BTCPay Server、BDK、Bitcoin Improvement Proposals (BIPs)、Lightning BOLTs、Lightning BLIPs、Bitcoin Inquisition 和 BINANAs。
-
● Bitcoin Core #30043 引入了端口控制协议(PCP)的内置实现,以支持 IPv6 pinholing,允许节点在不需要手动配置路由器的情况下变得可访问。此更新用 PCP 替换了现有的用于 IPv4 端口映射的
libnatpmp
依赖,同时还实现了一个回退机制到 NAT 端口映射协议(NAT-PMP)。虽然 PCP / NAT-PMP 功能默认是禁用的,但在未来的版本中可能会改变。见周报#131。 -
● Bitcoin Core #30510 为
Mining
接口添加了一个进程间通信(IPC)包装器 (见周报#310),允许独立的 Stratum v2 挖矿进程通过连接和控制bitcoin-node
进程来创建、管理和提交区块模板(见周报#320)。Bitcoin Core #30409扩展了Mining
接口,增加了一个新的waitTipChanged()
方法,该方法可以检测新区块的到来,然后将新的区块模板推送给已连接的客户端。waitfornewblock
、waitforblock
和waitforblockheight
RPC 方法已被重构以使用它。 -
● Core Lightning #7644 为
hsmtool
工具添加了nodeid
命令,该命令返回给定的hsm_secret
备份文件的节点标识符,以将备份与其特定节点匹配,并避免与其他节点混淆。 -
● Eclair #2848 实现了可扩展的流动性广告,如 BOLTs #1153所指出的那样,允许卖家在其
node_announcement
消息中广告他们愿意向买家出售流动性的费率,然后买家可以连接并请求流动性。这可以在创建双向注资通道时使用,或在通过通道拼接向现有通道添加额外流动性时使用。 -
● Eclair #2860 添加了一个可选的
recommended_feerates
消息,供节点向其对等节点告知他们希望用于注资通道交易的可接受费率。如果一个节点拒绝了对等节点的注资请求,对等节点将理解这是由于费率原因。 -
● Eclair #2861 实现了“空中加油”(on-the-fly)注资,如 BLIPs #36所指出的那样,允许没有足够入账流动性的客户端通过流动性广告协议(见上面 PR)向对等节点请求额外流动性,以接收付款。流动性卖家承担双向注资通道或是通道拼接交易的链上交易费用,但后续便可在路由支付时得到买方的支付。如果金额不足以支付交易确认所需的链上费用,卖家可以双花它以在其他地方使用他们的流动性。
-
● Eclair #2875 实现了注资费用积分,如 BLIPs #41 所指出的那样,允许 on-the-fly 注资 (见上面 PR) 客户端接受太小而不足以支付通道链上费用的付款(但同时积累费用积分)。一旦积累了足够的费用积分,对手就会创建一个链上交易,如通道注资或通道拼接。客户端要依赖流动性提供者在未来的交易中兑现费用积分。
-
● LDK #3303 为入账支付添加了一个新的
PaymentId
,以改善幂等事件处理。这允许用户在节点重启期间重放事件时轻松检查事件是否已被处理。依赖PaymentHash
时可能出现的重复处理风险被消除。PaymentId
是支付中包含的 HTLC 通道标识符和 HTLC 标识符对的基于哈希的消息认证码(HMAC)。 -
● BIPs #1600 对BIP85 规范进行了几项更改,包括指定
drng_reader.read
(负责读取随机数) 是一个一级函数而不是一个评估。此更新还澄清了字节序处理,增加了对 testnet的支持,包括一个新的 Python 参考实现,澄清 HD 钱包种子钱包导入格式(WIF) 使用最高有效位,添加了葡萄牙语语言代码,并修正了测试向量。最后,为 BIP 规范指定了一个新的拥护者。 -
● BOLTs #798 合并了 offers 协议规范,引入了 BOLT12,同时也对 BOLT1 和 BOLT4进行了几项更新。