在 ETHDenver 的 Devtopia 舞台上,Scroll 的联合创始人 Haichen Shen 发表了主题为 Scroll 构建 zkEVM 和 zk Rollup 的挑战的演讲,并同步了最新 Alpha 测试网的情况。
$ i% M4 d2 y5 D, jScroll 介绍
Scroll 是一个 EVM 等效的 zk-Rollup 以太坊扩容方案
& L+ f0 I$ Y: k4 ~; z" U在演讲最开始,Haichen 强调了 Scroll 一直以来的原则,一是以社区驱动的方式同社区开放构建,二是确保安全性和稳定的版本发布,三是强调证明者和排序器去中心化的重要性
2 r3 j" l6 u/ l2 H3 q' P, m以下是 zkEVM 开发的社区贡献者,其中大多数来自于 Scroll 团队和 PSE 团队,还有一些其他的社区成员。
3 W% K5 d9 T$ m7 e& U3 T, h% w$ h# b测试网最新进展
2 月 27 日,Scroll 在 Goerli 上线了 Alpha 测试网。Alpha 测试网目前已经是 EVM 等效的,证明已经可以在 Goerli 测试网上得到验证。
$ i9 V) L2 u% H2 E' p而 Alpha 测试网的发布,意味着 Scroll 已经达到了路线图的第三阶段。
下一步就是第四阶段:zkEVM 的主网上线。
2 y! S# ]2 Q p0 U1 p3 z; r$ z# T# ^ - l2 a. }/ ~; J3 e( \) j" o: P对于社区关心的距离主网上线的进度,Haichen 公布了目前仍需要完成的任务,首先是要构建完整的 zkEVM 电路,目前还缺少一些不常见的错误约束,也还需要添加一些预编译合约。随后会进行 zkEVM 电路和跨链桥合约的审计,然后进行最后的优化。
构建 zkEVM 和 zkRollup 的挑战
& T) c- j+ B! x演讲的后半部分,Haichen 分享了 Scroll 在构建 zkEVM 和 zkRollup 过程中遇到的挑战。主要从三个方面来说,第一是编写 zk 电路,第二是编写 zkEVM,第三是构建 zk-Rollup。
E" q" b, k! u5 {! o( v 1 {$ I7 K- q l9 q/ p编写 zk 电路
3 M. z& N4 L, Z在编写 zk 电路中,主要有两个难点。其一是开发的逻辑,正常程序中根据输入 x,y,函数 foo 得到输出 z,而在 zk 电路中,则是根据输入 x,y,foo(x,y),输出是否有效的判断,因此在 zk 电路中需要考虑到有效和无效的所有情况,确保电路的约束成立。
* a5 g* s! ^8 t# _: f/ \ 6 R5 D6 b2 F1 a* l& j其二是有限域的操作,有限域是包含有限个元素的域,这些元素通常是素数。在所用的 BN-254 曲线中为 254 位的值,因此要表示 EVM 的 256 位,则需要拆解成两部分处理。
编写 zkEVM
1 I @9 ?3 R% K3 Q; ~# _9 U在编写 zkEVM 中,Haichen 拆解了 zk 和 EVM 两个部分。EVM 中有三个组成部分,Executor, Stack, Memory。
( H7 V2 \3 G9 @/ I7 x9 ~4 v) {zk 部分则需要对 EVM 的执行过程中进行一一的约束。EVM 电路将约束 Executor 正确执行;RAM 电路将约束 Stack,Memory 的读写正确;Bytecode 电路将约束 EVM 读取的 bytecode 的正确性;MPT 电路将约束存储的读写正确;TX 电路将约束交易的有效性;ECDSA 电路将约束交易中签名的正确性;Keccak 电路则将约束 Keccak 哈希函数的正确计算;还有其他的一些约束等等。所有这些约束组合在一起,就组成了 zkEVM。
) W- ~) T9 J+ c3 m" `构建 zk-Rollup
! _- z- S, x R7 u: l p在构建 zk-Rollup 方面,去中心化证明者网络需要对证明者进行激励。
- O0 s/ W; q5 ~! I+ F. [- s ( M3 |& N7 D( p" v当后续去中心化排序器后,情况会变得更复杂,需要协调证明者网络和排序器网络,目前 Scroll 正在进行开放研究,欢迎有想法的开发者加入研究探讨。
& D% Q# I8 J/ |! M & j' _- @3 p6 b( J, }