区块链 区块链技术 比特币公众号手机端

Lighter 如何将区块证明时间从 5.3 分钟压缩至约 1 分钟

图像

在过去一个月中,Lighter 的平均区块证明时间通过两项独立工作(分别于 7 月 23 日和 8 月 23 日上线)从约 5.3 分钟降至约 1 分钟。简而言之,Lighter 现在可以更快地验证区块,从而提升容量、降低基础设施成本,并创造更大的扩展空间。这两项工作是:

  • Heavy/Light 分解 —— 一项业务逻辑优化:我们改变了需要证明的内容,利用了绝大多数交易所交易在结构上都很简单这一事实。这将证明时间缩短了一半。
  • 来自 Eigen Labs 证明竞赛的 Prover 后端优化 —— 对 Plonky2 prover 的纯基础设施优化:相同的电路、相同的约束,但证明速度大幅提升。我们正在分批推出这些优化;第一批已于 8 月 23 日上线,再次将证明时间缩短了一半以上。

在此过程中的一项辅助改动:8 月 10 日,我们将所有 Schnorr 签名验证批量合并为每个区块单个 Plonky3 证明——带来约 20% 的改进(即下方时间线中的中间小台阶)。

这两者完全正交:Heavy/Light 改变了每笔交易为哪个电路付费,而后端工作则让证明这些电路的机器运转得更快。它们的加速效果相互叠加——而竞赛优化的其余部分仍在产品化过程中,预计将再带来约 2 倍的提升,使总加速达到相对 7 月中旬的约 10 倍。

图像

在 Chasing Microseconds 中,我们描述了 Lighter 的执行层和 API 层如何实现 55 ms 的端到端 p99;本文要讲的是之后发生的事情:Lighter 上执行的每一笔交易——下单、清算、转账、充值、提现——都会通过零知识证明进行异步证明,每个证明都在前一个证明的基础上扩展,形成一条单一有效的状态转换链。证明吞吐量决定了交易所在合理时间内能够证明和结算多少持续负载,同时也决定了运行该协议的成本。

Heavy/Light 分解:引入状态跳转

交易在本质上差异很大:修改报价只需要一小部分约束,而撮合场景则需要大量昂贵的算术运算来进行健康检查。在单体电路中,每笔交易都要支付最坏情况的成本。对实际分布的测量显示,活动主要由做市商维护报价构成——只有不到 2% 的交易会产生成交。

图像

因此,我们将交易电路一分为二:一个 Light 电路,恰好覆盖占主导地位的简单交易所需的内容(nonce 和签名检查、订单簿更新、单账户健康检查);以及一个 Heavy 电路——即完整电路——用于撮合、清算、L1 优先级操作、转账及其他所有操作。每个区块被证明为两条独立的证明链,它们与区块的预执行证明一起被递归聚合为单个区块证明;上层聚合层没有任何变化。

图像

由于轻量交易占主导地位,平均区块的证明成本接近 Light 电路的成本:

图像

技术上的难点在于,轻量和重量交易在执行顺序上是交错的,因此每条链都必须跳过由另一条链证明的区段——而一个接受任意中间状态作为新起点的电路是不健全的。我们的状态跳转协议让每条链将其已证明的部分折叠进一条覆盖哈希链(“从交易 i 到 j,我把状态根 A 变成了 B”),并将其跳过的部分折叠进一条声明哈希链(“我假设在 j 和 k 之间,B 变成了 C”)。在区块聚合时,区块电路强制执行:

heavy.coverage == light.claims
light.coverage == heavy.claims

一条链所假设的每一个转换恰好是另一条链所证明的转换;由于交易索引唯一且连续,两条链必须完美地铺满整个区块——没有空隙、没有重叠、没有替换的状态。区块电路还将两条链固定到相同的初始状态根,并从包含最后一笔交易的链获取区块的输出根。这两个电路以不同的成本完全独立地证明,同时保持与单个顺序电路完全相同的健全性。

注意这项优化没有触及的部分:证明系统、域算术、哈希函数、prover 实现。它纯粹是对每笔交易为哪些约束付费的重构——由交易所业务逻辑驱动——这也是为什么下文的每一项后续改进都能叠加在其之上。

Lighter Prover 挑战赛

第二项工作则直接攻击证明栈本身。我们与 @eigenlabs 合作,在 @yukonresearch 上举办了一场公开的证明竞赛:我们发布了一个包含真实 500 笔交易 Lighter 区块的基准测试框架,任何人都可以提交针对 Plonky2 prover 的优化,使其在 Apple Silicon 上证明得更快——并通过固定且可信的 verifier 确保任何提交都无法削弱约束却仍能通过测试。参赛者向挑战仓库提交 pull request,合并后的优化在相同电路上叠加成显著的加速。感谢 Eigen Labs 组织并运营这场竞赛,也感谢每一位提交方案的参赛者。

合并后的工作正在分批审查和产品化。主要改进领域包括:

  • Merkle 树和 Poseidon2 哈希后端重写(占总节省时间的约 20%):在 prover 最热的循环中进行缓存友好的缓冲区管理和向量化哈希。
  • 使用 NEON Goldilocks 域算术的并行 heavy/light 链递归 worker(约 10%):两条证明链并发递归,采用手工向量化的域运算。
  • 多项式算术和 FFT 优化(约 10%):更快的批量除法、旋转因子复用以及更高的 FRI 折叠 arity。
  • 打包门电路求值(跨多个提交合计约 15%):为最常见的门电路(范围检查、Poseidon2、五次扩域运算)提供专门的约束求值内核,取代通用求值器。
  • Metal GPU 卸载:Merkle 哈希和 FRI 的部分工作迁移到 Apple Silicon 的 GPU 上,并与 CPU 路径进行了差分测试。

第一批已于 8 月 23 日上线,将每台机器的中位区块证明时间从约 133 秒降至约 59 秒,在所有三个 Mac mini 机群中表现一致——剩余的工作预计将再次将其减半:

图像

生产环境的变化

Lighter 的主要证明层是一个 Apple Silicon Mac mini 机群——高单核性能、高内存带宽、每笔已证明交易的成本约为云 ARM 实例的一半——并由弹性云端溢出层作为支撑。7 月中旬时,溢出层每天都会触发,经常运行数千个任务长达数小时,证明积压在 1 万至 8 万笔交易之间波动。每次上线新优化都提升了同一机群的持续容量——如今其处理能力已经轻松超过有史以来观测到的最高负载——而溢出层的使用骤降为罕见的短暂突发,积压量现在仅在几千笔的低水平徘徊。

图像

图像

对交易者而言,这体现为提现最终性:当提现所在区块的证明结算到 L1 时,提现才最终完成,因此当负载超过 prover 能力时,提现延迟会急剧膨胀。自 7 月中旬以来,这一阈值已翻了四倍多,而在 Heavy/Light 上线后,平静期的下限从约 21–22 分钟降至约 16–17 分钟,并随着证明时间的缩短持续下降。提现延迟的 p99 归属于 prover,而这项工作正是为了这个 p99。

总结与下一步计划

剩余的竞赛优化与我们自身的调度改进相结合,将带来又一次显著的加速。在测试中,一个在竞赛前生产代码上耗时约 187 秒的 500 笔交易区块,现在只需不到 30 秒即可完成证明。这些改进正在经历同样的审查和上线流程。

指标 7 月中旬 Heavy/Light 之后 今天 近期(预期)
平均区块证明时间 约 5.3 分钟 约 2.5 分钟 约 1 分钟 约 30 秒
机群证明吞吐量 约 3,500 tx/s 约 7,000 tx/s 约 15,000 tx/s 进一步提升
云端溢出使用 每天,持续数小时 罕见的短暂突发 上线以来为零
每笔已证明交易成本 基线 约一半 约五分之一 约十分之一

两个正交的杠杆——每笔交易证明得更少,以及证明得更快——叠加起来已经超过 5 倍,随着其余优化陆续上线,10 倍指日可待。

这对交易者意味着什么

交易者感知不到证明时间;他们感受到的是一笔提现在 L1 上最终确认需要多久。这段延迟是一个基线(一个区块证明和聚合所需的时间)加上每当交易量超过 prover 能力时形成的队列。机群一直是弹性的,会随着积压增长按需增加机器,但启动机器并非瞬时完成,因此在交易量剧烈飙升期间,提现延迟可能升到约 21 分钟的下限之上,直到溢出层跟上为止。

由于基础机群的持续容量现已远高于有史以来的最高负载,交易量飙升无需等待溢出层即可被吸收,因此队列保持在接近零的水平,提现时间维持在基线上。更快的证明进一步降低了这一基线,从约 21–22 分钟降到今天的约 16–17 分钟,未来还会更低。最终性不仅更低,更重要的是,在波动性飙升期间与平静市场期间保持一致。

我们期待分享更多我们在基础设施方面取得的技术进展。我们还将在接下来几天内公布 Lighter Proving Contest 的获胜者。

  • 原文链接: x.com/Lighter_xyz/status...
  • 鸿途知科网 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
版权声明

本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门