/ home / newsletters /
Bitcoin Optech Newsletter #318
本周的周报宣布了一个讨论比特币挖矿的新邮件列表。此外,还包括我们常规的栏目,总结了来自 Bitcoin Stack Exchange 的热门问题和答案,新版本和候选版本的公告,以及对流行比特币基础设施软件的最近更改的描述。
新闻
-
● 新比特币挖矿开发邮件列表: Jay Beddict 宣布了一个新的邮件列表,用于“讨论新兴的比特币挖矿技术更新,以及比特币相关软件或协议变化对挖矿的影响。”
Mark “Murch” Erhardt 在邮件列表中发布询问,已在testnet4中部署的时间扭曲攻击修复程序,是否会在主网上部署时(例如作为共识清理软分叉的一部分)导致矿工创建无效区块。Mike Schmidt 提到读者可以参考比特币开发邮件列表中的一个关于不经意份额的讨论线程(参见周报 #315)。
Bitcoin Stack Exchange 的精选问答
Bitcoin Stack Exchange 是 Optech 贡献者们寻找疑惑解答的首选之地 —— 也是他们有闲暇时会帮助好奇和困惑用户的地方。在这个月度栏目中,我们会举出自上次出刊以来出现的一些高票的问题和回答。
-
● BIP152 致密区块是否可以在节点验证前发送? Antoine Poinsot 指出,在验证被区块头所承诺的所有交易之前就转发致密区块,是拒绝服务中的一种攻击向量。
-
● Segwit(BIP141)是否消除了 BIP62 中列出的所有 txid 熔融性问题? Vojtěch Strnad 解释了 txid 如何被篡改,Segwit 如何解决熔融性问题,什么是无意的熔融性,以及与策略相关的一个拉取请求。
-
● 为什么 2024 年代码库中仍然有检查点? Lightlike 指出,随着“区块头预同步”的加入,Bitcoin Core 代码库没有 已知 的检查点需求,但他强调检查点可能正在防御着某些 未知 的攻击向量。
-
● Bulletproof++ 作为类似 SNARK 的通用 ZKP? Liam Eagen 详细描述了当前使用的简洁非交互知识证明(SNARKs)类型,以及 Bulletproofs、BitVM 和 OP_CAT 如何在比特币脚本中验证这些证明。
-
● OP_CAT 如何用于实现额外的限制条款功能? Brandon - Rearden 描述了提议的 OP_CAT 操作码如何为比特币脚本提供限制条款功能。
-
● 为什么有些 Bech32 比特币地址包含大量的 ‘q’? Vojtěch Strnad 揭示了 OLGA 协议如何将任意数据编码到 P2WSH 输出中,该方案中需要用到 0 来填充(0 在bech32 中编码为 ‘q’)。
-
● 0-conf 签名债券是如何工作的? Matt Black 概述了如何将资金锁定在基于 OP_CAT 的限制条款中,以激励花费者不通过RBF增加他们的交易费用,从而可能增加零确认交易的接受度。
新版本和候选版本
热门比特币基础设施项目的新版本和候选版本。请考虑升级到新版本,或帮助测试候选版本。
-
● Core Lightning 24.08rc2 是此流行闪电网络(LN)节点实现的下一个主要版本的候选版本。
-
● LND v0.18.3-beta.rc1 是此流行 LN 节点实现的小修补版本的候选版本。
-
● BDK 1.0.0-beta.2 是此库的候选版本,用于构建钱包和其他比特币应用程序。原始的
bdk
Rust 包已重命名为bdk_wallet
,并将底层模块提取到各自的包中,包括bdk_chain
、bdk_electrum
、bdk_esplora
和bdk_bitcoind_rpc
。bdk_wallet
包“是第一个提供稳定 1.0.0 API 的版本。” -
● Bitcoin Core 28.0rc1 是此主流全节点实现的下一个主要版本的候选版本。测试指南正在准备中。
重大的代码和文档变更
本周出现重大变更的有: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。
-
● LDK #3263 通过从
ResponseInstruction
结构体中删除消息类型参数,并基于更新后的ResponseInstruction
引入一个新的枚举类型的MessageSendInstructions
,简化了 洋葱消息 响应的处理。该枚举变量可以处理盲化路由和非盲化路由的回复路径。send_onion_message
方法现在使用MessageSendInstructions
,允许用户直接指定回复路径。一个新的选项MessageSendInstructions::ForReply
允许消息处理程序稍后发送回复,而不会在代码中创建循环依赖。参见周报 #303。 -
● LDK #3247 废弃了
AvailableBalances::balance_msat
方法,转而使用ChannelMonitor::get_claimable_balances
方法,这提供了获取通道余额的更直接和准确的方法。已弃用的方法逻辑现已过时,因为它最初设计用于处理余额包含挂起 HTLC(这些 HTLC 可能会在以后被逆转)时的潜在下溢问题。 -
● BDK #1569 添加了
bdk_core
包,并将bdk_chain
中的一些类型迁移到该包中:BlockId
、ConfirmationBlockTime
、CheckPoint
、CheckPointIter
、tx_graph::Update
和spk_client
。bdk_esplora
、bdk_electrum
和bdk_bitcoind_rpc
链源已更改为仅依赖于bdk_core
。这些更改旨在加快bdk_chain
的重构速度。