Scroll zkEVM 进展-202301
2023-04-04 本文已影响0人
雪落无留痕
Scroll zkEVM 已经推出测试网,目前处于Pre-Alpha 阶段。
Scroll 代码并未完全开源,合约,Relayer, Coordinator部分并未公开。
zkEVM 架构
Scroll zkEVM 主要由以下三个组件组成:
- Scroll Node: 接收用户的交易,构建L2 区块,并提交到以太坊,负责L1和L2之间的通信;
- Roller Network: 生成zkEVM 有效性证明;
- Rollup and Bridge Contracts: 提供数据可用性,验证zkEVM 有效性证明,实现资产在L1 和 L2 之间跨链。
Scroll Node
Scroll 节点主要有三个模块;
- Sequencer: 通过JSON-RPC接口接收用户交易,生成L1块区块并执行,产生新的状态根;
- Coordinator: 当生成新的区块后,Coordinator 从Sequencer 获取
Execution Trace
,并随机选择一个Roller生成证明; - Relayer: 监听Rollup合约的L2区块和证明的提交; 监听以太坊和L2之间存取款事件;
Roller 网络
Rollers负责生成有效性证明,可以利用GPU,FPGA, ASIC等加速证明生成。
Roller从Coordinator 获取 Execution Trace
, 然对对每个电路生成一个证明,再将多个证明聚合成一个区块证明。
zkRollup 工作流
zkRollup工作流如下所示:
-
首先由Sequencer 产块,并生成execution trace, 发送给Coordinator。 同时将区块的交易提交到Rollup合约中;
-
Coordinator随机选择一个Roller, 为每个一个区块生成一个有效性证明。为了加速证明的生成,证明的生成可以并行执行,即由多个Roller同时为多个块生成证明。
-
Roller 在生成证明之后,将其提交到Coordinator; 对于每k个区块,Coordinator 会选择一个Roller 派发一个聚合任务,将k个区块的证明聚合成一个证明;
-
Coordinator 接收到聚合证明后,将其提交到Rollup 合约进行验证。