「在 Scroll,我们采用社区驱动的方式来开发整个 zkEVM,我们相信正确的方式就是从一开始就与社区一起建设。」
撰文:张烨,Scroll 联合创始人
zkEVM 在过去两年内是一个非常流行的话题。它可以说已经成为了扩容以太坊的标准技术方案 — 不仅在 Layer 2 实现,而且还直接在 Layer 1 —「最终将以太坊本身 SNARK 化」。我们从一开始就与隐私和扩容研究(PSE, Privacy and Scaling Explorations) 团队一起推动这个雄心勃勃的梦想,并致力于在未来继续共同构建它。
在本文中,我想分享我们在构建 zkEVM 时吸取的一些经验教训,以及我们如何考虑不同的权衡取舍。我们采用了与生态中其他项目不同的方案,这使得我们处在一个独一无二的地位。
Scroll 根本上是由开源方案支持的。我们正在使用 Zcash 证明堆栈,并且从第一天起就与 PSE 团队共同构建 zkEVM 电路。我们感谢社区的努力和所有正在构建的工具。本着开源精神,我们的一个重要理念是尽可能多地回馈社区,并以更开放协作的方式与社区继续构建。这使我们的价值观有别于其他项目。更具体地说,我们做了以下几件事,使 Scroll 的开发由社区驱动:
通过社区驱动的方式进行构建的好处是显而易见的。我们可以与一群人一起集思广益,获得更多创意。它也可以说更安全,因为每个 PR 都会得到其他社区成员的更多评论。一些公共部分甚至可以跨项目共享 —— 例如,Axiom 实现了配对电路,这是 zkEVM 预编译最难的部分之一。
但是,在开放环境中进行构建当然也有所取舍。在一群人中进行协调变得更加困难(不仅在沟通方面,而且在优先级方面)。它会放缓开发速度,因为许多 PR 需要审查并且合并的标准因此也有所提高。
我们的 zkEVM 的独特之处在于我们还在维护一个 python 版本的规范,类似于以太坊一直在为其 consensus-spec 和 execution-spec 所做的那样。维护这个规范可以让不熟悉 Rust 和 Halo2 的人理解电路逻辑。据我所知,没有其他 zkEVM 实现会花时间来做这件事,因此他们都为了可以更快地发布主网。
在 Scroll,我们采用这种社区驱动的方式来开发整个 zkEVM。我们相信正确的方式就是从一开始就与社区一起建设。 请注意,「社区驱动的开发」不仅仅意味着开源。这并不意味着私下构建然后某天突然开源所有代码。它应该通过有多少外部贡献者,以及项目是如何随着时间的推移而发展来衡量。我们接受在早期阶段速度较慢的取舍,但随着我们的社区不断扩大,我们相信后期社区驱动开发的力量。
以太坊采用了类似的策略来实现其愿景和价值,称为「做减法」。这个想法很简单 — 他们不是自己构建所有东西,而是尽可能地支持社区。它帮助他们寻求正确的平衡,并专注于对他们真正重要的事情。我们正在做完全相同的事情。我们会问自己,“我们可以为社区提供什么样的支持来帮助他们开发?“ 我们相信,我们以社区为导向的方式将使我们在该领域取得独一无二的地位。
这种理念使我们有别于其他竞争对手,后者拥有大量人员构建多个内部解决方案,并且在各个方向疯狂营销。而我们只专注于交付最重要的部分并引领正确的方向。
与其他 alt L1 相比,安全性是人们相信 Layer 2 的最大原因——你可以从以太坊继承安全性,而无需信任 Layer 2 的运营者。但所有现有的 Layer 2 项目仍远未达到该标准,具有不同程度的辅助轮。例如,对于 optimistic rollups,即使许多现在已经在主网上线,他们仍然需要可升级的密钥并且不支持无许可的欺诈证明。
对于 zkEVM,这也是一个大问题 —— 每个玩家都在进行一场漫长的比赛,无论他们选择如何实现主网,都需要多次迭代。 一些关于 zkEVMs 的基本问题还没有解决。例如,证明者成本将不同于执行成本,这将影响 Layer 2 的 gas 定价或引入安全漏洞。
我们一直在考虑安全问题,并努力做出最佳决策。我在下面列出了其中一些决定:
为了保持高标准的安全性,我们选择让每个版本都更加稳定,并迭代现有版本以不断提高稳健性和性能。 我们将使 Twitter 每周更新中的所有内容更加透明。
我们安全第一的理念是我们的路线图的第一决定因素。它可以帮助我们决定应该走哪条方向,同时还可以回答以下问题:
我将在后续帖子中逐一回答这些问题。
回想以太坊的历史,以及为什么人们认为它是可信的中立的。这不仅仅是因为先进的技术,还因为取得今天的成就它所走过的道路。以太坊在每一层都是去中心化的(决策透明度、社会共识等)。同样,我们定义了多个不同层的去中心化目标,并为自己设定了极高的标准:
在构建扩容解决方案时,我们与以太坊保持高度一致。以太坊有一个雄心勃勃的最终目标,即“zk-SNARK everything” — 构建一个以太坊等效的 zkEVM,可用于证明主网区块。想象有一天,验证者不需要重新执行 Layer 1 区块,而是只需要验证一个简洁的零知识证明。想象有一天,你可以通过一个证明来验证以太坊的整个历史。是不是超级刺激?
这正是 PSE 团队的目标!作为在同一代码库上开发了大约 2 年的共同构建者,我们正在直接推动这一雄心勃勃的目标。
现在已经提出了一些标准来对不同类型的 zkEVM 进行分类。然而,它更像是一个更高层面的规范,描述了最终结果应该是怎样。作为推动以太坊等效 zkEVM 的主要贡献者之一,我们想提出一些不同的东西来区分目标和实现目标的实际路径。 如下是我们想实现 SANRK 以太坊的道路:
目前,我们正处于推出产品完备的字节码兼容 zkEVM 的第一阶段,我们致力于与整个社区一起建设以太坊的未来。构建一个高性能和足够安全的以太坊等效的 zkEVM 可能需要数年时间,涉及证明系统升级、新电路设计以及软件和硬件加速方面的创新。但更重要的是,要在 Layer 1 层面采用它,以太坊本身必须做出一些改变。在实现最终目标之前,以太坊的所有重要升级都需要考虑 zkEVM。
目前主流的想法是 Layer 2 单向适配 Layer 1 的变化。然而,随着 rollups 的成熟,我们认为情况不应再如此。Rollups 应该在推动 Layer 1 的变化方面发挥作用,并且 Rollup 团队应该在 Layer 1 的基础设施方面发挥更重要的作用(4844、Danksharing、Verkle 树、PBS、1559 等)。我们需要注意向后兼容性的影响,但历史包袱不应该限制未来发展。整个生态系统应该协调一致,打造一个更好的以太坊。
我们从一开始就采用社区驱动的方式来开发 zkEVM,并致力于以更协作的方式继续构建并回馈社区。我们非常重视安全性和去中心化,我们正在专注于实现这些目标的具体方案。出于我们的安全性理念,我们为自己设定了一个高标准,让每个版本都更加安全和稳定。出于我们的去中心化理念,我们正在追求所有不同层面的去中心化,包括我们的技术堆栈、开发过程、生态系统、社区和社会多样性。
我们希望尽可能地推动区块链的开放性和抗审查性。我们选择了一条从一开始就独一无二的道路。我们已经将自己定位在不仅要构建 Layer 2,还要推动实现 SNARK 整个以太坊的雄心勃勃的目标。我们的理念是,像以太坊一样运作,致力于 infinite garden 的同一个未来!
相关链接
0xPARC 演讲
http://learn.0xparc.org/materials/halo2/learning-group-1/cost-model/
Devconnect:
https://twitter.com/Scroll_ZKP/status/1521677531438628864
伯克利活动
https://www.youtube.com/watch?v=Ct6H5GcnA0A&t=2395s
零知识证明应用研究系列
https://youtube.com/playlist?list=PLrzRr7okCcmbAlgYpuFjzUJv8tAyowDQY
审计人员会议:
https://www.youtube.com/playlist?list=PLrzRr7okCcmZmDrVozX5hhBQlsrpZdsij
Twitter 每周更新
https://twitter.com/Scroll_ZKP/status/1621573571259793408
python-specs
https://github.com/privacy-scaling-explorations/zkevm-specs
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。