风险提示:防范以虚拟货币/区块链名义进行的非法集资风险。 ——银保监会等五部门

zkSync Boojum 升级详解:从SNARK过渡到STARK

白话区块链 2023-07-18 12:06:40
微信分享

扫码分享

zkSync Era 正在过渡到名为“Boojum”的新的基于 STARK 的证明系统。那么,Boojum是什么?

作者: 0xe9E9…c31E2A / 来源:https://zksync.mirror.xyz/HJ2Pj45EJkRdt5Pau-ZXwkV2ctPx8qFL19

火火/白话区块链

 

TLDR:

1.升级: zkSync Era 正在过渡到新的 Boojum 证明系统,无需重新生成。

2.性能: Boojum 展示了世界一流的证明性能,补充了 zkSync Era 定序器,该定序器已经可以处理超过 100 TPS。

3.去中心化: Boojum 证明者仅需要 16 GB RAM,可实现未来大规模证明者去中心化。

4.准备就绪:影子证明已经在主网上上线!

zkSync 的使命是促进所有人的个人自由——通过构建一个无需信任、安全、无需许可、负担得起、易于使用、有弹性和无限可扩展的区块链网络,使数字自我所有权变得普遍可用,正如我们在 ZK Credo 中阐述的那样

为了履行这一使命,zkSync Era 的 Alpha 版本于三个多月前向公众开放,反响非常惊人。在此期间,我们在网络上看到了重大活动。

网络亮点:

1)锁定总价值 5.77 亿美元(来源:L2Beat

2)过去 30 天内 2375 万笔交易——大多数为 L2 交易(来源:L2Beat

3)9735 个经过源代码验证的智能合约

2023 年 3 月,我们推出了 zkSync Era,其中基于 SNARK 的系统支撑着我们的 zkEVM,利用了近三年来为主网上的 zkSync Lite 提供动力的经过实战考验的电路框架。然而,我们知道这并不是 zkSync Era 证明系统的最终定论,因此我们设计了该系统,以便我们可以对其进行根本性的更改,而无需执行重新生成。这意味着我们可以在不干扰开​​发人员和用户的情况下部署主要的加密升级。

今天,我们很高兴地宣布首次加密升级:zkSync Era 正在过渡到名为“Boojum”的新的基于 STARK 的证明系统。

一、Boojum是什么?

Boojum 是我们基于 Rust 的算术和约束库的名称,我们用它来实现 zkSync Era 和 ZK Stack 的 ZK 电路的升级版本。Boojum 这个名字的灵感来自于刘易斯·卡罗尔 (Lewis Carroll) 的诗《捕蛇者》,其中 Boojum 代表了最可怕的蛇类类型。

我们设计的 Boojum 具有许多引人注目的特性:

1.PLONK 式算术化:在零知识协议的背景下,算术化是将一般计算转换为数学形式的过程。与当前的证明系统一样,我们的升级系统继续采用 PLONK 式算术。通过这种方法,ZK 电路相对于某些替代形式更易于编写,从而使系统更易于开发、审计、维护和升级。

2.强大的承诺方案: Boojum 的核心在于 FRI 承诺方案,它是一个关键组件,使我们能够承诺有界多项式,并随后有效地证明所声称的(多项式的)开放确实属于低次多项式。

3.系统“无聊”部分的效率:尽管当人们谈论证明器性能时有时会忽略见证生成,但在当前版本的证明系统中,我们已经达到了优化 GPU 证明器非常高效的程度,以至于见证生成时间与证明生成时间相当。借助 Boojum,我们提供自动并行(如果依赖关系图允许)见证生成,同时可以轻松定义见证生成函数,例如|(a, b)| a + b.

4.易于扩展:基本约束系统抽象非常薄,但它允许用户以各种方式添加自定义门类型,例如为其添加一些专用多项式,或重用所谓的“通用列”。用户为其电路定义了简单的几何结构后,扩展接口使他们能够自动生成证明器、验证器和递归验证器。这使得开发过程非常高效;如果用户更改电路结构并选择使用不同类型的门,他们只需再次调用该接口即可重新生成密钥并确保他们使用正确的证明者和验证者。

5.单堆栈:使用 Boojum,上面列出的所有内容都可以仅使用标准、惯用的 Rust 来表达,并利用其类型系统的表达能力。GPU 证明器的计算量大的部分是用 CUDA C++ 编写的,但我们提供了用于组合的 Rust 绑定。

Boojum 默认情况下在大小的素数字段2^64 - 2^32 + 1上运行,并提供相应字段绑定原语的实现,例如 Poseidon2 哈希函数,以及基于查找表的更标准加密原语的实现,例如 SHA256、Keccak256 和 Blake2s。

重要的是,在我们实施的最后一步,我们将用一个不透明的基于配对的 SNARK 来包装 STARK 证明——本质上是当前证明系统的略微升级版本——并且这个 SNARK 将在以太坊上进行验证。这个证明的规模要小得多,验证起来也更便宜;这一步骤降低了证明系统的成本,从而降低了交易本身的成本。

Boojum 受益于社区中许多不同人员的工作,全靠业内很多人士宝贵的贡献共同帮助塑造了 Boojum 的设计。

二、为什么是Boomjum?

在设计 Boojum 时,我们的决策背后有两个关键因素:(1) 世界一流的证明性能,(2) 降低去中心化的硬件要求。

1.世界一流的性能

我们当前基于 SNARK 的系统虽然目前有效,但无法扩展到ZK Stack (zkSync Era 作为超链运行)的大容量、近乎实时的交易,目标是在未来几年支持 ZK Stack。我们对这些系统的未来设想是,证明的生成和验证成本低廉且快速,从而实现超链之间的快速确定性和互操作性。

证明系统的性能直接影响用户为其交易支付的价格,并且随着时间的推移,这些成本需要趋向于零。当前版本的证明系统的性能足以构建 zkEVM,并在短短几个月内处理数百万笔交易,但有了 Boojum,我们可以做得更好!

为了测量网络的证明生成时间(以及与性能相关的其他关键指标),我们与 Celer 合作,这是一个在基准测试和分析多个证明系统方面拥有丰富经验的团队。在下图中,您可以看到 Boojum 的性能明显优于大多数所分析的系统。结果不言而喻:我们的实施展示了世界一流的证明性能,据我们所知,这是生产中使用的最快的证明系统。

为了进行同类比较,Celer 在基于 CPU 的证明器上执行这些基准测试练习,但我们的主网系统使用的是基于 GPU 的证明器,速度更快。

转向基于 STARK 的证明系统代表着性能的显着提高,并将有助于确保最终确定的低延迟,并支持 zkSync Era 和其他基于 ZK Stack 的系统上增加的活动级别。

2.降低去中心化的硬件要求

当人们认为这不是我们优化的唯一指标时,这些性能结果尤其令人印象深刻——我们希望提高系统性能,同时降低运行它的硬件要求。

当今流行的证明系统,包括我们现有的证明系统,都是硬件密集型的。我们当前的证明系统运行在 A100 GPU 集群上,每个 GPU 具有 80 GB RAM。这种对昂贵、强大机器的需求对我们的目标构成了重大障碍:用户驱动的、去中心化的证明生成的未来为了实现这一目标,仅仅使证明生成无需许可是不够的;用户也不应该需要具有数百 GB RAM 的昂贵机器来参与。

这是我们取得极其引人注目的进展的另一个领域!我们用于 Boojum 的 GPU 证明器仅需要 16 GB RAM,这种低进入门槛是朝着我们设想的未来迈出的重要一步。基于 CPU 的验证也可以使用低至 64 GB 的 RAM(我们希望能低至 32 GB),并充分利用现代多核处理器。完成向新证明系统的迁移后,我们将发布有关其去中心化计划的更多信息。

最后,基于 zkSync Era Rust 的排序器已经可以每秒处理超过 100 个事务 (TPS)。新证明系统的引入不仅增强了性能,还降低了硬件要求,使其成为定序器的理想补充。Boojum 性能的提高还意味着系统可以更快地证明交易,并且硬件要求的降低改善了网络对更便宜机器的访问,从而提高了水平可扩展性。

三、Boojum 的主网之旅

该团队几个月来一直致力于此升级的开发,我们很高兴能够在主网上测试该系统。我们还想分享一些到目前为止的故事。

1.升级zkSync时代

首先,快速介绍一下我们如何执行这样的升级。首先,zkSync Era 的设计方式是我们能够随着时间的推移升级每个组件,证明系统也不例外。

与以太坊类似,我们使用 Merkle 树数据结构来存储有关网络状态的信息。鉴于我们正在证明有关系统状态的陈述,证明系统需要此信息。为此 Merkle 树(以及证明系统如何与其交互)做出的一个关键设计决策是使用非代数哈希函数,特别是 Blake2s。如果我们纯粹为了简化证明生成而进行优化,我们就会使用代数哈希函数(例如 Poseidon2),但这种选择会将可观察状态与证明系统参数耦合起来 - 例如素数字段的选择。对证明系统的任何升级都需要完全重新生成状态,这对于 zkSync 时代的用户来说将是一次巨大的破坏性体验。

2.Boojum:从设计到审核

大约一个月前,我们开始集中精力实施新证明系统的完整端到端版本,考虑到这一变化的复杂性以及系统正确性的重要性,我们开始进行一系列内部和外部审计。

当时 zkEVM 电路和 Boojum 算术库仍在积极开发中,但我们与外部安全审计员合作,他们专注于及早识别与我们的主电路和 Boojum 组件的健全性相关的潜在问题。我们密切合作,在他们使用自动和手动测试审查和测试 zkEVM 电路和 Boojum 小工具时,为他们提供对源代码和文档的完全访问权限。

通过这种合作关系,我们能够解决许多早期发现的问题,我们将在下一篇博文中分享有关此过程的更多详细信息。

3.Boojum:从审查到测试

这就是我们今天分阶段推出的下一步:主网影子模式我们很高兴现在能够将新的证明系统与我们现有的证明系统一起运行,尽管 Boojum 纯粹处于测试阶段。我们已经在为主网区块生成并验证“影子证明”。

zkSync Era 的主网版本不需要影子证明——这将继续由现有的证明系统提供支持。我们只是验证这些影子证明,以进一步测试和优化系统,但使用来自 zkSync Era 用户活动的真实生产数据。

我们也很高兴能够公开进行此测试,在接下来的几周内,您将看到有关这些影子证明的一些信息的链接以及区块浏览器内的现有证明信息,并且我们正在开源一个CLI任何人都可以用来验证任何新证据的工具。

我们现在真正专注于测试新的证明系统,目前还不打算验证以太坊上的影子证明。在测试阶段,这将在链外完成,因为我们会寻找边缘情况和错误,并继续进一步审查实施情况。

今天我们还开源了 Boojum 代码库。您可以在此处找到 Boojum 存储库的链接警告:代码库仍在进行中!随着我们进一步进行测试,您可能会看到大量的调整、优化、修复和文档改进。我们还将在未来几周内开放一些更有趣的存储库,包括更新的电路和 GPU 证明器。

4.Boojum:从测试到黄金时段

正如我们所做的一切一样,安全是第一位的。只有当我们对新系统的测试完全满意时,才会考虑迁移,并且将在未来几周和几个月内分享更多相关细节。

相信Boojum 加上我们对创新和用户至上设计的承诺,将成为更安全、可扩展和高效的 zkEVM 的下一步当然,任何使用ZK Stack进行构建的人都可以使用这项工作!

请继续关注更多详情。

 

白话区块链

区块链世界入口第一站,人人都能看懂的区块链;24 小时热点实时追踪。