作者是以太坊基金会下属机构RobustIncentivesGroup的科学家BarnabéMonnot。大量的图保证了文章的友好,作者的背景保证了严谨。
最近DeFi的主要项目都在密集的发布2.0版本的消息,仔细看过升级的细节就会发现,这些DeFi应用的升级在倒逼基础公链提速。
想提前布局的投资者,得看懂Layer2,要不然接下来除了追热度,都不知道咋投项目。
这是通往以太坊的道路。今天的以太坊就是eth2开发者所称的“eth1”,这是大家都知道并喜欢的当前工作证明(PoW)链。明天的以太坊不是eth1,也不是eth2,它只是……以太坊:eth2在今天的执行层上部署权益证明(PoS)和分片的综合成果。
今天让我们回溯一下。
用户想要做一些交易,所以他们把自己的交易发送给矿工,他们把它们打包成区块,并把他们的区块添加到一个不断增长的链中。矿工运行PoW共识机制1来决定下一个添加区块的对象,并执行区块中包含的事务,以确保它们是有效的。
PoW需要大量的硬件来运行密集的计算,这导致了过高的能耗。我们不会像大多数加密货币评论家所希望的的那样讨论浪费(“为什么我们需要一个使用<country>的能量的支付系统??”),但如果我们能用一个严格较小的KWh绝对值来做某事,我们就应该这样做。
因此,进入权益证明(PoS),用一个smol服务器替换大量的采矿设备,用验证者替换矿工。
如果他们不完成第二步,他们也会失去硬币。
没错。那么第二步是什么?验证器到底在验证什么?
共识层确保每个人都同意正确的数据。执行层实际上是解释了这些数据,使其有意义。“数据”是与区块链的任意类型的交互,例如,部署合约,在交易所进行交易,发送付款等等。
区块链的心跳来自于在链中引入一个新的区块。当这种情况发生时,在新区块之前的状态和之后的状态之间存在状态转换。状态总结了之前在区块0到区块N=之间的所有数据。
例如,如果有一个状态包含Alice和Bob余额的分类账,并且新的区块包含了Bob向Alice支付的10个币,则该区块之后的状态将拥有新的余额。“N+1区块块后的状态”气泡右侧的虚线显示,一个新的区块可能会修改现有状态(例如,Alice和Bob的余额)或创建新状态(部署新合约,或将Carol添加到分类账中…
rollps和eth2工作的要点是解决第1点。我们的计划,不涉及共识和执行。那么会如何呢?
从2020年12月以来,我们有两家并行运作的链条:
在顶部,权益证明(PoS)-共识链(又称“信标链”)。
在最底层,Ol‘的可靠的PoW-共识+执行链(也称为。“eth1”)。
它们平行运行,但它们也相互沟通。好吧,现在还是一边倒…
为了成为PoS-共识链上的验证者,PoW-共识链+执行链上的用户锁定了存款合约中的32个ETH,这将自动转换为PoS-共识链。一旦验证者被激活,他们就可以开始验证并接受奖励。
这种一边倒的谈话希望不会持续太久。合并永久地连接了PoS-共识链和PoW-共识链+执行链之间的鸿沟,允许验证者为执行层生成区块。因此,在合并之后,我们有两个链:
相同的PoS-共识链
PoS支持的执行链(f.k.a,“eth1”)
当这种情况发生时,PoS-共识链的验证者最终将能够赎回和提取其收益和存款,并将它们发送回PoS支持的执行链。
所有这些本身就让我们从PoW环境转移到一个完全成熟的PoS环境。但是请注意,它并没有完全增加链的带宽--一个区块的执行量是多少--这是分片的目标。在讨论这个问题之前,我们先来讨论一下如果只有一个执行链,那么扩展执行的其他方法都有什么。
颜色:一致=紫色,执行=绿色,数据=黄色
rollup是众多可用的解决扩展方案之一,但从协议设计的角度来看,它可能提供了最佳的折衷方案。其方法很简单:通过在链上提交重建状态转换执行所需的数据来合成状态转换,并将执行推到链下。如果有人对执行结果有质疑,或者有人忘记了在第一时间执行,那么所有人都可以处理该数据。无需权限!
更准确地说,执行所需的数据(事务输入)与它的容器(事务)分离,并以节省空间的方式“绑定”。同时,rollup在执行链之外运行,提交数据并执行它。
为了“进行rollup”,用户将资产存放在rollup合约中的执行链(“eth1”)上,然后他们在rollup上做一些事情,比如在其他rollup上进行资产交易。一旦完成,用户就会从rollup中将资产撤回到执行链上。
什么是rollups的替代方案?如果不是这些垂直的黄色链,而是一堆平行的红色链呢?例如,如果eth1链是“复制的”,并且几个实例同时运行会怎样?
在这里是我们如何处理几个并行运行的多个执行链的问题。如果链条上发生了什么事需要别人知道怎么办?这是一个非常棘手的分片问题,也就是在多个链之间怎么划分执行的问题。
你会说“rollups也没什么不同!”,实际上这也是真的。当用户想从一个rollup对另一个rollup进行操作时,也会出现同样棘手的问题。然而,关键是存在一些rollup的设计,其解决方案的空间广阔,而且大多数还未被开发。那么,在将一种方法纳入协议级别之前,为什么不让rollup引导实验呢?
这就把我们带到了......
你听说过区块空间短缺吗?rollup确实需要发布它们的数据,而eth1区块空间非常少!而且我们说过,交叉分片很难。因此,为了用我们的柠檬做柠檬汁,为什么不使用分片来保存需要发布的rollup数据呢?使用64个分片,这是现在可用带宽的64倍,而且可能更多,因为一个分片区块可能会比eth1链区块当前能够容纳的数据量高得多。
应该强调的是,这并不意味着在分片级别的执行永远是被排除在外。以rollup为中心的以太坊是一个短期到中期的发展方向,直到(例如)找到更好的加密原语来保证跨多个链的正确执行。这一切都非常迷人,应该会让很多人忙上很长一段时间。与此同时,rollup也是一个解决方案之一。
在这方面还有很多工作要做!首先,不要忘记Merge和数据分片是非常复杂的工作,目前有多个团队正在处理其中一个或两个。但即使在rollup方面,仍然有一些非常有趣的问题有待探索,而这些只是少数。
用户在rollps之间的大规模迁移是一个非常酷的概念。如果以足够多的公共交通工具来往于第一层(eth1)和第二层(rollps)之间,为什么你还要自己开车去呢?这有什么经济学意义吗?
如果我想在邻近的rollup上做一些事情,因为他们有一些很酷的东西,而我的rollup没有,那我是否从我自己的rollup到L1,然后从L1到邻近的rollup?这似乎相当浪费。
对于当前的操作来说,rollup是一个巨大的带宽改进,这是毫无疑问的,然而rollup并不是无限高速公路用户所期望的,但仍然有很多人想要做很多事情,有时甚至是在同一瞬间!因此,rollps自然要处理拥塞问题,但是它与L1协议(即将发布的eip1559)所规定的拥塞市场相反,rollps有更大的设计空间可以探索。
说到拥塞,这是更特定于协议的,但我们还会看到EIP1559扮演交通警察的角色,来调节每个数据分片上发布的数据量,以确保验证者能够应付的数量。如果用户认为一种eip1559机制很酷,那么请等到有64种机制在运行时再考虑。那么,rollups应该在哪里发布数据呢?在一个分片上只是使其可访问而无需为正在听的人跳分片?在多个分片上,要利用分片交错计划,分片依次发布一个新区块,这样我们距离新区块发布数据的时间就不会超过几百毫秒,难道这不是快速终结应用程序的理想选择吗?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。