深入浅出解读 Scroll 技术架构和工作流程
兰905
发表于 2023-4-26 21:44:15
1125
0
0
为什么呢?" y2 @* M3 P; {. a( U8 l
他们将自己定位为“正确的”ZKR 的典范,具有完整的道德观,并且资金充足。
但除此之外,他们还有伟大的技术来支持这一切。) k2 Q" z+ f$ F* c
以下是他们的架构概览。! _. i; [ A8 T. I: q) N) @
在本篇 thread 中,我将涵盖以下这些主题 :
· 当前的架构
· Scroll 节点、Roller 网络、Rollup 和桥接合约+ m# d9 g! E! \: I( G
· Scroll 的工作流程
不用担心,我将把以上这些内容深入浅出地表达给大家。
还请查看 @_SSLocket 最近的通讯,了解深入的概述。, |, |5 R& {9 ?7 v9 y, X' ]% I
1/ Scroll 的架构由三个基础设施组件组——Scroll 节点、Roller、Rollup 和桥接合约。5 X" r9 X7 o2 l- Q: S, ^% _* J
Scroll 节点负责通过排序器构建和将 L2 区块 roll up 到 Eth L1。$ w/ A; ^8 j$ D1 V. \
2/ 它还促进了 L1 和 L2 之间通过中继器的通信。, s( C' a. n3 a5 K6 n, ^/ h4 S& O
Scroll 节点包括三个部分:序列器、协调器和中继器。
序列器是流行的 Geth 节点的一个分叉,选择它是因为它的可靠性、最大的安全性和经过时间考验的声誉。
3/ 序列器接受来自 L2 mempool 的 L2 事务,并执行它们以创建一个新的 L2 区块,将其更新为当前状态。 P& ^/ ?3 U5 |/ h5 h" m& l7 K
协调器——该区块的执行轨迹被协调器接收,然后将其传递给 Roller 以生成证明。/ ^7 i( R5 s' l
4/ Relayer——也许 Relay-Watchdog 会是这个角色更合适的名字!撇开笑话不谈,中继者的工作是监控(像看门狗一样)rollup 合约,以确保数据的可用性、有效性和一般状态都在掌控之中。
5/ 它还关注 Scroll 和 ETH 上的桥接合约的存款和提款事件,并在它们之间转发消息。4 E4 ~# M8 V" r3 e1 V4 X" z0 J: B& q' k
Roller——Roller 负责生成 L2 交易的有效性证明。6 n) X( w( A i& M; Y0 Q
6/ 它使用 zkp(零知识证明)硬件加速器,如 GPU、FPGA 和 ASIC,以加快证明生成过程并降低其成本。
这是因为证明生成过程中存在瓶颈,而加速器有助于解决这个问题。$ z( Z( B2 \& _: d% `! w
7/ Roller 的功能分 3 个步骤:
1. 我们在前面谈到了执行跟踪;是的,没错,来自协调器的执行跟踪,被 roller 转换为电路见证。1 g: H! i. f' w0 A
2. 然后为每个 zkEVM 电路生成证明。
3. 使用证明聚合,将多个 zkEVM 电路合并为一个证明。
8/ 注意:一个 zk 电路是以算术方式生成的。5 } @! l8 \& n; @ ]0 v
9/ Rollup 和桥接合约——这是 Scroll 的 DA 层,用于 L1 和 L2 之间的信息传递;它通过连接 Ethereum 的基础层来实现。# e- N6 I6 ~) [1 N
Rollup 合约。它从排序器中接收 L2 状态根和区块数据。6 ^4 H5 P% y( s) G
10/ 它将状态根存储在以太坊状态上,区块数据作为调用数据存储在 ETH 上。
这为 Scroll 提供了 DA 支持,并确保 Relayer 的 L2 区块重建。0 x S. i1 Y. @5 ?
11/ 只有当 L2 区块的有效性被 Rollup 合约验证后,L2 区块才被认为在 Scroll 上最终确定。
桥接合约。这是 scroll 上的一个无信任的信息传递/桥接协议,帮助 ERC-20 资产在 L1 和 L2 之间转移。( b! Z1 n0 Q+ g9 L# ^
12/ 这是 Scroll 的 zkR 的工作流程:2 R1 ^* y' F8 C8 Q# C+ s2 ^; T
这个工作流程由上面提到的所有组件组成。2 Z, T" R+ h6 L2 ]4 X
这就是 L2 区块在 ETH 上生成和最终完成的方式:& j4 }9 i8 Q0 w3 J* |) x0 F
13/ 首先,排序器创建一个区块序列,对于每个区块,它生成一个执行跟踪,并将其发送给协调人,同时将交易数据提交给 rollup 合约。
14/ 接下来,协调人随机选择一个 Roller,为每个区块追踪生成一个有效性证明。% p& }. ~! |. o7 Y+ ^1 A
然后,Roller 将区块证明发回给协调人,每隔 k 个区块,就向另一个 Roller 派发一个聚合任务,以合并 k 个区块证明。 r8 A* A/ [5 a7 @
15/...(这里的 k 表示区块的数量)变成一个聚合证明。
最后,聚合的证明由协调人发送到 rollup 合约,以最终确定 L2 区块。1 F% t& l* B. y& E2 A4 J4 l
现在,这就是字节码兼容的 zkR 的架构和功能。
成为第一个吐槽的人