Scroll 的技术与架构设计

Scroll 近期在一级市场的表现非常好,所以我们今天来深入了解一下 Scroll 的技术与架构设计。

Scroll 是一个 EVM 等效的 zkRollup 以太坊扩容方案,核心的模块是 zkEVM, 用于证明 EVM 在 Layer2 中执行的正确性。目前已经开发了一年的时间,并与以太坊基金会的隐私小组进行了深入的合作。

为了使得 zkEVM 变成一个完整的 zkRollup,Scroll 围绕 zkEVM 构建了一个完整的 Layer2 架构。

目前的架构包含了中心化的排序节点与去中心化的证明网络,但未来 Scroll 将会把排序节点也去中心化,使得整个网络更加健壮。

Scroll 的架构

目前的 Scroll 架构包含三个主要的组件:

  • Scroll 节点:从用户交易中构建 L2 的区块,提交到以太坊主网,并在 L1 和 L2 之间传递信息。

  • Roller 网络:生成 zkEVM 的证明,确保交易被正确执行。

  • Rollup 和桥合约:为 Scroll 交易提供数据可用性,验证 zkEVM 证明,允许用户在以太坊网络和 Scroll 之间转移资产。

这些组件的角色关系我们可以从下图中得出:

Scroll 节点

Scroll 节点是应用和用户与 Scroll 网络交互的主要方式,Scroll 节点包含了三个模块:

Sequencer(序列机)

Sequencer 提供了一个 JSON-RPC 接口从而获得 Layer2 上的转账信息。每隔几秒,Sequencer 会从 L2 的内存池中获得一系列转账记录,执行这些转账并生成新的 L2 区块与新的状态根。

Scroll 上的 Sequencer 是基于经过时间验证的 Geth(Go-ethereum)开发的,目的是为了保证兼容性和安全性

Coordinator(协调器)

当新的 L2 区块被生成之后,Coordinator 会从 Sequencer 中获得交易执行记录。然后 Coordinator 将执行记录分派到从 roller 池中随机选择的 roller 以生成证明。

Relayer(中继器)

Relayer 会监视部署在以太坊和 Scroll 上的 Rollup 和桥合约,这主要有两个作用。

首先是监控 Rollup 合约以跟踪 L2 块的状态,包括数据可用性和有效性证明。

其次,Relayer 监视部署在以太坊和 Scroll 上的桥合约的存取款事件,并将消息在两条链之间中继。

Roller 网络

Rollers 在网络中充当证明者,负责为 zkRollup 生成有效性证明。**Rollers 有望利用 GPU、FPGA 和 ASIC 等加速器来减少验证时间和验证成本。**下图显示了 Roller 如何为每个块生成有效性证明:

  • Roller 首先将从 Coordinator 接收到的执行序列转换为 circuit witnesses。

  • 其次,Roller 为每个 zkEVM 电路生成证明。

  • 最后,Roller 使用证明聚合方法将来自多个 zkEVM 电路的证明组合成一个块证明。

Rollup 和桥合约

Scroll 通过 Rollup 和桥合约来连接以太坊主网和 Scoll 网络,保证 L2 交易的数据可用性,并使用户可以在 L1 和 L2 之间转移资产。

Rollup 合约从 Sequencer 中获取 L2 的状态根作为 calldata。这为 Scroll 块提供了数据可用性,并利用以太坊的安全性来确保包括 Scroll Relayer 在内的索引可以重建 L2 块。一旦建立 L2 区块有效性的区块证明已被 Rollup 合约验证,相应的区块将被视为在 Scroll 上最终确定。

部署在以太坊和 Scroll 上的 Bridge 合约允许用户在 L1 和 L2 之间传递任意消息。在这个消息传递协议之上,Scroll 还构建了一个去信任桥接协议允许用户双向桥接 ERC-20 资产

要从以太坊向 Scroll 发送消息或资金,用户需要在 Bridge 合约上调用 sendMessage。

Relayer 将在 L1 上索引,并将其发送到 Sequencer 以包含在 L2 块中。从 Scroll 发送回以太坊的消息在 L2 Bridge 合约上使用了类似的过程。

Scroll 的 zkRollup 是如何工作的

将上述的三个模块放在一起,我们就可以知道 Scroll zkRollup 的整个工作流程了,如下图所示:

Scroll 中的 L2 区块生成之后,将提交给以太坊主网,具体的过程如下:

  1. Sequencer 生成了一系列的块,对于第 i 个块,Sequencer 执行追踪 T,并将其发送给 Coordinator。同时,Sequencer 将交易数据 D 作为 calldata 提交给以太坊上的 Rollup 合约以获得数据可用性,再将由此产生的状态根和交易数据作为状态提交给 Rollup 合约。

  2. Coordinator 随机选择一个 Roller 为每个块生成有效性证明。为了加快证明的生成过程,可以在不同的 Roller 上并行生成不同的区块证明。

  3. 在为第 i 个块生成证明 P 后,Roller 将其发送回 Coordinator。每隔 k 个块,Coordinator 向另一个 Roller 派发一个聚合任务,将 k 个块的证明聚合成一个证明 A。

  4. 最后,Coordinator 将聚合证明 A 提交给 Rollup 合约,通过对照先前提交给 Rollup 合约的状态根和交易数据承诺来验证聚合证明,最后确定 L2 上的 [i+1,i+k] 之间的块。

经过这样的过程 Scroll 上的区块会被最终确定下来,每个 L2 的区块在这一过程中会经历三个过程,其分别为:

Precommitted(预确认):表示一个区块已经被 Sequencer 提交并发送给 Rollers。

Committed(确认):表示区块的交易数据已经被发布到了以太坊网络的 Rollup 合约上。

Finalized(完成):表示此区块的交易已经被正确地执行。

综上所述,Scroll 能够在 L2 上执行 EVM 字节码,同时从以太坊主网继承强大的安全性保证。这也是 Scroll 这种 EVM 等效和其他 EVM 兼容方案的最大不同点。

Subscribe to DAOVoice
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.