本期 Optech Newsletter 特刊总结了 2021 年比特币领域的重大进展。 这是继我们 201820192020 年度总结后的续篇。

目录

一月

经过多年讨论,比特币核心支持Signet的首个版本于 1 月发布,此前 C-Lightning 已支持,随后 LND 也支持。Signet 是任何人都可以使用的测试网络,用于模拟比特币主网(mainnet)的现状或某些变更(如软分叉共识变更激活)后的可能状态。大多数实现 Signet 的软件还支持默认的 Signet 网络,这为不同团队开发的软件提供了一个特别便捷的安全测试环境,最大程度地模拟真实资金环境。同年还讨论了在 Bitcoin Core 的默认 Signet 网络中引入故意的区块链重组,以帮助开发者测试软件应对此类问题的能力。

一月还宣布Bech32m地址的 BIP 草案。Bech32m 地址是对 Bech32 地址的轻微修改,使其可安全用于Taproot及未来协议扩展。同年晚些时候,比特币 Wiki 页面更新了 Bech32m 地址在钱包和服务中的采用情况追踪。

C-Lightning 0.9.3 版本首次发布洋葱消息报价协议新协议。洋葱消息允许闪电网络节点以最小化开销的方式向其他节点发送消息,相较基于HTLC的消息传递更高效。报价协议利用洋葱消息使节点可主动报价支付,接收方节点可返回详细发票及其他必要信息。洋葱消息和报价协议在年内持续作为草案规范,但获得了更多开发进展,包括一项利用它们降低卡顿支付影响的提案。

二月

比特币贡献者们推进了改进签名生成与验证算法的研究进展,并基于研究成果提出了具备额外优化的变体算法。该算法在 libsecp256k1(12)和 Bitcoin Core 中实现后,将签名验证时间缩短约 10%——对于验证比特币区块链中近十亿个签名而言意义重大。多位密码学家参与验证了该变更的数学严谨性和安全性。此次优化还显著提升了低功耗硬件签名设备的安全签名生成速度。

通道阻塞攻击作为闪电网络自 2015 年就存在的已知问题,全年持续引发讨论,先后有多种可行方案被提出。遗憾的是年内未形成广泛认可的解决方案,该问题至年底仍未得到有效缓解。

阻塞攻击示意图

三月

三月围绕量子计算机攻击比特币风险的讨论尤为激烈,尤其针对Taproot激活并被广泛使用后的场景。比特币的原始特性之一 —— 公钥哈希(可能最初是为缩短比特币地址而设计)—— 在量子计算突然取得重大突破时,或能增加攻击者窃取少数用户资金的难度。而 Taproot 未延续此特性,至少有一位开发者担忧这会带来不合理风险。尽管大量反驳论点被提出,社区对 Taproot 的支持度似乎并未受到影响。

2021 年度总结
Taproot 激活之路

截至 2020 年底,包含 schnorr 签名Tapscript 支持的 Taproot 软分叉实现已合并至 Bitcoin Core。这标志着协议开发者的主要工作基本完成,社区可自主选择激活 Taproot,钱包开发者则着手添加对其及相关技术(如 Bech32m 地址)的支持。

  • 1 月:Bitcoin Core 0.21.0 发布,首次支持 Signet 测试网络,其中默认 Signet 已激活 Taproot,为用户和开发者提供便捷的测试环境。

  • 2 月##taproot-activation IRC 频道召开首次后续会议,该频道成为开发者、用户和矿工讨论 Taproot 激活方案的主要平台。

  • 3 月:经过多轮讨论,参与者初步同意尝试名为快速试验(speedy trial)的激活机制,旨在快速收集矿工反馈的同时给予用户充足升级时间。该机制最终成为 Taproot 的实际激活方式

    同期,针对 Taproot 设计中使用裸公钥可能增加量子计算机攻击风险的讨论再度引发关注。多位开发者认为担忧缺乏依据或被过度放大。

    Bitcoin Core 本月还合并了BIP350 支持,使其可支付至 Bech32m 地址。这一改进修复了原 Bech32 地址在极端情况下可能导致 Taproot 用户资金丢失的隐患(原隔离见证版本地址不受此影响)。

  • 4 月:协议开发者与用户就两种快速试验机制的细微差异展开辩论,最终通过妥协方案达成一致,Bitcoin Core 发布包含激活机制和参数的版本

  • 5 月:矿工开始发出信号表示支持 Taproot,进度追踪网站 taproot.watch 获得广泛关注。

  • 6 月:矿工锁定 Taproot 激活,承诺在约 6 个月后的区块高度 709,632 强制执行。钱包开发者随即投入适配工作,闪电网络等基础设施也跟进调整。Optech 启动《Taproot 准备指南》系列文章。

  • 7 月:比特币 Wiki 创建专页追踪 Bech32m 地址格式支持情况,多数钱包和服务商完成适配。其他软分叉提案也吸取 Taproot 经验进行优化

  • 8 月:Taproot 开发进入平静期,部分技术文档完成编写。

  • 9 月:主流商户软件 BTCPay Server 提前支持 Taproot。新操作码 OP_TLUV 提案利用 Taproot 特性实现链上契约

  • 10 月:随着激活日临近,开发者加速测试,BIP 文件扩充测试用例以验证各实现方案。

  • 11 月:Taproot 成功激活。尽管区块 709,632 及其后数个区块未包含 Taproot 交易引发短暂困惑,但矿池迅速调整后即正常处理交易。相关软件持续优化验证流程

  • 12 月:Bitcoin Core 支持描述符钱包生成 Bech32m 收款地址。闪电网络开发者探讨如何利用 Taproot 特性优化支付。

尽管在 Taproot 激活机制的选择过程中遭遇波折,且激活初期出现短暂困惑,但比特币整体上对 Taproot 软分叉的支持工作进展顺利。这远非 Taproot 故事的终结。随着钱包及基础设施开发者逐步挖掘其众多功能,Optech 预计未来数年将持续投入大量篇幅报道相关进展。

四月

LND 在 4 月新增支持原子多路径支付(AMP,Atomic Multipath Payments),因提出时间早于当前主流实现支持的简化多路径支付(SMPs)而被称为原始 AMP。相比 SMP,AMP 具备隐私优势,且确保接收方在申领支付前已收到所有路径款项。其缺点在于无法生成支付密码学证明。LND 将其应用于即时支付场景(该场景本身无需支付证明),从而规避了 AMP 的主要缺陷。

五月

5 月披露了 BIP125 交易替换规范与 Bitcoin Core 实现之间的不一致性。据我们所知,该问题不会导致比特币资金风险,但引发了多轮关于意外交易中继行为对合约协议(如闪电网络)用户影响的讨论。

同月,C-Lightning 项目合并双向资助通道管理插件(双方均可提供初始资金的通道)。结合今年早些时候合并的双向资助功能,该功能使通道发起方不仅能在通道内发送资金,还能在通道初始状态下接收资金。这种初始收款能力使双向资助特别适用于以接收而非发送为主的商户场景。

2021 年度总结
热门基础设施项目主要版本发布

六月

六月讨论的新分析提出了一种矿工选择打包交易的替代方案。该方法预计短期内可小幅提升矿工收益。长期来看,若被广泛采用,支持该方案的钱包在使用 CPFP 追加手续费时可实现协同,从而提高该技术的有效性。

另一项提升手续费追加效率的尝试是提议允许 Bitcoin Core 中的任何未确认交易进行 RBF——而不仅限于通过 BIP125 选择启用的交易。此举或能解决多方协议中的手续费追加难题,并通过统一交易设置提升隐私性。另一项与隐私相关的提案建议,创建 Taproot 交易的钱包应设置默认 nSequence 值(即使无需使用BIP68的共识级序列功能),使需要 BIP68 功能的交易与普通交易特征趋同。两项提案虽无明显反对意见,但进展有限。

六月 Bitcoin Core 合并了实现内存池包接受首个 PR,这是迈向包中继的第一步。包中继允许节点和矿工将关联交易包视为单一交易进行费率评估。例如,一个低费率父交易与高费率子交易组成的包中,子交易的高收益将激励矿工同时打包父交易。尽管 Bitcoin Core 自 2016 年已支持打包挖矿,但此前缺乏交易包中继机制,导致高费率时期低费率父交易可能无法触达矿工,使得闪电网络等使用预签名交易的协议依赖的 CPFP 机制可靠性不足。包中继旨在解决这一关键安全问题。

一项 2019 年提出的闪电网络概念在 6 月重获关注。原始快速转发(Fast Forwards)方案描述了如何通过减少网络往返次数接收或转发支付,从而降低带宽消耗和支付延迟。今年该方案被扩展,提出闪电网络钱包无需每次收款都启用签名密钥即可接收多笔支付,提升了密钥的离线安全性。

七月

经过多年讨论和开发,首个去中心化流动性广告系统实现合并至闪电网络实现中。仍处于草案阶段的流动性广告提案允许节点通过闪电网络 gossip 协议广播其愿意在一定期限内出租资金的意向,使其他节点能够购买入账容量以实现即时收款。看到广告的节点可以通过双向资助的通道开通方式,在支付的同时获得入账容量。虽然无法强制广告节点实际路由支付,但该提案整合了早期方案(后来也应用于 Lightning Pool),确保广告方在约定的租赁期内无法将资金挪作他用。这意味着拒绝路由支付不会带来任何优势,反而会剥夺广告节点赚取路由手续费的机会。

在首次提出比特币核心集成三年后,输出脚本描述符草案 BIP 最终定稿。描述符是包含所有必要信息的字符串,能让钱包或其他程序追踪特定脚本(即地址)或相关脚本集合(如分层确定性钱包)的资金收支。描述符与miniscript的协同使用,可扩展钱包对多样化脚本的追踪和签名支持。其与部分签名的比特币交易(PSBTs)的结合,则能帮助钱包识别多签脚本中自身控制的密钥。截至年底,比特币核心已将基于描述符的钱包设为新建钱包的默认选项

一种从未正式纳入闪电网络协议、但被广泛使用的通道开通方式于七月开始标准化。零确认通道开通(亦称极速通道)是新型单边资助通道,资助方在通道开通时将部分或全部初始资金转移至接收方。这些资金需在通道开通交易获得足够确认后才具备安全性,因此接收方通过标准闪电网络协议将部分资金转回资助方不存在风险。例如:Alice 在 Bob 的托管交易所持有若干 BTC,她请求 Bob 开通向其支付 1.0 BTC 的新通道。由于 Bob 信任自己不会双花新开通的通道,即使该通道交易尚未获得任何确认,他仍可允许 Alice 通过其节点向第三方 Carol 发送 0.1 BTC。对此行为的标准化将提升闪电网络节点与提供此类服务的商户之间的互操作性。

零确认通道示意图

两项关于新签名哈希(sighash)类型的关联提案被整合BIP118。2017 年提出的 SIGHASH_NOINPUT(部分源自十年前的相关提案)被 2019 年首次提出SIGHASH_ANYPREVOUTSIGHASH_ANYPREVOUTANYSCRIPT取代。新 sighash 类型将使闪电网络和保险库等链下协议减少需保留的中间状态数量,大幅降低存储需求和复杂度。对多方协议而言,其优势可能更为显著——可从根本上减少需要生成的不同状态数量。

八月

保真债券(Fidelity bonds)这一概念最早可追溯至2010年,其原理是通过锁定比特币一定时间来为第三方系统中的恶意行为设定成本。由于锁定的比特币在时间锁到期前无法再次使用,其他系统中在此期间被封禁或处罚的用户将无法使用同一比特币创建新虚拟身份。八月,JoinMarket 首次在生产环境中大规模去中心化应用保真债券机制。该机制上线数日内,超过 50 BTC(当时价值逾 200 万美元)被施加时间锁。

一种新型闪电网络路径发现方案于八月引发讨论。该技术的支持者认为,若路由节点仅按路由金额比例收费且不针对每笔支付收取最低基础手续费,方案将最为有效。其他开发者则持不同看法。至年底,该技术的改良版本已在 C-Lightning 中实现。

2021 年度总结
Bitcoin Optech

在 Optech 成立的第四年,我们发布了 51 期周报,为主题索引新增 30 个页面,发表了一篇投稿博文,并(在两位客座作者协助下)撰写了 21 篇系列文章介绍如何为 Taproot 升级做准备。全年 Optech 共发布逾 80,000 字比特币软件研发相关内容,相当于一本 250 页的书籍。

九月

比特币开发者长期探讨的功能之一是:将比特币发送到某个脚本时,能够限制后续接收资金的脚本类型——这种机制称为契约。例如,Alice 将比特币存入一个可由其热钱包支出的脚本,但只能将资金发送至第二个脚本,该脚本会对热钱包的后续支出施加时间延迟。在延迟期内,其冷钱包可申领资金;若未申领且延迟期结束,热钱包即可自由使用资金。九月,新操作码 OP_TAPLEAF_UPDATE_VERIFY提议,用于创建此类契约,其特别利用了 Taproot 可通过单纯签名(密钥路径支出)或类 MAST 脚本树(脚本路径支出)来使用资金的能力。该操作码对创建联合资金池尤其有用,此类资金池允许多用户轻松且无需信任地共享 UTXO 所有权,可显著提升隐私性。

十月

十月,比特币开发者探讨了一种新的交易标识方法来指定其欲花费的比特币集合。当前比特币通过其在上次花费交易中的位置标识,例如”交易 foo 的第零个输出”。新提案允许结合花费交易及其在继承层级中的位置进行标识,例如”交易 bar 的第二个子交易的第零个输出”。该方案被认为可为 eltoo通道工厂瞭望塔等设计带来优势,这些设计均有利于闪电网络等合约协议。

同月,多项闪电网络改进方案被整合为单一提案,可在无需SIGHASH_ANYPREVOUT软分叉或其他共识变更的情况下,实现与 eltoo 相近的效益。该提案将支付延迟降低至接近路径上各路由节点单向数据传输所需时间,并通过在通道创建时备份所有必要数据、在多数恢复场景中动态补全数据来增强弹性。此外,该方案支持使用离线密钥接收支付,特别有利于商户节点减少在线设备使用密钥的时间。

十一月

闪电网络开发者举行了2018 年以来的首次全体峰会,并讨论了多项议题,包括在闪电网络中应用 Taproot(包含 PTLC、用于多签MuSig2eltoo)、将规范讨论从 IRC 迁移至视频会议、当前闪电网络规范(BOLTs)模型的变更、洋葱消息支付要约无卡支付通道堵塞攻击及其缓解方案、以及蹦床路由

十二月

对于单签的链上交易,通过提升手续费(fee bumping)来加速交易确认是相对直接的操作。但对于闪电网络和保险库等合约协议,在需要提升手续费时,可能无法获得所有原始签名者的参与。更糟糕的是,合约协议通常要求特定交易在截止时间前确认——否则诚实用户可能蒙受资金损失。十二月,关于为合约协议选择有效手续费提升机制的研究成果发布,推动了针对这一长期重要问题的解决方案讨论。

总结

我们在今年的总结中尝试了新做法——在不提及任何贡献者姓名的情况下,阐述了 2021 年二十余项重要进展。我们深知所有贡献者的辛勤付出,并衷心希望他们的卓越工作得到认可,但同时也希望表彰那些通常未被提及的无名英雄。

他们花费数小时进行代码审查,为现有功能编写测试以确保其行为不会意外改变,努力调试疑难问题以避免资金风险,以及完成上百项虽不显眼却至关重要的基础工作。

这份 2021 年最终期 Newsletter 谨献给他们。我们虽无法列全这些默默无闻贡献者的姓名,但通过刻意隐去本期所有署名,旨在强调比特币开发是团队协作的成果——其中最关键的工作往往由那些从未在本 Newsletter 中出现过名字的人完成。

我们向这些无名英雄及所有 2021 年比特币贡献者致以谢意。我们迫不及待想见证他们在 2022 年带来的激动人心的新进展。

Optech Newsletter 将于 1 月 5 日恢复每周三定期发布。