观点 | 以太坊的路线图应该改变吗?_币世界+以太坊爱好者

2020-11-22 19:49 栏目:行业动态 来源:网络整理 查看()

自从《A rollup-centric ethereum roadmap》(中文翻译)发布以来,整个社区都在质疑以太网(尤其是以太网2.0)的路线图。一个PoS的幽灵在埃瑟伦回荡。——铭文

自从《A rollup-centric ethereum roadmap》(中文翻译)发布以来,整个社区都在质疑以太网(尤其是以太网2.0)的路线图。

2020年11月18日,在Ethereum基金会Eth2.0研究团队的第五次AMA活动(中文摘录翻译)中,维塔利克明确表示,路线图发生了变化:(1)第二阶段的重要性暂时不再强调,第一阶段致力于实现分片数据进行汇总;(2)信标链会有一个执行功能,即Eth1-Eth2合并后,信标链块会直接包含事务;(3)实施3)阶段0后,并行推进轻客户端支持、数据分片、合并三大任务,任何模块只要做好准备就可以上线。

本文的目的不是为原有的三阶段路线图辩护。相反,本文想论证的是,三阶段路线图是虚幻的,新路线图是无味的,没有一个与Eth2.0相关的路线图值得Ethereum抛弃目前的运营模式,转向基于PoS的系统。

这里我先说明一下最初三阶段路线图的论证思路和技术难点;然后分析新路线图的可扩展性。最后,证明了新路线图的可扩展性优势太小,不足以使以太网进入PoS。

Eth2.0 的三阶段路线图

在过去两年中,广泛传播的Eth2.0路线图计划按顺序实施三个组件:

阶段0:以PoS为共识机制的信标链

阶段1:多个片段链

阶段2:向所有切片添加执行函数

从这张路线图可以清楚地看到,最初的Ethereum 2.0的目标是构建一个“分片执行”系统,这意味着每个分片都有自己的状态,而这些状态是根据每个分片的状态转换规则而变化的;改变的状态由信标链确定;因此,Ethereum 2.0成为了一个多片并行处理事务的系统。这也意味着Ethereum 2.0是一个“共识”和“事务处理(验证)”的解耦系统,分配给每个切片的验证者负责验证事务和状态的正确性;但是这些状态的终结依赖于信标链的历元终结机制,两个过程并不完全同步。这种“PoS信标链多碎片化”的架构似乎也很好地利用了PoS算法本身的特点:为了解决无危问题(PoS阻塞不需要付费计算,所以有资格阻塞的账户会同时尝试在不同的分叉处阻塞,导致系统分崩离析), Ethereum 2.0中使用的Casper算法要求用户先存入一部分押金,才能获得块资格,如果验证者滥用,因此,像Casper这样的算法实际上创建了两个可以相互通信但独立变化的状态:一个是普通用户的状态,另一个是验证者的块权重的状态; 共识过程是基于块权重状态的,达成共识也会改变块权重状态;因此,共识过程本质上独立于用户事务的验证,并且可以解耦;对于任何事务批处理和结果状态,一致过程可以抽象为一个“终结机制”。从逻辑上讲,多片并行执行是可能的。至于其可扩展性,Ethereum分片技术“二次分片”的名称揭示了线索:假设分片上事务的执行复杂度可以降低到与块头验证相同的难度,那么分片执行的架构可以随着参与节点处理能力的线性提升,使整个系统的处理能力以平方的顺序提升。一般来说,如果参与网络的节点(平均)可以在一段时间内验证4个块头,这意味着当参与一个片时,节点可以在同一时间内验证4个事务,系统的总处理能力为4个片 4个事务/片=16个事务;如果节点的处理能力变为8 (2x),则处理能力变为64个事务(4x)。听起来很奇妙,但这种“平方扩张”的论点包括以下假设:

(1)有一种技术将碎片事务的验证简化到与验证块标题相同的难度;

(2)不存在跨片事务,即每个片内的事务根本不会相互依赖。跨片事务需要占用多个片和信标链的处理能力,这将大大降低可扩展性。

关于(1),可以满足这个假设。无国籍就是这样一种技术。它的思想是在传播事务(或传播块)时附加交换的访问状态的见证,这样事务的验证者就可以验证事务的有效性,而不需要在事务执行时保存状态数据。这是极其关键的。如果不存在无国籍状态,参与片段验证的验证者必须保持片段的状态,因为验证者会被连续分配到不同的片段链,这意味着他们必须保持所有片段的状态。实际上,这意味着他们必须下载所有片段并连续处理事务,从而将整个系统折叠成一个大块系统(例如,投入能够处理16个事务的资源,处理16个事务)。遗憾的是,到目前为止,Ethereum 1.0还没有开发出一个轻量级的无状态方法。

(2)没什么好说的。如果不能实现跨分片事务,分片执行的系统就没有意义,因为每个分片都有自己的路要走。ETH必须以某种方式存在于每一个切片上,这样这个系统才能仍然以ETH为主体。到目前为止,还没有一个跨碎片的事务方案,不能增加信标链的处理能力。原因也很简单。对于任何一个A片,由于并行处理,不知道任何一个B片上发生了什么事务,也不知道这个片的状态是否需要重写。所以一定要有一个通信层来可信的证明一个重写A片状态的书面测试图发生在B片上。但一旦信标链有了处理交易的功能,平方扩张的效果就会被打破。(顺便说一下,满足这个可信通信层需求的链成为事实上的第1层,而其他片成为事实上的第2层,很像“第1层第2层”。)

除了有问题的可扩展性,碎片化的执行也带来了很多有趣的经济问题。例如,如果跨切片事务的处理时间超过切片内事务的处理时间(这是不可避免的),这意味着不同切片上的ETH值不会相同。就像美国的一块钱和美国以外的一块钱不是一回事。不管有多少片,至少会有两个ETH价格。一个是金融应用最繁荣的切片上的ETH价格(即Eth1切片);另一个是ETH在其他切片上的价格。后者必须付出一定的费用,付出一定的时间,才能被前者取代,所以前者肯定有一定的折扣。同理,即使每一片都有uniswap,不同片的交易滑动点肯定是不一样的,最终大家都会聚集在一片,因为大家在一起的时候,流动性最充裕,资金效率最高。某种程度上可以认为对跨分片事务的需求很小,但也意味着其他分片上闲置的事务处理能力根本没有意义。碎片化执行系统的技术难点在此不再赘述。利害关系方可以考虑碎片化执行制度如何支付手续费。

但我这里想说的是,碎片化执行系统的设计理念违背了每个人的实际需求,也违背了事物发展的规律。全局状态(可组合性)不是问题,只是大家需要的;正是因为以太网使所有的金融应用瞬间结合,创造出一个价值可以零摩擦循环的空间,以太网才有改变世界的潜力;在协议层面为价值流通制造摩擦,是弄巧成拙的武功。当你有了一个好的基础层,就要努力维护,让用户选择剩下的,让生态进化。不要以为设计就能设计出一个生态,过度设计只会给每个人强加成本。二期的搁置,印证了——的难度。在可预见的未来,这条路不会产生令人满意的结果。尽管如此,我并不认为Eth2.0的研究人员已经完全放弃了三阶段路线图,维塔利科也强调,改变后的路线图与第2阶段完全兼容,但第2阶段不再具有优先权。但实际上,放弃碎片化的执行才是以太琴应该选择的方式。

可执行信标链路线图

在Ethereum 2.0的新路线图中,最引人注目的一点是信标链块会包含合并Eth1片段的事务,即信标链具有执行功能。其他切片只有保存数据的功能。实际上,新路线图中“数据碎片化”的定位是“用于汇总的数据可用性层”。没有碎片化的实施,广场规模扩张是不可能的。那么,“PoS第1层汇总数据不占用主链块空间”这种架构的可扩展性如何呢?要解决这个问题,我们先来看看上卷方案和主链的交互方式。首先,你可以把一个汇总系统理解为一个无状态的契约,这个契约的内部状态(哪个用户有多少钱)对外界是不可见的;但合同中所有交易的数据都会定期公布,发布到主链上,让任何第三方在获得这些数据后,都可以重构合同的内部状态。使用有效性证书的汇总(如zkRollup)的特点是,每次合同披露交易数据时,都附有“计算完整性证书”(Calculation Integrity Certificate),表明这些交易已经正确执行,因此新的状态根应为XXX如果证书能够通过合同的验证,则合同更新状态根;如果证书无法验证,合同拒绝更新。使用防错汇总(例如最优汇总)的方案则相反:每次任何人为某个合同披露交易数据,都必须存入保证金,并断言该合同新的状态根是YYY;一段时间后,任何其他人都可以存款并出具错误证明来质疑这一说法;错误证明是指这批交易有瑕疵,或者交易处理后的新状态根不是YYY;如果挑战成功,发出错误断言的人将失去保证金;如果一段时间内没有挑战,合同更新状态的根源是YYY。这两个方案必须在链上发布数据,所以会占用链上的空间;此外,链上空间的大小决定了单位时间内上卷系统的吞吐量(TPS)。再想深一点,如果这些事务数据可以放在对数据量约束较少的地方,或者如果第一层块的空间没有被占用,其处理能力可以翻倍的效果。

这样的地方多了,也能产生倍增的效果。这就是“数据碎片化”和“以汇总为中心的路线图”的概念:让汇总方案将事务数据放入碎片块,可以增加多少倍的处理能力;以太网块目前的数据量在20 ~ 30 KB左右,显然是安全的。如果我们有64个切片,我们可以每15秒提供64*30=1920 KB=1.9 MB的数据。而且用户提供了这么大的数据吞吐量,但不会成为整个节点的负担,因为你想下载就下载,不想下载就不下载(也就是“碎片化”的意思)。你下载一点,我下载一点,但是节点负担还是很轻的。无论如何,验证这些汇总合同的状态不需要我拥有该汇总的所有历史交易数据。以太院的地位还是安全的。听起来很有道理,但还是太乐观了,假设太多:(1)“想下载就下载,不想下载就不下载”这种方法在zk上卷上是行不通的:当zk上卷想要更新状态根时,zk上卷合同更新操作的验证者(也就是Layer-1的所有节点)在收到证书时也必须获得证书对应的交易数据。

(不需要提供交易数据,也有只通过验证证书提升合同状态根的方案,叫Validium,不上卷)。也就是说,如果只考虑zk汇总,那么“数据碎片化”的方法在带宽上和大块没有区别。不管一开始是谁发的数据,存储在哪里,整个节点都要下载。(2)对于最优汇总,如果愿意采用更乐观的假设,当然可以完全不下载交易数据,只保留最新的状态根以获得终结性,只有出现争议时才下载相关交易数据。从整个节点来看,并不丧失对合同状态的验证能力;但是从用户的角度来看,事情就完全不同了:你不确定是否可以随时重构自己的状态来完成取款。

也就是说,用户不会确定他们使用的是最佳上卷还是等离子。最初,优化汇总的计划是确保所有节点都有历史事务的备份,这样用户就可以轻松地重建自己的状态并提交状态证书(或断言)来完成提款;但如果失去了这个保障,你也不确定自己是否能重建状态。最优汇总的安全性也会受到影响:其安全性假设是至少有一个已经获得交易数据的人会遵守协议;在数据切片模式下,你不知道会有多少人请求这部分交易数据。总之,当“数据碎片化”模式与zk汇总相匹配时,并不能提供更大的带宽意义上的可扩展性,但与扩展块空间具有相同的效果;当与Optimal Rollup搭配使用时,与大数据块相比,其可扩展性优势与挑战频率成反比;更有甚者,它让最优的上卷退化为塑性(顾名思义,没有最优的上卷,应该用另一个名字来指代这种介于最优上卷和塑性之间的东西)。

结论

Rollup方案其实是一只凤凰,从第二层的开发中吸取了血淋淋的教训。它最大的特点是为用户的财务安全提供了充分的保障。因为获得事务数据的任何人都可以重建状态,并且区块链确保这些事务数据的可持续数据可用性,所以汇总方案可以在第2层方案中提供一流的用户保护。只有这样,用户才能真正使用它。抛弃这个优势,按照性能最大化的乐观假设来设计系统,只能设计出用户不敢用的东西。只要你意识到汇总本质上是一种契约式设计模式,“PoS数据碎片汇总可以提供更大吞吐量”的神话就可以一目了然。无论达成哪种共识,—— rollup都可以提供同样的可扩展性,数据分片可以提供更多,只是因为引入了其他安全假设。让汇总牺牲安全性来换取吞吐量。问题是这种安全性比rollup弱,扩展性比roll up强的契约,以前从来没有出现过,不能在功率链上设计,但是已经设计过了,没人会用。

自2017年以来,以太网社区一直在努力探索满足实际需求的安全可扩展性解决方案。可能很多人都相信“PoS碎片化”可以提供强大的可扩展性,但它是一个“碎片化的执行系统”,有其自身的问题。目前的“可执行信标链路由”只是为了吞吐量而牺牲了合同本身的属性。到目前为止,还没有证据表明Ethereum应该为了可扩展性而拥抱PoS。归根结底,只有满足用户需求的性能提升才是真正有意义的。如果不从用户的实际需求出发,反而只能从技术美观或者性能最大化的假设出发设计空中楼阁。如果可以,让用户自己做决定。在协议层面过于担心往往会增加摩擦。以太馆的路线图该不该改?当然要放弃这些不切实际的幻想,问问用户需要什么。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发