/ home / newsletters /
Bitcoin Optech Newsletter #210
本周的周报描述了为非历史地址创建签名消息的 BIP 提议,并总结了关于可证的燃烧少量比特币以防护拒绝服务攻击的讨论。此外还有我们的常规部分,其中包含来自 Bitcoin Stack Exchange 的热门问题和答案、新版本和候选版本的公告,以及流行的比特币基础设施软件的重大变更总结。
新闻
-
● 多格式单签名消息签名:Bitcoin Core 和许多其他钱包长期以来一直支持密钥对一个 P2PKH 地址的任意消息进行签名和验证。而 Bitcoin Core 不支持对任何其他地址类型的任意消息进行签名或验证,包括单签名 P2SH-P2WPKH、原生 P2WPKH 和 P2TR 输出的地址。先前可以与任意脚本一起使用的、提供完全通用的消息签名的 BIP322 提议,尚未被合并到 Bitcoin Core 或被添加到任何其他我们所知的流行钱包。
本周,Ali Sherief 提议用于 P2WPKH 的相同消息签名算法也可用于其他输出类型。对于验证,程序(如果需要)应当推断如何去派生密钥并用地址类型来验证签名。例如,当提供带有 20 字节数据元素的 bech32 地址时,假设它用于 P2WPKH 输出。
开发人员 Peter Gray 指出 ColdCard 钱包已经以这种方式创建签名。开发人员 Craig Raw 表示 Sparrow Wallet 钱包可以验证它们,并且还遵循了 BIP137 验证规则以及在 Electrum 中实现的一组略有不同的规则。
Sherief 正计划编写一个 BIP 来详细说明该行为。
-
● 微销毁的证明:一些开发人员讨论了链上交易的用例和设计。该设计是按照一个小的增量来销毁比特币(“燃烧”比特币)作为资源消耗的证明。如果要展开 Ruben Somsen 的讨论主题帖中的一个示例用例,该思路是允许 100 个用户在他们的电子邮件中附加一个证明 1 美元比特币已被烧毁的证据,以提供反垃圾邮件的一种防护。这个思路最初也被描述为 hashcash 的一种有益效果。
上述讨论涉及到了几种使用默克尔树解决方案。然而一位受访者认为所涉及的少量销毁,可能会让参与者信任(或部分信任)中心化第三方成为避免不必要复杂性的一种合理方法。
Bitcoin Stack Exchange 精选问答
Bitcoin Stack Exchange 是 Optech 贡献者寻找问题答案或是当我们有一些空闲时间来帮助好奇或困惑的用户时的首选地之一。在这个月度专题中,我们重点介绍了自上次更新以来发布的一些投票率最高的问题和答案。
-
● 为什么
OP_CHECKSIGADD
中的无效签名不推入堆栈? Chris Stewart 询问为什么“如果发现无效签名,解释器会执行失败而不是继续”。Pieter Wuille 解释说,这种行为在 BIP340-342 中定义,旨在支持将来对 schnorr 签名进行批量验证。 Andrew Chow 给出了该行为的另一个原因,指出这种方法也减轻了某些延展性问题。 -
● Bitcoin Core 中的包是什么,它们的用例是什么?Antoine Poinsot 解释了交易包(一组相关交易),它们与交易包中继 的关系,以及最近的交易包中继 BIP 提议。
-
● 使用掉完整的 UTXO 集需要多少区块空间?Murch 探讨了整合所有现有 UTXO 的假设场景。他计算了每种输出类型的区块空间,并得出结论该过程需要大约 11,500 个块。
-
● 不经济的输出是否需要保留在 UTXO 集中?Stickies-v 指出,虽然从 UTXO 集中删除了确信不可用的 UTXO,包括大于脚本最大体积的脚本或
OP_RETURN
,但如果这些输出被花费,删除 不经济的输出可能会导致问题,包括 Pieter Wuille 指出的硬分叉。 -
● libsecp256k1 中是否有代码应该移动到 Bitcoin Core 代码库?与其他将 Bitcoin Core 代码库各部分模块化的努力类似,例如 libbitcoinkernel 或进程分离,Pieter Wuille 指出了 libsecp256k1 项目的明确责任区域:任何涉及对私钥或公钥的操作。
-
● 挖历史低难度区块的 DoS 攻击 Andrew Chow 解释说 assumevalid 以及最近的
nMinimumChainWork
有助于过滤掉低难度链攻击。
软件的新版本和候选版本
流行比特币基础设施项目的新版本和候选版本。请考虑升级到最新版本或帮助测试候选版本。
-
● BTCPay Server 1.6.3 为这个流行的自托管支付处理器添加了新功能、改进和错误修复。
-
● LDK 0.0.110 向该库添加了多种新功能(许多在此前的周报中介绍过)用于构建启用闪电网络的应用程序。
重大代码及文档变更
本周内,Bitcoin Core、Core Lightning、Eclair、LDK、LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BDK、Bitcoin Improvement Proposals (BIPs) 和 Lightning BOLTs 出现的重大变更。
-
● Bitcoin Core #25351 确保在将地址、密钥或描述符导入钱包后,后续的重新扫描不仅会扫描区块链,还会评估交易池中的交易是否与该钱包相关。
-
● Core Lightning #5370 重新实现了
commando
插件,并使其成为 CLN 内置的一部分。Commando 允许节点使用闪电网络消息接收来自授权节点的命令。节点使用 runes。进行授权。这是一种基于 macaroons 简化版本的自定义 CLN 协议。尽管 Commando 现在已内置到 CLN 中,但它只有在用户创建 rune 身份验证令牌时才可操作。更多信息,请参阅 CLN 的 commando 和 commando-rune 手册。 -
● BOLTs #1001 建议,节点在广播了更改其支付转发策略后,应继续接受使用旧策略接收付款约 10 分钟。这可以防止由于发送方不知道最近的策略更新而导致的付款失败。有关采用此类规则的实现示例,请参见 周报 #169。