本周的 Newsletter 包括我们定期提供的内容,涵盖过去一个月内 Bitcoin Stack Exchange 上的最佳问答、关于为 Taproot 做准备的最新专栏、新软件的发布与候选发布列表,以及对流行的比特币基础设施软件的显著变更描述。

新闻

本周无重大新闻。

Bitcoin Stack Exchange 精选问答

Bitcoin Stack Exchange 是 Optech 贡献者寻找问题答案的首选场所之一——或者当我们有空时,会帮助那些好奇或困惑的用户。在这一每月特辑中,我们将重点介绍自上次更新以来发布的一些高票问题和答案。

准备 Taproot #6:通过使用学习 Taproot

关于开发者和服务提供商如何为即将到来的 Taproot 激活做好准备的系列文章。

将近两年前,James Chiang 和 Elichai Turkel 创建了一个开源仓库,其中包含一系列 Jupyter 笔记本,旨在为 Optech 组织的开发者培训提供 Taproot 技术相关内容。在旧金山、纽约和伦敦举办的研讨会收到了积极的反馈,但由于旅行限制,后续的线下研讨会未能如期进行。

自 Jupyter 笔记本发布以来,Taproot 发生了多项变更。然而,Taproot 支持已合并到 Bitcoin Core,这使得这些笔记本可以不再依赖于 Bitcoin Core 的自定义分支。开发者 Elle Mouton 友善地更新了这些笔记本,使其适应所有的更改,使其再次成为快速掌握 Taproot 算法和数据类型的绝佳实践工具。

这些笔记本分为四个部分:

  • 第 0 部分 包含一个帮助您设置环境的笔记本,涵盖椭圆曲线密码学的基础知识,并介绍 BIPs 340341342 中广泛使用的标签哈希。

  • 第 1 部分 指导您创建 Schnorr 签名。掌握这些知识后,您将学习如何使用 MuSig 协议创建多重签名

  • 第 2 部分 带您全面了解 Taproot。首先回顾 Segwit v0 交易的基本原理,然后帮助您创建和发送 Segwit v1(Taproot)交易。在掌握第 1 部分知识后,您将学习如何使用 MuSig 创建并花费 Taproot 输出。随后,您将接触密钥调整(key tweaking)概念,并学习如何利用 Taproot 公钥承载数据承诺。掌握承诺创建后,您将了解 Tapscript——其与传统及 Segwit v0 脚本的区别,以及如何创建 Tapscript 树的承诺。最后,一个简短的笔记本将介绍如何使用 Huffman 编码来创建最优的脚本树。

  • 第 3 部分 提供了一个可选练习,内容是创建一个 Taproot 输出,该输出会随着未花费时间的增加而改变所需的签名数量——在正常情况下提供高效的花费方式,同时在出现问题时提供强大的备份方案。

这些笔记本包含众多相对简单的编程练习,确保您真正掌握所学内容。本专栏作者并非优秀的程序员,但能够在六小时内完成所有笔记本练习,并遗憾没有更早学习这些内容。

发布与候选发布

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

重要的代码和文档变更

本周在 Bitcoin CoreC-LightningEclairLNDRust-Lightninglibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay Server比特币改进提案(BIPs)闪电网络规范(BOLTs) 中的显著变更。

  • Bitcoin Core #22387 限制每个对等节点平均每 10 秒处理的地址公告数量。超出限制的地址将被忽略。可以将对等节点列入白名单,以允许其超出此限制。此外,节点明确请求的地址公告不受此限制影响。该限制估计约为当前 Bitcoin Core 节点地址公告速率的四倍。

  • C-Lightning #4669 修复了其闪电网络报价解析和验证逻辑中的多个错误。此外,如果用户尝试创建相同参数的新报价,系统将返回先前创建但尚未过期的报价;这对默认不设置到期日期的报价尤为有用。

  • BIPs #1139 添加了 BIP371,该文档规范了在 Taproot 交易中使用 PSBT(包括版本 0版本 2)的新字段。有关详细信息,请参见 Newsletter #155

致谢与修改

我们最初对 Bitcoin Core PR #22387 的描述错误地声称新速率限制比测得速率高 40 倍。正确数据应为 4 倍。感谢 Amiti Uttarwar 指出此错误。