Scroll联合创始人张烨:Scroll的设计与架构
9月22日,在由万向区块链实验室主办的第八届区块链全球峰会上,以太坊扩容项目Scroll联合创始人张烨发表《Scroll的设计与架构》主旨演讲,Scroll正在建立一个EVM等效的ZK Rollup,其设计决策遵循安全性、效率、EVM等效性和去中心化,其架构由Scroll节点、链上的智能合约、去中心化的证明器网络三部分组成。
此外,Scroll分享了Scroll路线图以及当前的开发进度,Scroll已完成第一阶段,即完成Pre-Alpha测试网。第二阶段,邀请开发者基于其部署一些智能合约,并且开发一些额外的应用。第三阶段,将启动二层证明的外包,也就是证明生成的过程,Scroll希望能够邀请所有的社区参与,这是无需许可的,任何人都可以参与到证明网络,成为证明节点。第四个阶段,到达zkEVM主网阶段,需要经过严格的代码审计以及性能提升之后,将会部署并且上线主网。第五个阶段,部署去中心化的排序器。
以下为演讲全文:
张烨: 大家好,我的名字是张烨,我是Scroll的联合创始人。今天我想跟各位分享Scroll的设计和架构。
在正式跟各位介绍技术细节之前,我想要简单给各位介绍一下Scroll项目到底是什么。简言之,Scroll是一个以太坊的通用型二层扩容方案,和以太坊本身类似,开发者可以在Scroll上部署智能合约,同时,也可以和上面的各种应用进行交互。但是在上面的交易费用更加低,而且吞吐量也更高。
和其他二层的解决方案不一样,我们虽然是一个扩容方案,但是在Scroll上所有的完整性都会在以太坊进行验证,要么通过ZK证明,要么通过欺诈性证明来做,所以Scroll的安全保障由于得到了以太坊的支持,所以更加强。
更具体来说,我们现在正在建立一个与EVM等效的ZK Rollup,这意味着什么呢?从技术上来说,Scroll是基于ZK Rollup,也就是依赖于有效性证明来证明Scroll上所发生的所有加以都是正确的。ZK Rollup被认为是完全基于纯数据假设的最纯粹扩容解决方案。
在这里以太坊等效性意味着可以在内部支持具有自解码级别的EVM,对于开发者来说,意味着可以支持VEM上支持的所有内容,不仅仅是Solidity这样具体的编程语言,同时也可以在字节码层面支持以太坊虚拟机,以及所有相关的开发工具。
所以对于开发者来说,你并不需要了解ZK Rollup就可以部署在Scroll之上,而且在Scroll上的开发体验和在以太坊一层上是完全一样的,你可以使用所有已经熟悉的开发工具,再一个类似的环境中进行部署。
再更加深入介绍具体技术细节之前,首先我想跟各位介绍一下为什么说我们做出了这样的设计决策,背后有哪些原则?
第一,安全性。最重要的任务是安全性,所以在扩容方面最重要的安全形式是保护用户的资金和数据的安全性。在最安全和去中心化的基础层上,也就是基于以太坊之上,用户不需要依赖于Scroll节点的诚实来保证自己的资金安全。向他们可以完全利用底层以太坊一层的安全性,来保证自己的资金安全。哪怕他们实际交易在Scroll上进行的,因为从安全性的角度来说,完全是依赖于底层的以太坊。
第二,效率。设计第二个重要原则是效率,为了让用户能够在二层上享受更好的用户体验,我们认为交易的费用应该要做到极低,至少比在以太坊上交易费用要低几个数量级。
另外我们认为用户应该在二层上享受及时的确认,如果你向二层的节点发送交易,可以很快地获得确认,而且也可以实现非常快的终局性,也就是说,你的证明能够很快地在一层上得到验证。
第三,EVM等效性,EVM有个非常活跃的生态,我们相信有效的以太坊扩容方案,意味着用户和开发者应当拥有无缝的迁移体验,不管他们现在用哪些DAPP、哪些工具,在迁移过程中应该是完全无缝的。
EVM等效性是实现这一目标的最佳手段,因为对用户来说,在Scroll上可以拥有完全相同的环境,这也是为什么要始终保持EVM的等效性,这是我们的目标,也是我们的初心。
第四,去中心化。去中心化是区块链的核心特征,但是经常为人们所忽略,或者是为了效率而被不适当的牺牲,尤其是对一些一层的区块链而言,他们经常为了效率而牺牲去中心化。但是我们认为区块链最有价值的方面之一就是去中心化,它也可以确保协议和社区能够防审查,或者防止一些协同攻击。我们也考虑了Scroll各个方面的去中心化,包括节点的去中心化、证明器的去中心化、开发者的去中心化、用户的去中心化,这也是为什么说跨越各层级的去中心化。
这些原则是我们背后的设计原则,最终使得我们找到了现在的技术设计解决方案。
安全性、效率和EVM等效性,最终使得我们提出了zkEVM的ZK解决方案。正如刚刚提到的,ZK提供的是纯数学的数学保证,不是依赖于任何遭受攻击的经济博弈,另外也是非常有效的。此外每笔交易的成本在大量的交易之中分摊,所以成本也非常低。与欺诈证明相比,有效性证明有更短的确定/更短的确认,由于欺诈证明是基于乐观Rollup,大概需要一周的时间才能完成在一层的验证,但是对于有效性证明来说,如果你能快速地生成证明,就是可以很快地在一层得到终局性的确认。
在我们设计了ZK决策之后,我们也意识到zkEVM是支持EVM等效性最终的胜杯。zkEVM背后的想法、理念就是zkEVM可以用简洁的ZK证明来证明EVM自解码的正确执行。因为之前所有的ZK Rollup都是特定于应用程序,要么是为了某些DAPP,或者某些专门的交易来设计的。如果你可以证明它为了EVM的执行也是正确的,那么你就可以证明ZK-EVM是非常通用型的虚拟机。
之前大家认为zkEVM不可以实现,因为它的开销很大,比正常的APP、应用程序开销高出两个数量级。但是由于我们利用了整个社区的协同创新,设计也集成了最近的突破,包括最近的证明器系统、证明器聚合,甚至利用到了ZK的硬件加速。
开放式的开发方法,使得我们可以和非常广泛的社区成员合作,尤其是以太坊基金会的隐私和扩容团队,以及其他的在社区中参与者,我们在这方面进行了非常密切的协作,利用最新的研究使得zkEVM最终成为可能。
基于这些研究成果,现在也正在搭建基于zkEVM的ZK Rollup,从而满足我刚才提到的诸多设计原则。接下来是去中心化,对去中心化的要求使得我们最终搭建了去中心化的证明器网络,在设计整个Scroll系统的时候,尤其是设计zkEVM的时候,我们意识到将EVM放到ZK证明中需要非常大的开销,主要是由于这些本地字段之间不兼容。为了减少、为了缩短证明时间,因为证明时间会影响到最终在L1上的终局性时间,我们决定建立一个无需许可的去中心化证明器网络,从而帮助我们在L2层上的区块生成证明。
通过这样的方式,我们实现了两个主要的技术优势:
(1)证明器更像是并行运行的、可扩展的,这意味着可以通过添加更多的证明器节点大规模扩展证明器池。
(2)社区将获得激励,运行这些证明器节点,从而为我们构建更好的、显著优化的硬件解决方案,因为社区是有激励的,所以不需要依赖于我们作为中心方搭建这些硬件解决方案。
如果你让社区参与到开发过程中,就可以给他们提供足够的激励,当激励足够的时候,甚至社区愿意搭建AE CX(音)矿机。
接下来跟各位介绍一下总体的架构和设计,为了给大家更多有关于架构的背景信息,首先必须要回顾一下ZK Rollup,以太坊的交易处理非常慢,大家应该耳熟能详,它生成块的速度是非常慢的,由于它更加去中心化,而且依赖于某些特定的共识机制,所以以太坊的交易处理非常慢。
但是对于用户来说,有了Scroll可以直接向Scroll发送交易,而不是将交易发送给以太坊。Scroll可以很快地生成二层区块,然后我们会运行一些证明算法,生成有效性证明,证明发送给Scroll的这批交易是正确的,然后我们再提供一些必要的块数据作为可用性数据,将这些数据提交给以太坊的第一层。
而zkProve则作为提交过程中的公共输入值,证明在应用、执行这些交易之后,状态发生了变更。通过这样的方式,一层只需要验证提交给他的各种证明,而不需要重新执行所有的交易,也就是最终一层验证时间会大大减少。
因此对我们来说,我们必须要有一个证明器,同时也需要一些其他的节点,包括出块的节点。这张幻灯片展示的是Scroll的架构,具体由三部分组成:
(1)Scroll节点。
(2)链上的智能合约,主要是用来进行存入资金以及一层交易的智能合约。
(3)去中心化的证明器网络,证明器网络由很多证明器节点组成,在我们的系统里将这些证明器节点称为Roller。
首先是排序器,在Scroll节点中,有一方叫做排序器,它是Gas,也就是Go Ethereum的分叉,GO Ethereum可以说是以太坊一层上最受欢迎的实现,可以用来接受二层的交易,并且生成二层的区块。通过这样的方式,我们可以简简单单地利用现有以太坊客户端的实现,从而确保二层和一层的行为是一致的。同时对于开发者来说,他们可以更熟悉,在部署合约的时候更加方便,而不仅仅只是做RPC的接口。
第二层是中继器,中继器主要是做信息中继,比如说将信息在跨链桥协议和Rollup协议间进行中继。还有一些其他的用户数据,包括用户的交易,一层和二层之间中继器也负责消息的传递,总结来说,中继器就是负责一层和二层之间消息的中继。
第三层是协调器,协调器主要是将跟踪的信息发送给Roller,换言之,当排序器生成多个区块之后,协调器将所有的信息不仅仅是交易信息,从执行里获得的所有信息收集,稍微我会跟大家具体介绍这一步,因为我们有去中心化的证明器网络,所以协调器必须去判断谁负责为哪个区块进行证明,然后将相关的区块发送给去中心化的证明器网络。这些去中心化的证明器(Roller)会生成证明,然后再将证明发送回协调器,这是整个环路。
zkEVM是整个设计的核心,所以我们现在深入地探索一下Scroll里发生的交易步骤是什么。
首先从协调器那里收到一些执行的追踪,比如你的执行步骤或者区块头、交易的数据、必要的数据、自解码数据、Merkle证明作为执行的踪迹,然后再将它转化成环路,使用这个环路的输入构建器,从而生成证明。因为它是环路式的,所以必须将这样的东西转化成ZK可以使用的,接下来再作为见证者见证来各种。
zkEVM由多个环路组成,每个环路每个循环都有不同的目的,比如说EVM主要是用来做交易的监督,RAM主要是一些内存的操作,而存储主要是负责存储读写,还有其他的循环,比如签名等其他的循环。通过这样的方式,生成了多个证明。最后还有聚合循环,将这些证明聚合成一个证明,最后把它放到链上。
比如你有一个区块或者一个执行的踪迹,就有一个证明,这就是证明器中,或者在Roller中具体发生的技术过程。
接下来跟各位分享一下Scroll具体的工作流。首先看一下zkRollup的工作流,你需要有区块链数据有效性证明,但这种有效性证明是可以分离的,因为区块数据可以提前提交。我们在这步可以将它进一步分解成两步,一个是有效性的证明,之所以这样做分离,是因为有更强大的确认。因为二层区块不给你任何信息,你必须要依赖于排序器,所有的数据都来自于排序器,但是你一旦有区块数据,你可以对交易进行再次执行,从而获得更强的确认,由于生成证明的时间会更长,可以在后续的阶段之中再提交有效性证明,从而使得你很快地做预确认,确认的程度也会增强。
我们也有不同类型的区块状态,其中一个状态是由排序器已经提出或者已经发起的区块,已经被包含在二层链的区块,就是预Committed,而另外一类区块叫做Committed,代表区块的交易数据已经被发送给以太坊上的Rollup合约。最终就是已经终局化的区块状态,表明区块中的正确交易执行已经得到了证明,并且已经获得了有效性的证明,也就是已经在以太坊链上,已经在一层得到了证明,意味着到了这步,你的交易已经得到了终局性的确认。
(如图所示)这张幻灯片展示了在Scroll中交易的工作流,首先交易会被发送给排序器,区块会变成Pre-Committed。接下来一步是排序器会将区块数据上传给一层,也就是上传到Rollup合约中,这个阶段你的区块成为Committed。到下一个阶段区块会形成执行的踪迹,你需要这些执行的踪迹生成证明,协调器就会选择一个Roller来生成相应的证明。
比如说对于第一个区块,我选择了一个证明器。对于第二个区块协调器,同样会将这样的执行踪迹调度给另外一个证明器,由于这些证明器是并行执行的,所以证明的生成也是并行的。比如说有3个证明器可以同时生成三个不同区块的证明,证明又被发送回给协调器,协调器对于这些证明进行验证。接下来要么签名,要么将这些证明再发送给另外一个Roller,由这个Roller再次执行、再次证明。最后协调器聚合了所有的证明,将聚合好的证明发送给一层做合约的验证。合约之前已经有一部分区块数据,再加上证明,两者相结合,最后实现二层上的交易验证和确认。
(如图所示)这张幻灯片展示的是区块状态,包括三种不同类型的区块,包括已经完成终局确认的Pre-Committed,以及Committed,不同的颜色代表的是不同的区块状态。我们已经有一个Alpha测试网,或者Alpha阶段前的测试网,如果大家想要参与测试,或者想要为我们做贡献的话,可以通过扫描屏幕上的幻灯片。
最后和各位分享一下路线图以及当前的开发进度,我们已经完成了预Alhpa的测试网,这是需要许可的,而且测试网只能做用户的交互,你可以在这个版本里做一些链上APP的尝试。
第二阶段,我们会邀请开发者基于我们部署一些智能合约,并且开发一些额外的应用。
第三阶段,希望启动二层证明的外包,也就是证明生成的过程,我们希望能够邀请所有的社区参与,这是无需许可的,任何人都可以参与到证明网络,成为证明节点。
第四个阶段,到达了zkEVM主网阶段,需要经过严格的代码审计以及性能提升之后,我们会部署并且上线主网。
第五个阶段,部署去中心化的排序器,从而使得zkEVM,包括从设计和技术的角度来说更加高效。
我们有很强大的目标,目标是为以太坊带来下一个10亿的用户,因为我们认为所有的交互都会发生在二层之上,我们也非常相信开放、开源的社区,我们所做的一切都会开源,尤其是EVM和以太坊社区的贡献者一道完成的。我们也认为整个社区的协同可以帮助我们整个开发过程更加透明,也需要外部的代码审计,不断地追求各个层级的去中心化,包括证明器网络的去中心化,这是去中心化之路第一步。
如果大家对于开发的产品感兴趣,我们正好也在招人,可以通过点击屏幕上链接了解正在招职位的信息。如果大家有任何问题,可以通过这个方式联系我们。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum