今年2月底,基于ZKRollup的以太坊Layer2网络Scroll正式推出了向所有用户开放的Alpha测试网,并表示将在未来几个月内改进zkEVM性能。就在推出新测试网的一周后,Scroll宣布以18亿美元估值完成了PolychainCapital、红杉中国等参投的5000万美元融资。
2022年6月,笔者在《三分钟读懂Scroll:ZKRollup扩容新锐选手》中简单介绍了Scroll的设计框架。Scroll旨在建立「EVM等效」的zkEVM扩容网络,实现以太坊上应用的无缝迁移。?
7月,Scroll推出了需要申请资格的Pre-Alpha测试网,截至Alpha测试网推出时,Pre-Alpha测试网已处理了超1540万笔交易,共确认了超180万个区块,提交了64.1万批有效性证明,且共有超10万名用户参与。而Alpha测试网开放至今,共有约2,145,099个钱包地址,处理了约10,102,684笔用户交易,生成了886,701个区块,平均区块时间约为3秒。
本文中,笔者将介绍Scroll通过怎样的机制实现在去中心化的前提下继承以太坊主网的安全性。
数据:昨日桥接ETH至zkSync与StarkNet笔数均创单日历史新高:3月20日消息,据 Dune 数据显示,昨日共有 17,012 笔交易将 2237.6 枚 ETH 桥接至 zkSync,共有 8572 笔交易将 858.5 枚 ETH 桥接至 StarkNet,跨链桥接 ETH 至 zkSync 与 StarkNet 网络的笔数均创单日历史新高。[2023/3/20 13:15:07]
Scroll的架构
Scroll架构主要由3部分组成:节点网络、证明网络和Rollup合约。
节点网络
Scroll的节点网络包含三部分:定序器、协调器和中继器。
定序器?
定序器提供JSON-RPC接口并接受L2交易。每隔几秒钟,它就会从L2mempool检索一批交易,并执行它们以生成新的L2区块和一个新的状态根。Scroll的定序器实现是通过fork被广泛使用的以太坊节点GoEthereum,并以此实现更好的兼容性和承经得起时间考验的安全性。
协调器
一旦生成新的区块,协调器就会收到通知,并从定序器接收该区块的Executiontrace。然后,协调器将Executiontrace分配给一个从去中心化的证明网络中随机选择的证明者生成证明。
ZKSwap的8000万枚ZKS空投已基本完成:官方消息,ZKSwap官方宣布1:1空投的8000万个ZKS已基本发放完成,社区持有的ZKS流通量从8000万个增加到1.6亿个ZKS,空投后整体市值提升35%左右。用户若在快照前持有ZKS,空投后持有的ZKS数量将翻倍,由此引起的市场价格的波动为正常反应。今日ZKS在火币最高报11.6666 USDT,空投后最低跌至5.2 USDT,现报5.74 USDT。[2021/2/25 17:50:45]
中继器
中继器用于观察部署在以太坊和Scroll上的跨链桥和Rollup合约。它主要有两个职责,其一是监视Rollup合约,跟踪L2区块的状态,包括其数据可用性和有效性证明。其二是监视部署以太坊和Scroll上的跨链桥合约的存款和提取活动,并将消息从一方传递到另一方。
证明网络
Rollers作为网络中的证明者,负责为ZKRollup生成有效性证明。Roller可以利用像GPU、FPGA和ASIC等硬件设备来减少验证时间和验证成本。
下图展示了Roller如何为每个区块生成有效性证明,有以下步骤:
火币将于明日14点上线BNT、FRONT、ZKS和LUNA品种USDT本位永续合约:据火币合约官方公告,火币合约将于新加坡时间2月23日上线BNT、FRONT、ZKS和LUNA品种USDT本位永续合约,11点开启资金划转,14点开放对外交易,支持1x-75x倍数。此前,火币USDT本位永续合约已涵盖了BTC、ETH等在内的65大主流品种。
据悉,新上线的BNT、FRONT、ZKS和LUNA品种USDT本位永续合约是正向合约,即稳定币合约,采用稳定币(USDT)作为担保资产,无交割日期,合约标的为其对应数字资产的现货USDT指数,且每8小时结算一次,结算时间戳分别为0:00、08:00和16:00(GMT+8),用户已实现盈利在结算后可立即提取。[2021/2/22 17:40:19]
Roller首先将从协调器那里收到的执行Trace,转换为电路witness。为每个zkEVM电路生成证明。使用证明聚合,将来自多个zkEVM电路的证明合并为一个单一的区块证明Rollup和跨链合约。
值得一提的是,Scroll团队成员表示Scroll计划于主网上线前上线证明网络测试网。证明网络的去中心化一方面为以太坊合并后无处安放的GPU矿机找到了暂时的用武之地。另一方面,未来主网对证明者的激励可能可以刺激零知识证明专用芯片的开发,并最终被大量ZK项目广泛采用,形成继PowASIC矿机后的又一实体产业链。
Rollup和跨链桥合约
Scroll通过Rollup和跨链桥合约连接到以太坊。这样确保了L2交易的数据可用性,并允许用户在L1和L2之间传递资产和信息。
Rollup合约?
Rollup合约从定序器接收L2状态根和区块。它将状态根存储在以太坊状态中,L2区块数据作为以太坊calldata。这为Scroll区块提供了数据可用性,并利用以太坊的安全性来确保包括Scroll中继器在内的索引器能够重建L2区块。一旦确定L2区块有效性的证明被Rollup合约验证,相应的区块就被认为在Scroll上已经完成。
跨链桥合约
部署在以太坊和Scroll上的跨链桥合约允许用户在L1和L2之间传递任意的信息。在这个消息传递协议的基础上,我们还建立了一个无需信任的跨链协议,允许用户在两个方向上桥接ERC-20资产。从以太坊向Scroll发送消息或资金,用户需要在跨链桥合约上调用sendMessage交易。中继器将在L1上对该交易进行索引,并将其发送给定序器,将其包含在L2区块中。从Scroll向以太坊发送消息,在L2跨链桥合约的流程和上述过程类似。
Scroll如何实现ZKRollup?
Scroll中的L2区块被生成后提交给以太坊,并按以下步骤顺序最终完成:
定序器的角色是生成区块。对于第i个区块来讲,定序器生成执行Trace:T,并将其发送给协调器。定序器还将交易数据D作为CallData提交到以太坊的合约中,保证数据可用性以及由此生成的状态根和对Rollup合约的交易数据的承诺作为状态。协调器会随机选择一个证明者为每个Blocktrace生成一个有效性证明。为了加快证明生成过程,不同区块的证明可以由不同的证明者并行生成。在为第i个块生成区块证明P之后,证明者会将其发送回协调器。每隔K个区块,协调器向另一个证明者分派一个聚合任务,将k个区块证明聚合为一个聚合证明A。最后,协调器向Rollup合约中提交聚合证明A,通过对先前提交给Rollup合约的状态根和交易数据commitment进行验证,最终可以确定从i+1到i+k的L2Block。?
上图说明了Scroll区块将在多步骤的过程后在L1上最终完成。每个L2区块将经过以下三个阶段,直到最终确定:
预提交。预提交示block已由定序器提出并发送给证明者。尽管预提交的区块还不是ScrollL2链的规范部分,但是由于它们尚未发布在以太坊上,因此信任定序器的用户可以选择预期对它们采取的行动。
提交。提交表示该区块的交易数据已经发布在以太坊的Rollup合约上。这确保了区块的数据可用性,但不能证明它是以有效的方式执行的。?
终结。终结状态表示该区块中的交易已经被正确执行,并且通过了以太坊上的有效性证明验证。最终完成的区块被认为是ScrollL2链的规范部分。?
Scroll与其他ZKRollup方案的区别
总体而言,Scroll与已上线主网的PolygonzkEVM、StarkNet以及zkSyncEra最大的区别在于Scroll更接近原生以太坊实现,对EVM开发者来说更加友好。
ScrollvsPolygonzkEVM
二者在实现方面存在一些技术差异,。一是Scroll直接fork被广泛使用的以太坊节点实现Geth生成Layer2的区块,接近原生以太坊实现。Scroll设计了不同的子电路来证明Geth执行跟踪中的每个操作码,并且更容易验证电路与原生以太坊具有完全相同的行为。而PolygonzkEVM则使用新的汇编语言重写每个EVM操作码,然后为其底层状态机生成证明。
另一个区别是,Scroll对zkEVM电路和聚合电路都使用SNARK。PolygonzkEVM是使用STARK作为他们的zkEVM电路,并使用SNARK作为聚合电路来聚合STARK证明。
ScrollvsStarkNet
与StarkNet相比,Scroll以EVM等效性为目标,希望原生zkEVM解决方案以实现字节码级兼容性,对以太坊开发者更加友好;而StarkNet是一个对于ZK友好而对开发者不友好的方案。故StarkNet建立开发者和项目生态具有一定的学习成本,也存在不小的挑战。
ScrollvszkSync
相较于Scroll对EVM字节码级的兼容性,zkSync是在语言级别兼容EVM的,故对于智能合约的开发者而言,需要对部署带有BlackBlox的编译器的额外信任,也需要更多的时间来进行安全审计。
Scroll的去中心化梦想
Scroll团队成员张烨曾发表了一篇名为《Scroll背后的理念》的文章。这篇文章详细描述了Scroll的愿景:除了Scroll项目本身,团队更加希望为以太坊的zkEVM研究做出贡献。
文章中提到,相比于「闭门造车」,Scroll从一开始就做出了与社区共同发展的决定,并且也一直在践行这一点,包括由社区驱动开发zkEVM、开展零知识证明方面的公共教育、维护Python版本的zkEVM规范等。
除了上述方面的社区化运作,Scroll还强调了更多方面的去中心化,包括定序器、证明者等等。总体而言,Scroll更希望成为一个类似于以太坊一样,虽然有核心开发团队,但仍然在底层技术和基础设施层面开放的协议,并最终推动zkEVM生态的蓬勃发展以及主网与zkEVM的兼容,乃至以太坊Layer1本身想要达到的最终目标。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。