zkSync:Boojum 升级 —— zkSync Era 的高性能去中心化证明系统
“zkSync Era 正在过渡到新的 Boojum 证明系统,无需重新生成。”
原文作者:zkSync
原文来源:mirror
原文标题:Boojum Upgrade: zkSync Era’s New High-performance Proof System for Radical Decentralization
编译:Yvonne,MarsBit
注:原文来自zksync,CHAINLOOK整理编译。
升级:zkSyncEra正在过渡到新的Boojum证明系统,无需重新生成。
性能:Boojum展示了世界一流的证明性能,与zkSyncEra的排序器相辅相成,后者已经能够处理超过100个TPS。
去中心化:Boojum证明者只需要16GBRAM,可实现未来大规模证明者去中心化
准备就绪:影子证明已经在主网上线。
正如我们在ZKCredo中所阐述的那样,zkSync的使命是通过建立一个无需信任、安全、无需许可、价格合理、易于使用、有弹性和无限扩展的区块链网络,促进所有人的个人自由,使数字自我所有权普遍可用。
为完成这一任务,zkSyncEra的Alpha版本在三个多月前向公众开放,并且反响惊人。在此期间,我们在网络上看到了大量的活动。
数据亮点:
TVL达5.77亿美元
过去30天完成23,750,000笔交易——大多数L2
9,735个经过源代码验证的智能合约
2023年3月,我们推出了zkSyncEra,它基于SNARK的系统,为我们的zkEVM提供支持。这个系统利用了经过多次验证的电路框架,该框架在Mainnet上支持zkSyncLite已经近三年了。然而,我们知道这不会是zkSyncEra的证明系统的最后一次更新,因此我们设计了这个系统,可以在不进行重启的情况下对其进行根本性的改变。这意味着我们可以在不打扰开发者和用户的情况下部署重大的加密升级。
在幕后,我们一直致力于密码学升级,并在一篇名为RedShift的系统论文中充分描述。今天,我们很高兴地宣布首次加密升级:zkSyncEra正在过渡到一个新的基于stark的证明系统,称为“Boojum”。
认识Boojum
Boojum是我们基于rust的算法和约束库的名称,我们使用它来实现zkSyncEra和ZKStack的ZK电路的升级版本。Boojum的灵感来自刘易斯·卡罗尔(LewisCarroll)的诗(TheHuntingofTheSnark),其中Boojum代表了最可怕的Snark类型。
什么是Boojum?
Boojum具有令人瞩目的特性:
PLONK式算术化:在零知识协议的语境下,算术化是将一般计算转换为数学形式的过程。与当前的证明系统一样,我们的升级系统继续采用PLONK式算术。通过这种方法,ZK电路相对于某些替代形式更易于编写,从而使系统更易于开发、审计、维护和升级。
强大的承诺方案:Boojum的核心是FRI承诺方案,它是一个关键的组成部分,使我们能够承诺有界多项式,并随后有效地证明所声称的(多项式的)开放(opening)确实属于低次多项式。
系统效率:尽管当人们谈论证明者的性能时,有时会忽略见证人的生成,但在当前版本的证明系统中,我们已经达到了优化的GPU证明者非常高效的地步,以至于见证人的生成时间与证明的生成时间相当。在Boojum中,我们提供了自动化的并行化(如果依赖关系图允许的话)见证生成,同时保持了像|(a,b)|a+b这样的定义验证生成函数。
扩展性:基础约束系统抽象非常简洁,但它允许用户以各种方式添加自定义门类型,例如为它们添加一些专门的多项式,或重用所谓的“通用列”。当用户为其电路定义了简单的几何形状后,扩展接口提供了自动生成证明者、验证者和递归验证者的能力。这样可以实现非常高效的开发过程;如果用户更改电路结构并选择不同类型的门来使用,他们只需再次调用接口,它将重新生成密钥并确保他们使用正确的证明者和验证者。
单堆栈:在Boojum中,上面列出的所有内容都可以仅用标准的、惯用的Rust来表示,并使用其类型系统的表达性。GPU证明程序中计算量很大的部分是用CUDAc++编写的,但我们为组合提供了Rust绑定。
Boojum默认操作大小为2^64-2^32+1的素数字段(被称为“Goldilocks字段”,最初由MikeHamburg提出,并使用HamishIvey-Law建议的特定参数),并提供相应的字段绑定原语的实现,如Poseidon2哈希函数,以及基于查找表的更标准的加密原语实现,如SHA256,Keccak256和Blake2s。
重要的是,在我们实现的最后一步,我们将用一个不透明的基于配对的SNARK来包装STARK证明——本质上是当前证明系统的一个稍微升级的版本——并且这个SNARK将在以太坊上进行验证。这种证明要小得多,验证起来也便宜得多;这一步降低了证明系统的成本,从而降低了交易本身的成本。
Boojum受益于社区中许多不同人员的工作,我们对他们提出的想法表示感谢。我们从STARK、FRI和DEEP-FRI(Ben-Sasson等人)的基础论文、Poseidon和Poseidon2(Grassi等人)中哈希函数的进步,以及Gabizon、Williamson和Ciobotaru对PLONK算术化的开发中汲取了灵感。此外,Plonky2项目(Farmer、Lubarov、Borgeaud等人)的创新方法(包括PoseidonMDS和Boojum中使用的圆常数的选择),以及Eagen、Fiore、Gabizon和Haböck在缓存商和多元查找研究中提出的新见解。这些宝贵的贡献共同塑造了Boojum的设计。下面是完整的参考文献列表,在Boojum的代码中,我们会在适当的地方注明出处。
为什么设计Boojum?
在设计Boojum时,我们的决策主要基于两个因素:
1)世界一流的证明性能
2)降低去中心化的硬件要求
1.世界一流的性能
我们目前基于SNARK的系统虽然有效,但无法扩展到ZKStack(zkSyncEra作为Hyperchain运行)在未来几年所要支持的大批量、近乎实时的交易。我们为这些系统设想的未来是,证明的生成和验证既便宜又快速,从而实现快速终结和超级链之间的互操作性。
证明系统的性能直接影响用户为其交易支付的价格,随着时间的推移,这些成本需要趋于零。当前版本的证明系统的性能足以用于构建zkEVM,并在短短几个月内处理数百万笔交易,但通过Boojum,我们可以做得更好。
为了测量网络的证明生成时间(以及与性能相关的其他关键指标),我们与Celer达成合作,Celer是一个在基准测试和分析多个证明系统方面具有丰富经验的团队。在下图中,你可以看到Boojum的性能明显优于大多数系统。结果不言自明:我们的实现展示了世界一流的证明性能,据我们所知,这是生产中使用的最快的证明系统。
关于【zkSync:Boojum 升级 —— zkSync Era 的高性能去中心化证明系统】的延伸阅读
Coin Metrics:分析以太坊 Blob 与 EIP-4844 的影响
自3月13日起,多个Layer-2解决方案采用blob交易,超过950,000个blob已发布到以太坊,降低了操作成本。EIP-4844升级提高了L2的可伸缩性和降低交易成本,每天约有10,000个blob发布。blob被设计为18天后过期,防止永久存储膨胀。随着rollups使用blob发布大量数据,blob空间利用率将增加。blob费用根据需求动态调整,4月份因铭文blob激增而增加,但随后又降低。Blob的采用是EIP-4844降低数据存储开销和增强L2可伸缩性的积极信号。然而,跨资产、流动性和用户体验碎片化等挑战仍需解决。随着更多L2利用blob,拥塞可能会再次出现。
Stacks Nakamoto 升级,BTC生态的文艺复兴
Stacks是一个跨链共识区块链,旨在将智能合约功能移植到比特币网络中。其共识机制为转移证明,通过燃烧比特币来参与挖矿。Stacks 2.0主网已推出,获得美国证券交易委员会批准的代币销售。Stacks 3.0升级解决了安全性、性能和可扩展性等问题,引入签名者角色,提高链的可扩展性。Nakamoto升级解决了MEV问题,提高了挖矿过程的公平性和稳定性。升级将在4月22日开始,提高Stacks区块链的透明度和信任度。
为进行同类比较,Celer在基于CPU的证明器上执行了这些基准测试练习,但我们的主网系统使用的是更快的基于GPU的证明器。
你可以点击此处阅读有关Celer基准测试结果的更多信息,包括每个框架之间权衡的详细比较。
向基于stark的证明系统的转变代表了性能的显着提高,并将有助于确保低延迟的最终结果,并支持zkSyncEra和其他基于ZKStack的系统上增加的活动水平。
2.降低对去中心化的硬件要求
当考虑到我们不仅仅优化这一指标时,这些性能结果尤其令人印象深刻——我们希望在提高系统性能的同时,减少运行所需的硬件要求。
目前流行的证明系统,包括我们现有的证明系统,都是硬件密集型的。我们目前的验证系统运行在一个A100GPU集群上,每个GPU都有80gb的RAM。这种对昂贵、强大的机器的需求对我们的目标构成了严重障碍:用户驱动的、去中心化的证明生成的未来。要实现这一目标,仅仅使证明生成无需许可是不够的;用户也不应该需要一个昂贵的机器与数百gb的RAM参与。
这是我们取得巨大进步的另一个领域。我们在Boojum中使用的GPU验证器只需要16gb的RAM,低进入门槛是我们展望未来的重要一步。基于CPU的验证在低至64GBRAM(我们希望低至32GB)的情况下也是可能的,并且可以最大限度地利用现代多核处理器。在我们完成迁移到新的证明系统后,我们将发布更多关于其去中心化计划的信息。
最后,基于zkSyncErarust的排序器已经可以每秒处理100多个交易(TPS)。新证明系统的引入不仅提高了性能,而且降低了硬件要求,使其成为排序器的理想补充。Boojum提高的性能也意味着系统可以更快地证明交易,并且降低硬件要求提高了网络对更便宜的机器的访问,从而提高了水平可扩展性。
Boojum开发历程
团队已经为升级的开发工作了几个月了,我们很高兴现在已经开始在主网上对系统进行测试。我们也想分享一下到目前为止的进展。
zkSyncEra升级
首先,简单介绍一下我们如何执行这样的升级。zkSyncEra的设计方式使我们能够随着时间的推移升级每个组件,证明系统也不例外。
与以太坊类似,我们使用默克尔树数据结构来存储有关网络状态的信息。此信息是证明系统所需要的,因为我们正在证明关于系统状态的语句。这个Merkle树(以及证明系统如何与之交互)的一个关键设计决策是使用非代数哈希函数,特别是Blake2s。如果我们纯粹是为了简化证明生成而进行优化,我们会使用代数哈希函数(例如Poseidon2),但这种选择会将可观察状态与证明系统参数耦合起来——比如选择素数域。任何对证明系统的升级都需要完全再生状态,这对zkSyncEra的用户来说将是一个巨大的颠覆性体验。我们升级证明系统所需的只是在电路中重新实现Blake2s。
Boojum:从设计到审核
大约一个月前,我们开始集中在一个完整的端到端版本的新证明系统的实现上,考虑到这个变化的复杂性和系统正确性的重要性,我们开始进行一系列的内部和外部审计。
zkEVM电路和Boojum算法库当时仍在积极开发中,但我们与外部安全审计员合作,他们专注于早期识别与主电路和Boojum组件的可靠性相关的潜在问题。我们密切合作,为他们提供了源代码和文档的完全访问权限,他们在审查和测试zkEVM电路和Boojum小工具时使用了自动化和手动测试。
通过合作关系,我们能够解决许多早期发现的问题,我们将在下一篇博文中分享有关此过程的更多详细信息。
Boojum:从审查到测试
今天,我们迎来了分阶段推出的下一步:主网影子模式!尽管Boojum纯粹处于测试阶段,但我们很高兴现在能与现有的证明系统一起运行新的证明系统。我们已经在生成和验证主网区块的"影子证明"。
zkSyncEra的主网版本不需要影子证明——它将继续由现有的证明系统提供支持。我们只是验证这些影子证明,以进一步测试和优化系统,但使用来自zkSyncEra用户活动的真实生产数据。
我们也很高兴能够公开进行这项测试,在接下来的几周内,你将看到关于这些影子证明的一些信息的链接,以及区块资源管理器中现有的证明信息,我们正在开源一个CLI工具,任何人都可以使用它来验证任何新的证明。
我们现在真正专注于测试新的证明系统,并且还不打算在以太坊上验证影子证明。在测试阶段,这将在链下完成,因为我们会寻找边缘情况和错误,并继续进一步审查实现。
我们今天还开源了Boojum代码库。你可以在这里找到Boojum的链接。提示:代码库仍在进行中。随着测试的深入,你可能会看到大量的调整、优化、修复和文档改进。我们还将在未来几周开放一些更有趣的仓,包括更新的电路和GPU证明程序。
Boojum:从测试到黄金时段
如我们以往所做的一样,安全是第一位的。只有当我们对新系统的测试完全满意时,我们才会考虑迁移,我们将在未来几周和几个月内分享更多细节。我们还计划进行进一步的审计和安全审查,因为这个令人兴奋的升级即将全面部署,而当前的证明系统已弃用。
我们相信,Boojum,加上我们对创新和用户至上设计的承诺,是更安全、可扩展和高效的zkEVM的下一步。当然,这项工作也将适用于任何使用ZKStack构建的用户。
请继续关注更多细节。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:MarsBit,如有侵权请联系删除。转载或引用请注明文章出处!