原文作者:Luozhu
原文编译:Leo,BlockBeats
我还没有深入研究 Hermez 的 zkevm 解决方案(而且 Hermez 的部分代码还没有完全开源),有趣的是,比较 Scroll 和 Polygon Hermez 的 zkevm 是一个很好的视角,可以帮助大家更好地理解 zkVM 和 zkEVM。
基本上,Scroll 的 zkEVM 解决方案通过「重新实现」整个 EVM 来实现 EVM 等价,EVM 的所有操作都是在 zkevm-circuits(zk 电路)中定义的,这需要很多步骤 (约束) 来证明。
Hermez 的 zkEVM 解决方案是不同的,他们不是重新实现一个 EVM,而是实现一个特定的 zkVM,并将 EVM 操作对应到他们自己的 zkVM。所以,证明 EVM 的操作等同于证明 Hermez 的 zkVM 中的对应操作,并且 zkVM 有非常大的自由度,它们可以避免 EVM 中的 zk-unfriendly 部分。
用不同的方法来定义 Hermez 是 zkEVM 还是 zkVM:
-只要你能证明所有来自 EVM 的操作都是正确的,满意——Hermez 是 zkEVM;
-必须重新实施完整的 EVM,不满意——Hermez 是 zkVM
因此,Scroll 和 PSE 的 zkEVM 非常复杂 (奇迹般地实现了 zk-unfriendly 部分)。我们的 zkEVM 有 34469 行代码,但是 Hermez 的 zkEVM 只有不到 3000 行代码,点击了解
最初权衡 Scroll/PSE 的 zkEVM 是很难实现的,但后期处理 EVM 更新很容易,Hermez 的 zkEVM 最初很容易实现,但后续更新很困难(可能需要重新设计 zkVM),并且,PSE 方案更适合 Layer 1,后续升级也容易,并且因为 Scroll 直接和 PSE 合作(甚至贡献了同一次回购),后续升级 Scroll 的 zkEVM 也很容易。
一个值得展望的未来是:我们将证明生成时间优化到 12 秒(正好在提出一个 slot 的时候),这时候 zkEVM 可以直接用在 Layer 1 的生产环境中,运行一个节点的限制也会降低。
如果 zkEVM 可以直接用于 Layer 1,那么主网会有自己的 prover,如果证明生成时间可以优化到 12s,我认为会考虑一个有助于加速的 prover 网络(硬件加速、社区参与等)。
Scroll 将来会有自己的 Prover 网络,其路线图如下:
-Pre-alpha 测试网升级
-Alpha 测试网
-去中心化 roller 网络
-启动主网
所以如果 Scroll 的 roller 网络运行良好(可能会有新的共识机制),将会对 Layer 1 产生直接影响,以太坊主网很可能会学习 Scroll 的经验,尝试用 roller-network 的方式来加速自己的 zkEVM(达到 12s)。
Rollup 是 layer 1 的一个创新的测试领域,不仅涉及新颖的应用程序,还涉及这些底层基础设施。目前有多个 zkEVM 实现由不同的 rollup 团队领导,从长远来看,这对 rollup 和 Layer 1 都有好处,对于 rollup,我们可以使用其他 zkEVM 实现来检查我们自己的 zkEVM 是否遗漏了约束条件或存在 bug 等。
一个 zkEVM 生成证明,其他 zkEVM 验证其过程。
如果 multi-zkEVM 能够形成合作机制,Layer 1 没有理由不直接学习这种方式,当然,没有那么多 layer 2 团队会实施共识层 zkEVM(但仍然可以学习他们的设计方式)。
不管怎样,未来我们仍然会看到关于 zkEVM 的非常活跃的讨论,会有更多的设计、更多的创新、更多的 bug,最后是 layer 1 上的 EVM - > zkEVM 的升级。我们还将看到 layer 1 上学到的 rollup 创新,帮助以太坊本身变得更好(不仅是更低 Gas 的交易)。
最后,Hermez 有一个很棒的团队,在 zkEVM 和 zkp 领域有突出贡献,我认为不同的 L2 团队应该更多地沟通/协作,因为我们都在同一条战线上,我们都是以太坊的盟友,我们来这里是为了扩展以太坊,让区块链准备好迎接下一个阶段和下一个十亿用户。