div#pop_ad { opacity: 0; }
来源%20|%20以太坊爱好者
作者%20|%20Vitalik
译者注:今年以来,rollup%20作为一种非常有潜力的扩容方案得到了广泛的关注,多个使用%20rollup%20技术的二层项目在主网或测试网上线,Vitalik%20本人则是多次号召社区关注并使用%20rollup。本月初,Vitalik%20更是在以太坊魔术师论坛上写了一篇文章详细讲述,如果将%20rollup%20作为以太坊未来发展中心,以太坊的路线图应该做怎样的调整?
需要注意的是,以太坊社区采用的是一种市集类型的开发模式——在这种模式中,不存在一个集权式的中心,取而代之的是透明开放的讨论。也就是说%20Vitalik%20本人发了这个帖子之后,并不意味着以太坊的路线图马上就做相应变更了。市集模式大大增强了以太坊的包容性和演化过程中涌现出群体智慧的可能性,因此当%20rollup%20在区块链世界的演化过程中逐渐展现出了其潜力之时,Vitalik%20发起的讨论势必会使%20rollup%20在以太坊演化的过程中扮演更重要的角色。
为了更好地说明自己文章中观点的背景,Vitalik%20在多个场合进行了更详细的补充说明,我们将%20Vitalik%20在社交媒体中的相关发言放在本文的开头,充当背景介绍和摘要;Vitalik%20在以太坊魔术师论坛上的帖子则作为正文放在中间;最后,我们还节选了%20Vitalik%20在月初的%20ETHGlobal%20活动上的问答,供读者参考。
分片不是被取消,只是被叠加当前的%20ETH2.0%20路线图包含%203%20个阶段:
Phase%200:PoS(该阶段正在实施并将很快实现)
Phase%201:数据分片,但不包括计算分片(也就是说,分片链将会%20“包含”%20容量达%202%20MB/秒%20的数据,但数据都是哑数据对象,不是交易)
Phase%202:交易分片(分片化的交易处理功能)
以太坊当前的%20TPS%20大约为%2015-45,使用%20Rollup%20可以提升吞吐量%20100%20倍。分片则可以提升吞吐量%2064%20倍。将这两项技术实现的吞吐量叠加,也就是说在分片基础上叠加实现%20rollup,可以实现%206400%20倍的吞吐量提升。
但目前的路线图会衍生出一个有趣的意外:实现分片应用的愿景要到%20Phase%202%20才会实现,但分片%20rollup%20在%20Phase%201就可以实现了,因为%20rollup%20只需要用到主链上存储数据的功能,不需要主链实现计算功能。所以在%20ETH%202.0%20完整实现前,以太坊就具备了扩容%206400%20倍的条件。
因此,并不是用%20rollup%20取代分片,而是在分片上叠加%20rollup。也就是说,在分片实现之前,rollup%20已经可以实现%20100%20倍吞吐量的提升,因此尽快使用%20rollup!
以%20Rollup%20为中心的以太坊路线图
上周,Optimism%20团队宣布启动%20Optimism%20的第一阶段测试网(中文译本),同时宣布了迈向主网上线的路线图。Optimism%20并不是唯一正在实现%20optimisitic%20rollup%20的团队,Fuel%20的%20rollup%20也在向测试网迈进,Arbitrum%20也在做一个%20rollup。Loopring、zkSync%20实现的基于%20zk-rollup%20的%20rollup%20方案已经上线,基于%20Starkware%20技术的%20Deversifi%20也已经上线,已经有用户在主网上使用这些产品了。OMG%20的主网测试版上线则表明%20plasma%20也在向前发展。与此同时,eth1%20上的%20Gas%20价格正在攀升到新的高点,以至于一些非金融类的%20dapp%20被迫关闭,还有一些%20dapp%20只能在测试网上运行、无缘主网。
系统的可扩展性本是%20Eth2%20的题中之义,而且%20Eth2%20的早期阶段也正在快速推进。但对于使用基础层的应用来说,可扩展性要到%20Eth2%20的最后一个主要阶段(Phase%202)才会出现,这还需要几年时间。略具讽刺意味的是,在%20Eth2%20的%20Phase%201,Eth2%20就可以作为%20rollup%20的数据可用性层使用了,这远早于%20Eth2%20可以被%20“传统的”%20一层应用(译者注:即当前运行于%20eth1%20上的应用)所用的时间。汇总这些因素,会得出一个特别的结论:以太坊生态系统很可能会全身心地投入到%20rollup(外加一些%20plasma%20和状态通道方案)中,作为近期和中期实现可扩展性的战略。
若以此结论作为前提,则关于以太坊核心开发和生态开发的优先事项,我们将得出一些结论,暗示了在某种意义上与当前的路线图不同的方向。具体来说,我们可以得出哪些结论?
短期路线图:围绕%20rollup%20推进%20ETH1关于短期内的方向,一个主要的结论是,以太坊基础层的可扩展性将主要聚焦在扩展每个区块可以容纳的数据量,而不是链上计算或%20IO%20操作的效率。因为对于%20rollup%20来说,其可扩展性的唯一决定性因素是链上能容纳多少数据。任何超过当前数据容量(约为%2060%20kB/秒)的扩容办法,都将有助于进一步提高%20rollup%20的可扩展性。
在此视角下,以下基础层的改进方案仍具有意义(可帮助提高%20rollup%20的可扩展性):
EIP%202929,%20确保以太坊主链在当前的%20Gas%20设定下可以抵御%20DoS%20攻击
EIP%201559,%20EIP%201559%20既可以实现%20ETH%20的燃烧,也可以使一笔交易更容易被下一个区块打包(rollup%20系统需要依赖交易在主链上得到确认)
新的椭圆曲线预编译,从而可以更全面地挖掘%20ZK%20rollup%20的潜在性能
十六进制%20-%20二进制树变更,以及其它推动更好支持无状态客户端的变更(不论如何使用主链,无状态客户端都是很有价值的)
账户抽象的重要性稍弱,因为不管%20L1%20是否支持账户抽象,都可以在%20L2%20上实现。其他类似的%20“巧妙的基础层特性”%20也会变得相对不那么重要。
Eth1客户端可以被%20optimistic%20rollup%20客户端再利用。optimistic%20rollup%20仍然需要有全节点,如果%20rollup%20内部的状态转换规则与以太坊类似,只是做了一些修改(这是%20Optimism%20的目标),那么现有的代码可以被再利用,用来运行%20rollup%20的全节点。将共识引擎与状态转换引擎分离出来的工作已经在%20eth1+Eth2%20合并的背景下进行,该工作也可以帮助实现上述目标。需要特别注意的是,像%20TurboGeth%20这样的项目仍然是非常重要的,只是从中获益最大的将是高吞吐量的%20rollup%20客户端,而不再是基础层的%20eth1%20客户端。
短期路线图:围绕%20Rollup%20调整相应的基础设施目前,用户的账户在%20L1%20上,ENS%20域名在%20L1%20上,应用也都运行在%20L1%20上。一切都需要改变。我们需要适应这样一个世界:用户的主要账户、余额、资产等完全在%20L2%20里面。由此会造成这些情形:
ENS%20需要支持在%20L2%20上注册和转移域名;关于如何实现这一点的一个可能的提案参见这里。
L2%20层协议应内置到钱包中,而不是像%20dapp%20那样放到网页上。目前,L2集成到%20dapp/%20类%20dapp%20中(例如%20Gitcoin%20对于%20zksync%20的集成)需要用户完全信任%20dapp,这与现状相比安全性大大降低。理想的情况是让%20L2%20成为钱包(metamask、status等)本身的一部分,这样我们就可以维持目前的信任模型。这种支持应该是标准化的,这样一个支持%20zksync%20支付的应用就会立即支持%20zksync-inide-Metamask、zksync-inide-Status%20等。
我们需要在跨%20L2%20转账上做更多的工作,使资产在不同%20L2%20之间的转移时,具有尽可能即时和无缝衔接的用户体验。
更明确地将%20Yul%20或类似的东西标准化为中间编译语言。以太坊的底层%20EVM%20和%20Optimism%20推出的%20OVM%20使用的编译目标略有不同,但都可以由%20Solidity%20编译。为了支持一个具有不同编译目标的生态系统,但同时避免%20Solidity%20的单一文化并接纳多种语言,更明确地标准化像%20Yul%20这样的东西作为中间语言可能是有意义的,从而使所有高级语言都可以(通过编译至中间语言而)被编译至%20EVM%20或%20OVM。我们也可以考虑一种更明确的对于形式化验证友好的中间语言,它可以处理像变量这样的概念,并确保基本的不变量,从而使形式化验证更加容易。
Rollup%20中心主义的经济可持续性优势一个不可回避的事实是:一个密码货币项目必须在财务上实现可持续发展。在2020年,这意味着一个项目需要数百万甚至上千万美元的资金。其中一部分可以由常见的公益资助实体(如%20Gitcoin%20Grants%20或以太坊基金会)提供,但其规模实在不足以达到上述资金量级。二层项目可以通过推出自己的代币的方式筹得资金%20——%20当然,前提是该代币有真正的经济价值支持(即预期该%20L2%20可捕获未来的手续费用)。
以%20rollup%20为中心的路线图的第二个重要好处是,它为%20L2%20协议留出了开放的空间,这些%20L2%20协议或可直接收集费用/%20MEV,或可间接通过发行代币,从而获得开发所需的资金。以太坊基础层有一个重要的需求是可信中立性,这使得协议内的公益资助变得困难(想象一下对谁应该获得多少钱达成一致的难度),但%20L2%20自己设立公益资助机制(也可以在%20Gitcoin%20Grants%20上进行)的争议要小得多。因此,留出这个空间对于整个以太坊长期的经济可持续性来说是一个很好的战略举措。
除了资金问题之外,最有创造力的研究人员和开发人员往往希望在自己的地盘上创造影响力,而不是在一个没有什么影响力的位置上与其他人争论以太坊协议的未来。此外,已经有很多现有的项目在尝试创建各种平台。以%20rollup%20为中心的路线图为所有这些项目提供了一个明确的机会,使他们既能成为%20Ethereum%20生态系统的一部分,又仍然能保持高度的经济和技术自主权。
长期路线图除了上述这些短期路线图层面的考量,以%20rollup%20为中心的路线图还可能意味着重新设想%20Eth2%20的长期未来:一个所有人都可以处理的具有高安全性的执行分片,再加上一个具有可扩展性的数据可用性层。
要想理解为什么可以这么说,可以思考一下下列数据:
以太坊目前的%20TPS%20约为%2015。
如果所有人都转移到%20rollup,TPS%20将达到%203000。
一旦%20Eth2%20的%20Phase%201%20实现,rollup%20转移到%20Eth2%20分片链进行数据存储,理论%20TPS%20最大值可达%20100000。
最终,Eth2%20的%20Phase%202%20将会实现,在分片基础上实现了计算,此时%20TPS%20约为%201000-5000%20TPS。
在我看来,当%20Eth2%20Phase%202%20最终实现的时候,已经不会有人关心了。届时无论我们喜欢与否,大家都已经适应了一个以%20rollup%20为中心的世界。到那时,继续沿着之前这条路走下去,比试图让大家迁移到%20Eth2%20完成后的基础链上要容易得多,因为迁移到%20Eth2%20完成后的基础链上没有明显的好处,可扩展性则会降低20-100倍。
这意味着%20Eth2%20到%20“Phase%201.5%20就完成了”,届时基础层重新收缩,只需专注于做好几件事%20——%20即共识和数据可用性。
对于%20Eth2%20来说这可能是更合适的目标,因为对数据可用性分片比对%20EVM%20计算分片要安全得多。想验证分片化%20EVM%20计算在不诚实者占多数假设下的证明(dishonest-majority-proof),就需要欺诈证明,这需要一个严格且具有潜在风险的两个%20epoch%20的同步假设,但数据可用性采样(如果使用零知识证明或多项式承诺完成)在异步假设下是安全的。
这将有助于把以太坊与其他分片式二层链的安全模型区分开,这些二层链都是在执行层面进行了分片。Eth2%20作为基础层的功能只需要刚刚好就行(中文译本),不需要很强大。
从长远看,Eth2%20应该做什么?错开不同分片上的区块时间,这样在任何时候总会有一些分片会在几百毫秒内出块。这样就可以让跨多个分片运行的%20rollup%20具有超低的延迟,而不使链本身面临超低延迟所带来的风险。
改进并巩固其共识算法
调整EVM,使其对欺诈证明的验证更加友好(例如,这可能意味着某种“框架”特性,以防止代码脱离沙盒,或允许%20SLOAD/SSTORE%20指令被重映射至账户存储以外的东西作为其数据源)。
与%20ZK-SNARK%20有关的一切
更妥协的提案如果你不认可上述%20“一路”%20走到%20“Phase%201.5%20即完成”%20的发展方向,那么有一条自然的折中之路:使%20Eth2%20具有少量的执行分片(例如%204-8个)和更多的数据分片。我们的目标是,执行分片的数量仍然足够少,在特殊情况下,普通计算机能够完全验证所有的执行分片,但基础层空间仍然会比现在路线图中所设定的大得多。
基础层空间不能太小,因为用户和应用仍然需要使用基础层进行一系列操作,例如在不同的%20rollup%20之间移动,提交欺诈证明,在%20ZK%20rollup%20中提交%20ZK%20证明,发布根%20ERC20%20代币合约(当然,多数用户大多数时间都会使用%20rollup,但基础层合约必须存储在基础层的某个地方...)等等。而如果这些操作所涉及的每笔交易的成本是140美元,用户体验仍然是非常差的。因此,如果有必要,设定%204-8%20个执行分片而不是%201%20个,可以大大缓解这一问题。而且一台计算机仍然可以验证所有的分片。如今,以太坊上每%2013%20秒就能挖出一个区块,而验证一个区块平均耗时约%20200-500%20毫秒,所以短时间内验证%208%20个线程是完全可行的。可以想象客户端会有这样的对策:%20只要网络延迟很低,或委员会人数达到满员数量的%2080%,依靠欺诈证明和委员会,可以在特殊情况下直接验证所有分片%20。
在%20ETHGLOBAL%20上针对该文的问答
Q:L2%20致力于解决扩容问题,在社区已经被研究和讨论多年,但之前的尝试似乎不太成功,你对%20rollup%20有多大信心?这次扩容尝试和之前相比有什么不同?
A:我在博客文章中对这个问题有更详细的讨论(中文译本)。我的主要观点是%20rollup%20与状态通道及%20plasma%20都有所不同。对于扩容来说,要扩容两样东西,扩容计算和扩容数据可用性。我的观点是,状态通道和%20plasma%20都不解决数据可用性问题,他们用了一类特殊的与应用场景相关的技巧试图解决这个问题。与前两者不同的是,rollup并不把所有东西都放在链下,而是将计算放在链下,但是将一定量(比如10,16,50%20bytes)的数据存储在链上,这是%20rollup%20的扩容性能受到一些限制的原因。也就是说%20Rollup%20更加妥协一些,为了支持任意状态机牺牲了一些扩展性。对于%20plasma%20来说,一开始我们认为可以解决在%20plasma%20中运行任意状态机的问题,但最终我们意识到这是做不到的。但对于%20rollup%20来说,有一些数学和技术层面的证据可以证明%20rollup%20可以实现这些功能%20——%20任意状态机,也即是某种图灵完备性。在实践中,rollup%20已经成功运行一段时间了,例如已经有了%203%20个使用%20rollup%20的%20DEX,你也可以在%20gitcoin%20捐款时使用%20rollup,sythentix%20等项目则在支持%20evm%20的测试网中进行测试。可以说,在状态通道和plasma中没有得到解决的问题,我觉得在%20rollup%20中已经得到逐步解决了。
Q:当前%20L1%20具有可组合性/互操作性,你觉得未来仍然会具备吗?换一个角度,你是觉得未来是会是多%20rollup%20共存,还是会形成赢家通吃?
A:这是一个好问题。我觉得会有一些%20rollup%20在最后占据主导地位。我觉得%20rollup%20同时具备了网络效应和反网络效应。主要的反网络效应是:TPS%20越大,跑一个%20rollup%20全节点越难,这在一定程度上会降低其可用性。另一方面,目前%20rollup%20有几个不同的技术路线,我是希望这些技术路线和对应的技术特性在短中期都得到测试的。从长期来看,也许某一个%20rollup%20会赢家通吃,但我还不能确定%20:)
Q:你在文章中描绘了一个可能的愿景,你觉得以太坊基础层什么时候会稳定下来?还是说会一直在迭代改进?
A:在我提出的路线图中,我希望以太坊%202.0%20在%201.5%20阶段达到基本稳定的状态,这也是我在文章中提及%20“1.5阶段即完成”%20的原因。但是在这之后还是会有持续的技术迭代,这些技术迭代主要包括增加更多零知识证明从而提高安全性和效率,将共识机制从%20FFG%20改为%20CBC,以及将密码学原语切换为后量子密码学原语。这些改进基本不会影响以太坊的经济系统和基本的安全特性。我绝对期待持续在很长一段时间里技术会持续迭代优化,当然这些优化更多接近于运维层面。
(完)
原文链接:
https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698
https://twitter.com/VitalikButerin/status/1312905882330521600
%20声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。