本周比特币Optech周报涵盖BIP322通用签名格式的重大更新,包括人类可读前缀、UTXO信息纳入和PSBT签名支持;提出利用TCP打洞技术帮助NAT后的比特币节点接受入站连接,讨论了中继服务器和Tor/I2P方案;还介绍了Ibis Wallet、LDK Server、Mempool.space v3.3.0等服务更新,以及Bitcoin Core、Eclair、LDK、LND等代码变更,涉及RBF、拼接通道、Erlay、BOLT12联系人等主题。
BIP322:通用签名消息格式的重大更新:Oliver Gugger 在 Bitcoin-Dev 邮件列表中发帖,分享了他关于如何完善 BIP322 的构想。Gugger 在 btcd 中实现支持时,注意到该提案中存在多个开放性问题与空白。他提出了三项主要修订:
经过一些讨论并吸纳关于 PSBT 构造的反馈后,BIP322 的更新已发布(参见 第 405 期新闻通讯)。Gugger 将 BIP322 推进至完成状态,表明该规范现已稳定并可供实现。自更新以来,有消息重新浮现:Coldcard 在三月已提供了对 BIP322 的支持。
之前已实现对早期版本 BIP322 支持的项目,应检查其与新规范的兼容性,因为该更新引入了破坏性变更,包括新的可读前缀和修订后的资金证明签名格式。
针对 NAT 后比特币节点的 TCP 打洞技术:0xB10C 在 Delving Bitcoin 上发帖,讨论了一种使家庭路由器 NAT 后的更多节点能够接受入站连接的想法。最初的概念源于观察到:自 Bitcoin Core v30.0 起默认设置 -natpmp=1 并未如预期那样增加住宅 ISP 中可达节点的数量。
该想法借助打洞技术,这种技术允许位于某些类型 NAT 后的两台主机直接连接,无需通过服务器中继流量。过程如下:两个不可达的主机 Alice 和 Bob 通过第三方交换其公共端点(即 IP 地址和端口),并同时互相发起连接。这会在 NAT 中创建一个映射,从而允许主机完成握手并建立连接。由于该技术基于 TCP 工作,而 TCP 要求节点间精确同步,因此与使用 UDP 的类似技术相比,失败率更高。
0xB10C 提到了多种使用比特币 P2P 协议进行实现的方案。第一组方案需要一个桥接节点(称为会合服务器)来让 Alice 和 Bob 交换端点信息。该服务器可以提供匹配服务,让不可达主机提供其连接槽位,或者它可以决定将某个现有连接转交给其他对等节点,而不是因缺少空闲入站槽位而驱逐该连接。他还描述了一种直接在 Tor/I2P 下执行打洞的方法,绕过了建立连接所需的第三方服务器。在这种方法中,Alice 会在一个专用的 Tor/I2P 端点上开始监听,Bob 连接到该端点并启动打洞过程。
该提案尚未正式确定,许多问题仍未解答。0xB10C 征求社区反馈,并邀请讨论以解决许多开放性问题,例如如何分类打洞连接、TCP 打洞的可靠性、可能的攻击以及实现工作量。
在本月度专题中,我们重点介绍比特币钱包和服务的有趣更新。
Ibis Wallet 宣布发布: Ibis Wallet 是一款基于 BDK 构建的 Android 钱包,支持 UTXO 控制、RBF 和 CPFP 费用管理、多重签名、使用二维码的硬件签名设备集成、静默支付以及 Tor 集成。它还支持可选的第二层,包括 Spark、Liquid,以及未来将支持的 Ark。
LDK Server 宣布发布: Spiral 宣布了 LDK Server,这是一个面向支付处理商和钱包提供商的 API 优先闪电节点守护进程,基于 LDK Node 构建。它提供 gRPC 接口、嵌入式基于 BDK 的钱包,以及用于 AI 代理与节点交互的模型上下文协议(MCP)服务器。
Mempool.space v3.3.0 发布: Mempool v3.3.0 增加了 taproot 脚本树可视化、更新的 PSBT 预览、改进的 费用估算、临时粉尘支持、过时区块比较、sighash 图标以及默克尔证明 API 等功能。
peer-observer P2P 监控工具: 0xB10C 概述了他的 peer-observer 平台使用的一些开源组件,包括用于从 Bitcoin Core 节点通过 IPC、日志、P2P 和 RPC 源提取事件的基础设施。他还描述了正在进行的关于归档、异常检测和警报工具的开发。
近期在 Bitcoin Core、Core Lightning、Eclair、LDK、LND、libsecp256k1、硬件钱包接口 (HWI)、Rust Bitcoin、BTCPay Server、BDK、比特币改进提案 (BIPs)、Lightning BOLTs、Lightning BLIPs、Bitcoin Inquisition 和 BINANAs 中的值得注意的变更。
Bitcoin Core #29136 新增一个 addhdkey RPC,该 RPC 导入指定的 BIP32 扩展私钥,若未指定则生成一个,但不使用它来产生任何输出脚本。这使得钱包可以存储一个签名密钥供将来使用(例如用于多重签名脚本),而无需立即从中生成地址。该 PR 还新增了一个 unused(KEY) 描述符类型,由 listdescriptors 返回,这样存储的密钥就可以包含在钱包备份中。
Bitcoin Core #34893 更新了 combinepsbt RPC,使其在合并 PSBT 时保留 BIP174 专有字段(参见新闻通讯 #72 和 #181)。此前,combinepsbt 会静默地丢弃专有字段,导致应用特定的 PSBT 元数据丢失。decodepsbt RPC 已能正确解析、序列化和显示这些字段。
Bitcoin Core #34860 从 CreateNewBlock() 方法中移除了 include_dummy_extranonce 选项(参见新闻通讯 #392)。Bitcoin Core 现在在创建区块高度 0 到 16 时,始终将虚拟填充追加到内部 coinbase scriptSig 中,因为这些高度下 BIP34 的高度编码本身太短,无法满足共识的最小 scriptSig 长度要求。但是,填充不会包含在通过挖矿 IPC 接口暴露给 Stratum V2 客户端的 CoinbaseTx 结构体的 scriptSigPrefix 字段中(参见新闻通讯 #310 和 #388)。
Bitcoin Core #31298 更新了 combinerawtransaction RPC,使其拒绝不相关的交易,而不是静默地返回第一个交易且不报告无法合并。Bitcoin Core 现在会剥离每个交易的输入 scriptSig 和见证数据,比较得到的未签名交易哈希,若它们不匹配则返回错误。
Bitcoin Core #28802 为 ArgsManager(Bitcoin Core 的 CLI 参数解析器)增加了对命令特定选项的支持。命令现在可以声明哪些选项适用于它们,使 ArgsManager 能够在相关命令的帮助输出下列出这些选项,并自动拒绝无效的命令-选项组合。该 PR 将此应用于 bitcoin-wallet 的 -dumpfile 选项(参见 新闻通讯 #32),该选项现在仅注册给 dump 和 createfromdump 命令。
Eclair #3298 更新了其内部 RBF 逻辑,以遵循新的 BOLT2 费率提升规则,该规则旨在确保在低费率下符合 BIP125 的替换规则。Eclair 现在不再仅应用之前的 25/24 费率倍增器,而是使用两者中较大的值:该倍增器或额外的 25 sat/kw。这与新闻通讯 #400 中介绍的 LDK 行为以及新闻通讯 #404 中介绍的 BOLT 规范更新相匹配。
LDK #4575 新增了一个 splice_in_inputs API,允许用户在将资金拼接到通道时手动选择 UTXO。所选 UTXO 将被完全消耗,其价值减去费用后加入通道,不会创建找零输出。这补充了现有的基于金额的拼接输入流程,在该流程中,调用者指定要添加的金额,钱包选择输入。但是,这两种输入选择流程不能在同一资金贡献中混合使用。
LND #10814 移除了已弃用的 SendPayment、SendPaymentSync、SendToRoute、SendToRouteSync 和 TrackPayment 端点,这些端点原定在版本 0.21 中移除(参见新闻通讯 #340)。调用者应使用 V2 替代品:SendPaymentV2、SendToRouteV2 和 TrackPaymentV2。该 PR 还移除了已弃用的单通道 outgoing_chan_id 字段,要求调用者使用多通道 outgoing_chan_ids 字段(参见 新闻通讯 #33)。
Rust Bitcoin #6191 增加了对用于 Erlay 交易协调的 sendtxrcncl P2P 消息进行编码和解码的支持。Bitcoin Core 已作为 Erlay 支持的早期部分添加了对该消息的支持(参见新闻通讯 #223)。然而,完整的 Erlay 交易协调尚未实现。
BLIPs #42 增加了 BLIP42,这是一份关于 BOLT12 联系人的规范。由于 BOLT12 报价可以重复使用作为静态闪电支付指令,钱包可以将报价存储为联系人。BLIP 定义了可选的 invoice_request 字段,付款人在向联系人进行出站支付时可以包含这些字段,例如联系人秘钥、付款人自己的报价或 BIP353 名称。这使得收款人能识别来自已知联系人的支付、添加新联系人,以及在无需额外交互的情况下将资金退回给付款人。
- 原文链接: bitcoinops.org/en/newsle...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
作者暂未设置收款二维码