Scroll目的是扩展以太坊,其项目核心就是zkevm,用来证明二层执行的正确性。完整架构包括三个部分,本文详细阐述。
原文作者:CryptoYC Tech
原文来源:CYC Labs
Scroll目的是扩展以太坊,具体是用等效evm的zkrollup来实现。所以项目核心就是zkevm,用来证明二层执行的正确性。希望将zkevm变成以太坊上的完整的zkrollup,围绕它构建一个完整的二层架构。
Scroll的zkevm有两个特点
1. 分层的证明系统:将证明和验证分层,对验证和证明双方都友好。
基本思想是验证 EVM 执行跟踪中每个操作码的一致性和完整性。让1层合约无缝迁移到2层。用反向构建来支持EVM,而不是使用zk语义。
a.第一层将证明高效(定制电路优化和硬件高效证明算法)。
b.第二层将是验证者高效(简洁的证明和 EVM 友好的验证算法)。
2.开发者友好:Solidity 的开发者通过 Scroll 可以从以太坊复制一个智能合约的字节码,在 Scroll 上进行部署,而无需对其进行任何修改。并且支持第 2 层的可组合性。
目前scroll团队已经和以太坊基金会的隐私扩容小组一起公开构建了一年多,一部分代码是共享的。
二层的交易打包很重要的一个角色就是排序器,但都是中心化的排序器。scroll的zkevm也是。在去中心化的方面,目标是要解决去中心化验证的问题,但现在的阶段是通过硬件提高证明者的性能,先实现证明者的去中心化,再实现排序器的去中心化。
图片来源:https://scroll.io/blog/zkEVM
通过用户交易构建二层区块,将他们提交到以太坊的base layer(基础层),并且在L1和L2之间传递消息。
Scroll 节点是应用程序和用户与scroll交互的主要方式,里面包括了三个模块:sequencer(排序器),coordinator(协调者),relayer(中继者)。排序器的执行是基于以太坊的Geth上,通过分叉Geth来达到最好的兼容性和安全。排序器负责提供接口和接受二层的交易,每几秒钟就会从内存池里面检索一批交易来执行,生成新的二层区块和新的状态根,新的区块会通知到协调者,同时也会发送新区快的执行追踪,协调者就会从roller池中随机挑选roller者来给区块生成证明。中继者也有两个职责,第一个是通过监控rollup合约来追踪二层区块的状态,包括数据可用性和有效性证明,第二个是监视部署在以太坊和scroll上的桥接合约的存取款事务,并且将这些消息从一端中继到另一端。简单概括一下scroll节点:有三个模块构成,分别是排序器,协调者和中继者,排序器负责二层区块的生成和产生新的状态根,协调者负责生成证明,中继者起到的是追踪和传递消息的作用。
负责生成zkevm有效证明,用来证明交易确实是被正确执行的。
Roller 网络中的roller充当的是证明者的角色,负责为zkrollup生成有效性证明。如何生成有效性证明?具体分为三个步骤:
证明者一般会用GPU,FPGA,ASIC这种加速器来减少验证时间和验证成本。
为scroll的交易提供数据可用性,验证节点生成的zkevm有效性证明,并且允许用户在以太坊和scroll之间转移资产。Scroll 是通过rollup合约和桥接合约和以太坊基础层连接。
Rollup合约从排序器那里接收二层区块和状态根,储存在以太坊状态中,二层区块数据会作为以太坊的calldata,这是为scroll的区块提供了数据可用性,索引器包括中继者就可以重构二层区块。一旦rollup合约验证了二层区块的有效性证明,就表示这个块在scroll上完成了。
桥接合约在以太坊和scroll上部署,允许用户在一层和二层之间传递消息,在这个消息传递上面,还要建立无需信任的桥接协议,让用户在两端都可以转移erc-20资产。比如用户从以太坊发送消息或者资产到scroll上,用户在桥接合约上可以用SendMessage这个事务,中继者就会索引到这个事务,把它发送到排序器,包含在二层区块中,反过来从scroll发送到以太坊上,合约和过程也是类似的。
图片来源:https://scroll.io/blog/zkEVM
二层的区块是在scroll上生成的,提交到以太坊的基础层到确认之前,会经过下面几个步骤:
1. Scroll的排序器生成很多块,对于每个区块,生成执行追踪发给协调者,还会将交易数据D作为calldata提交到以太坊上的rollup合约(这一步是为了数据可用性),并将生成的状态根和对交易数据的承诺作为状态提交给 Rollup 合约。
2. 协调者随机选择一个roller(证明者),根据区块追踪生成有效性证明,为了高效,可以在不同的roller上进行不同区块的证明。
3. 证明者生成证明之后,将证明发回给协调者,每k个块协调者就会重新分配一个证明者,这个证明者会把之前的1-k个证明聚合成一个证明。
4. 最后协调者会把聚合证明提交到rollup合约,根据排序器提交给rollup合约的状态根加上交易数据承诺来验证聚合证明,通过之后就可以确定二层上的k个区块。
测试网阶段有三个:pre-alpha testnet、alpha testnet和比较完整的测试网。现在scroll的功能只有一二层的转账,swap级别的交互。已经把uni的v2版本合约部署上测试网,不过只对白名单用户开放。等到alpha测试网时就是无需可的,允许任何用户在上面进行交互。可能会在年底推出完整的测试网,因为现在电路还在完善中,还有一些没有实现。生态发展上先部署钱包和工具这一类的基础设施。
团队
图片来源:https://scroll.io/blog/zkEVM
2022.4.21,A轮融资3000w,由polychain领投,参与投资的有Bain Capital Crypto,Geometry DAO 等,还有一些天使投资人,来自以太坊基金会和社区成员。关于股权融资还是通过未来代币销售协议(SAFT)的方式,创始人并没有公开。
Scroll出块节点会直接用以太坊一层节点的代码,用的是Geth客户端,有以太坊保证安全性,可以用evm原生的字节码部署合约,给开发人员提供最佳体验;将证明和验证分开,并且通过硬件加速器来加速计算,相比其他的方法会更高效。在二层的扩容解决方案中,Scroll可以算是目的非常简单直接并且重点很明确的项目,处于早期,很值得关注。
https://mirror.xyz/0xd05cFA28Eaf8B4eaFD8Cd86d33c6CeD1a1875417/PbkZDATEqO1U7-dU9faebquPBYwM0wpAw0xHLzbayGg
https://scroll.io/blog/zkEVM
采访:https://www.chaincatcher.com/article/2078499
责任编辑:Kate