当前位置: 首页 > 科技观察

本文阐述了以太坊的发展路线

时间:2023-03-22 01:53:22 科技观察

本文是关于以太坊未来的发展之路。Eth2开发团队将当前的以太坊称为“eth1”,也就是现在众所周知的PoW链。而未来的以太坊既不是eth1也不是eth2,而是...交易给矿工,矿工将它们打包成块并将它们添加到不断增长的链中。矿工运行PoW共识机制[1]来决定谁将添加下一个区块并执行区块中的交易以确保交易有效。图:PoS机制取代PoW机制PoW并非全是坏事,但我需要一个有吸引力的话题PoW需要大量的硬件来运行密集的计算,导致过度的能源消耗。我们不像大多数加密货币评论家那样谈论资源浪费(他们通常的花言巧语是“为什么我们有一个消耗国家资源的支付系统?”),我们提倡的是,既然我们可以支付相对较小的消耗来做同样的事情,那么我们应该这样做。所以我们选择过渡到PoS,用一台小服务器代替大量的挖矿设备,用验证者代替矿工。图:如果他们不做第二步验证,他们将失去资产执行层)共识层确保每个人都同意某个正确的数据。而执行层实际上解释这些数据是有意义的。“数据”是与区块链交互的任何形式,比如部署合约、在交易所进行交易、发送支付交易等……区块链的核心是在链上添加新的区块。当添加一个新的区块时,该区块之前的状态将迁移到该区块之后的状态。该状态聚合了区块0到N的所有数据。例如,如果该状态持有一个记录Alice和Bob余额的分类帐,并且一个新区块包含Bob支付Alice10代币的记录,那么在添加这个新区块之后到区块链上,状态会记录新的余额信息。“StateafterblockN+1”(区块N+1之后的状态)图中右侧的虚线点表示添加新区块后的变化,可能会修改现有状态(例如Alice和Bobbalance),或创建一个新状态(部署一个新合约,或将Carol添加到分类帐中......)第一步将共识层与执行层解耦;第二步将Rollups和eth2从PoW转移到PoS为了解决上述计划中的第一点:去除共识层和执行层之间的关联。那么这项工作进行得如何呢?图:第一步已经完成从2020年12月开始,我们有两条链同时在进行中:第一条,是PoS-共识链(又名,信标链)二,是我们可靠的PoW-共识+执行链(又名,eth1)它们同时运行,但它们也可以相互通信。不过这个功能还没有实现……图:如何成为验证者想成为PoS-共识、PoW-共识+执行链用户的验证者需要在存款合约中锁定32个ETH,这会自动转移到PoS共识链上。一旦验证者被激活,他们就可以开始验证工作并获得奖励。图:Merge这种无法沟通的情况希望不会持续太久。“Merge”永久桥接PoS-共识链和PoW-共识+执行链,这意味着验证者可以为执行层生产区块。合并后,我们有两条链:PoS-共识链一条基于PoS的执行链(即“eth1”链)合并后,PoS-共识链的验证者将能够赎回和提取他们的抵押存款和奖励,并将其发送回基于PoS的执行链。[2]因此,我们需要从PoW环境转移到完全成熟的PoS环境。但请注意,这种改造并没有提高区块链的带宽(一个区块中打包了多少笔交易),这是分片要解决的问题。在此之前,让我们讨论一些在只有一个执行链的情况下提高执行可扩展性的方法。图:将执行放到链下;putdataon-chain(colorsummary:consensus=purple,execution=green,data=yellow)说到rollups,这是许多可用的扩展解决方案之一,但从协议设计的角度来看,这种解决方案可能提供最优妥协。该方案的思路很简单:通过将用于重构状态转换执行的数据存储在链上,综合处理状态转换,并将状态的执行放在链下。如果有人不同意执行的结果,或者如果有人一开始就忘记执行了,数据上链,所有人都可以使用(可以重新计算),这是完全无需许可的!更准确地说,执行所需的数据(交易输入)与其载体(交易)分离,并以节省空间的方式“捆绑”在一起。同时,汇总在执行链(eth1)之外运行,提交和执行数据。图:已经部署了多个rollups解决方案,还有更多正在开发中。用户需要向执行链(“eth1”)上的rollup合约质押一个资产,才能进入rollup,用户可以在其中进行交易。完成后,用户可以将资产从汇总转移回执行链。Rollup的替代方案是什么?我们看看上图,想象一下,如果我们把那些垂直的黄色链条换成一串平行的红色链条会怎样?例如,如果我们复制几个eth1链,然后并排运行它们呢?这里的问题是如何处理并行运行的多个执行链。如果一条链上发生了一些事情,而其他人需要知道怎么办?这对于分片来说是一个非常棘手的问题,或者说是多链执行的方案需要克服的问题。“Rollups之间没有区别”,读者可能会这么想,本质上并没有错。但是当你想从一个rollup转移到另一个rollup时,同样棘手的问题又出现了。然而,关键是目前已经存在多种rollup设计,这些解决方案的可探索空间仍然非常广阔。既然如此,为什么不在引入协议级方法之前尝试使用汇总呢?这给我们带来了...图:使用分片存储rollup发布的数据读者应该听说过没有足够的块空间什么?Rollups确实需要发布他们的数据,但是eth1区块空间是稀缺的!此外,正如我们所讨论的,交叉分片非常困难。为了解决这个问题,我们可以使用shards来保存rollup需要发布的数据。到那时可能会有64个分片,或者说是现在可用带宽的64倍。一个分片块可能比eth1链块当前可以容纳更多的数据。我需要强调的是,这并不意味着我们将永远排除执行分片。以rollup为中心的以太坊路线图是我们的中短期发展目标,直到我们找到更好的加密原语来实现跨多条链的执行分片。这个方案很吸引人,团队里很多人都研究了半天。与此同时,我们可以使用汇总。图:每个rollup都有自己的执行环境还有很多工作要做!首先,我们不要忘记“合并”和“数据分片”都是非常复杂的任务,需要多个团队同时处理其中一个或两个工作。但是在rollups方面还有一些有趣的问题有待探索,我只是列出了一些:启用用户和rollups之间的大规模迁移是一个很酷的概念。如果用户有足够的公共交通工具往返Layer1(eth1)和Layer2(rollups),他们为什么要自己开车来回?这是很不经济的。如果用户认为他可以在另一个rollup上做一些很酷的事情(他所在的rollup不存在),他是否必须先提现到L1,然后再从L1存入这个rollup?这样就太浪费了。对于目前的链上操作,rollups大大增加了网络带宽,这是毋庸置疑的。但汇总仍然不是用户期望的无限高速公路。仍然有很多人想在rollups上做很多事情,有时甚至是同时做!所以rollups必然会面临拥堵问题,但不同于L1是特别拥堵的市场(1559即将上线),rollups的可探索空间更广阔。说到拥塞,虽然这更具体到协议,但我们还将看到EIP-1559充当交通警察,规定在每个分片上发布多少数据,确保验证者可以处理该数据量。如果你认为在eth1上运行EIP-1559很酷,那么期待同时在所有64个分片链上运行1559。那么,汇总应该在哪里发布他们的数据?在单个分片上以便数据仅在该分片上可用?或者在多个分片上以便他们可以从计划的“交错分片”中受益?“Shardstaggering”计划?这个方案是由Vitalik提出的,即分片轮流出块,这样在发布数据的时候,从新出块到出块的时间在几百毫秒以内,适合需要“快速敲定”的应用。据说是理想的选择。特别感谢DannyRyan和SachaSaint-Leger提出的建议。[1]我听说PoW不是共识算法,但我认为如果它重载了定义,那么将其描述为共识机制是可以的。[2]PhiGo在推特上写道,合并后(PoW退出以太坊)不一定可以提取质押存款。诚然,目前合并方案更侧重于合并部分,而“退出”问题是一个单独但相关的研究工作。