本文探讨了以太坊向权益证明(PoS)和分片技术的过渡,详细解释了当前以太坊的工作原理、共识机制的变化以及在执行层面上如何实现更高效的交易处理。通过引入Rollups等扩展方案,文章阐述了如何解决链的带宽问题,并展望了未来以太坊网络的发展方向。
14
以下内容改编自2021年4月9日星期五的演讲
这就是以太坊之路。今天的以太坊是eth2开发者所称的“eth1”,即我们熟知的当前工作量证明(PoW)链。明天的以太坊既不是eth1,也不是eth2,而只是……以太坊:在今天的执行层之上,综合了eth2在部署权益证明(PoS)和分片方面的努力。
聒噪的词语。让我们回顾一下。这就是今天的情况。
用户想要进行某些操作(“交易”),因此他们将交易发送给矿工,矿工将其包装得井井有条,然后将这些区块添加到不断增长的链中。矿工运行PoW共识机制1来决定谁是下一个添加区块的人,同时执行区块中包含的交易以确保其有效性。
这并不全是坏事,但我需要一个吸引人的标题。
PoW需要大量硬件进行高强度计算,造成巨大的能耗。我们不会讨论大多数加密货币批评者所指的浪费(“为什么我们需要一个使用<国家>能源的支付系统?”),而是从更严格的角度来看浪费,也就是说如果我们能使用较小的绝对kWh数做某件事,那我们应该这么做。
因此,出现了权益证明,替换掉大面积的矿机,用一台小服务器替换矿工。
如果他们没有正确执行2.,则会失去代币
那么,2.是什么?验证者到底在验证什么?
共识层确保每个人对正确数据的一致意见。执行层实际解释这些数据,使其具有意义。“数据”是与区块链的任何交互,例如:部署合约、在交易所进行交易、发送支付等。
区块链的“心跳”是将新块引入链中的过程。当发生这种情况时,状态会发生变化,即新块之前的状态与新块之后的状态之间会进行状态转换。状态总结了在块0到N之间所有先前数据。
例如,如果状态保留了Alice和Bob的余额账本,而新块包含Bob向Alice支付10个代币的记录,则该块后的状态将具有新余额。在“块N+1后的状态”气泡的右侧虚线块显示,一个新块可能会修改现有状态(例如,Alice和Bob的余额)或创建新状态(部署新合约或将Carol添加到账簿……)。
Rollups和eth2的努力主要针对我们计划的第一点,解耦共识和执行。那么,这个进展如何呢?
自2020年12月以来,我们有两条链在并行运行:
上面是PoS共识链(又称信标链)
下面是我们可靠的PoW共识 + 执行链(又称“eth1”)。
它们并行运行,但它们之间是有联系的。不过,目前的联系相对单向……
要成为PoS共识链的验证者,PoW共识 + 执行链上的用户需在存款合约中锁定32个ETH,该合约会神奇地转移到PoS共识链。一旦验证者被激活,他们就可以开始验证并获得奖励。
这种单向交流希望不会持续太久。合并(Merge)将永久填补PoS共识链和PoW共识 + 执行链之间的缺口,使验证者能够为执行层生成区块。因此,在合并之后,我们拥有两条链:
相同的PoS共识链
一条支持PoS的执行链(前称为“eth1”)
当这种情况发生时,PoS共识链的验证者最终将能够赎回并提取他们的收益和存款,将其发送回支持PoS的执行链。2
这一切都让我们从PoW环境转向一个成熟的PoS环境。但请注意,这并不会真正增加链的带宽——即一个区块可以打包的执行量——这是**分片(sharding)**的目标。在我们讨论这个问题之前,让我们聊聊如果只有一个执行链,还可以通过其他方式扩展执行。
颜色摘要:共识=紫色,执行=绿色,数据=黄色
引入rollups,这是各种可用的扩展解决方案之一,但或许是从协议设计角度提供最优权衡的一个。这个想法很简单:通过在链上提交执行状态转换所需的数据,合成状态转换,并将执行推到链外。如果任何人在执行结果上存在问题,或者如果有人忘记执行,那么这些数据就在那儿,供所有人处理。无需许可!
更准确地说,执行所需的数据(交易输入)与其容器(交易)分离,并以节省空间的方式“捆绑”。与此同时,rollups在执行链旁边运行,提交这些数据并进行执行。
要“进行rollup”,用户需在执行链(“eth1”)上将资产存入rollup的合约中,然后在rollup上进行操作,比如与其他在rollup上的资产进行交易。一旦他们完成,用户将资产从rollup提取回执行链。Voilà。
欢迎采用rollups的替代方案?好吧,如果我们不是让这些垂直的黄色链,而是一堆平行的红色链呢?就是说,如果eth1链被“复制”并且多个实例并排运行?
这里的问题是如何处理多条执行链并行运行。如果一条链上发生某些事情,而另一条需要知道时该怎么办? 这实际上就是**分片(sharding)**这一棘手问题,即在多条链之间划分执行 。
“Rollups并没有那么不同!”你会说,从本质上说这是真的。当你想在一个rollup上进行另一个rollup上的操作时,相同的棘手问题仍然会出现。然而,问题在于,存在多种rollup设计,并且解决方案的空间非常广泛,且大部分仍未被探索。因此,为什么不让rollups引导实验,再在协议层面上确立一种方法呢?
这引导我们到……
所以你听说区块空间紧缺了是吧?Rollups确实需要发布它们的数据,而eth1区块空间是稀缺的!再加上之前讨论的,跨分片的事情是困难的。因此,既然生活给我们柠檬,为什么不利用分片来存放rollups至关重要的发布数据呢?64个分片,意味着现在可用的带宽增加了64倍,可能更多,因为一个分片区块通常能够比当前eth1链块容纳更多数据。
需要强调的是,这并不意味着分片级别的执行将被永远排除。以rollup为中心的以太坊是一个短期到中期的前进方向,直到(例如)找到更好的密码学原语来保证跨多个链的正确执行。所有这些都非常吸引人,并将使许多人在很长一段时间内都忙碌。在这段时间内,rollups是解决之道。
在这一方面还有很多工作!首先,请不要忘记合并(Merge)和数据分片是极其复杂的工作,目前有多个团队在各自或共同努力。但即使在rollup方面,还有一些非常有趣的问题值得探索,这里只列出了几个。
用户在rollups之间的迁移是一个非常酷的概念。 如果你有足够频繁的公共交通往返Layer 1(eth1)和Layer 2(rollups),为什么你还要自己开车呢?这方面的经济学是什么?
如果你想在邻近的rollup上做些事情,因为他们有你所在的rollup没有的酷东西,该怎么办?你是否必须必然从你的rollup转移到L1,然后再从L1转移到邻近的rollup?这似乎非常浪费。
Rollups确实在当前操作中大幅提升了带宽,这毫无疑问,但rollups并不是用户似乎期待的无限高速公路。目前仍然有很多人想做很多事情,有时是在同一时刻!因此,rollups自然会面临拥堵问题,但与L1协议确立特定拥堵市场(不久即将推出的eip1559)相比,rollups有更大的设计空间可供探索。
说到拥堵,这更加协议特定,但我们也将看到eip1559担任交通警察,来调节每个数据分片上发布的数据量,确保验证者能够应对这一量。如果你认为一个eip1559机制很酷,等到有64个同时运行会怎么样?那么,rollups应该将它们的数据发布在哪里?在一个分片中,以便让收听它的用户不必跨分片而容易访问?还是在多个分片中,以利用计划的分片交错,以便分片轮流发布新块,这样你永远不会隔几百毫秒就能获取到新的块用以发布你的数据,适合快速最终确定应用?
非常感谢Danny Ryan和Sacha Saint-Leger的建议。
我听说PoW并不是一种共识算法,但我认为将其描述为一种共识机制是可以的,尽管这可能会出现定义超载的问题。
PhiGo在Twitter上提到,在合并(Merge)后,存款不一定立即可以提取(当PoW关闭时)。确实,当前的合并计划更专注于关闭部分,而提取则是一个单独但相关的问题。
作者:Barnabé Monnot · 启动于4年前
以太坊,激励及其他事务
订阅
通过订阅,我同意Substack的使用条款,并确认其信息收集通知和隐私政策。
14 次点赞
- 原文链接: barnabe.substack.com/p/e...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!