可视化以太坊的未来之路该如选择_COIN:UNI

以下内容改编自作者于4月9日(周五)的演讲内容。非常感谢DannyRyan和SachaSaint-Leger的建议。

本文是关于通往未来以太坊的道路。今天的以太坊就是eth2开发者所称的“eth1”,也即当前我们熟知和喜爱的PoW链;明天的以太坊既不是eth1,也不是eth2,而就是...以太坊:综合了在今天的执行层(eth1)之上部署PoS和分片的一系列eth2工作。

我们先来回顾一下今天的以太坊(eth1):

今天的?eth1链的运作方式

在今天的以太坊上,当用户想要做一些事情(即“事务”),他们会把事务(transactions)发送给矿工,然后矿工把事务打包进区块,并将这些区块添加到一条不断增长的区块链(eth1)中。矿工运行PoW共识机制,以此来决定由谁来添加下一个区块,矿工也执行区块中包含的事务,以确保这些事务是有效的。

PoS替代PoW:验证者替代矿工,小型服务器替代大量挖矿设备

PoW需要大量的硬件设备来运行密集运算,进而造成了过高的能耗。在此,我们不会像大多数加密货币批评者那样讨论能源浪费问题(比如“为什么我们要使用一个消耗<某个国家的>能源的支付系统?”),但如果我们可以消耗绝对更少的kWh(千瓦时)来做一些事情,那么这(PoW)就确实是存在能源浪费,我们应该减少能耗。

因此,这将我们带入PoS,使用小型的服务器来取代大量挖矿设备,并使用验证者(validator)取代矿工。

在PoS中,如果验证者不执行验证工作(图中第2步),则将会适当地损失质押金

那么,上图中的第2步(即验证)是什么呢?验证者到底要验证什么?

我们可以将以太坊的活动分为两部分:共识层→“哪个是正确的数据?”;执行层→“数据的含义是什么?”

共识层(consensuslayer)确保所有人都对正确的数据达成共识。执行层(executionlayer)实际上是“解释”这些数据,使数据有意义。“数据”是指与区块链进行的任何交互,比如部署一个智能合约,在交易所进行交易,发送一笔付款等等...

区块链的核心是在链中引入新的区块。当新区块被添加进来时,新区块进来之前的状态和进来之后的状态之间,会发生一次状态转换(statetransition)。区块链的当下状态汇总了之前所有区块的数据。

例如,如果当前状态维持着一个记录了Alice和Bob的账户余额的账本,而新区块中包含了一笔Bob向Alice支付了10枚币的交易,那么这个新区块被添加进区块链中之后,状态将会记录新的余额信息。一个新区块添加进来之后,要么会更改当前的状态(比如,更新Alice和Bob的余额),要么会创建一个新的状态(比如部署一个智能合约,或者将Carol新添加进账本中...)。

根据以太坊计划,第1步是将共识与执行解耦;第2步是把PoW共识换成PoS共识

根据我们的计划,Rollups和eth2工作的总体要点就是处理上图中的第1步,也即将共识与执行解耦(decorrelateconsensusandexecution)。那么,这方面进展如何了呢?

第1步已经完成了!

自2020年12月以来,我们已经有了两条并行运行的区块链(见上图):

上方的是PoS共识链(即信标链)

下方的是可靠的PoW共识+执行链(即eth1链)

这两条链并行运行,但它们会相互“交流”,当然目前是单向的...

如何成为一名验证者?

要成为PoS共识链(即信标链)的验证者,用户需要在部署于PoW共识+执行链(即eth1)上的存款合约中锁定32ETH,该质押金会自动转移到PoS共识链中。一旦验证者被激活,就可以开始(对PoS共识链)进行验证并获取奖励。

合并之后,信标链(紫色)是共识链,切换为PoS共识的eth1链(红色)将作为执行链。什么时候实现合并?可能在2021年实现...

预计这种单向的“交流”将不会持续很长时间。合并这两条链将永久地连接PoS共识链(信标链)和PoW共识+执行链(eth1)之间的鸿沟,从而允许验证者为执行层(即合并之后切换为PoS共识的eth1链)生成区块。因此,合并之后,我们将有两条链:

同一条PoS共识链(即信标链)

基于PoS的执行链(即切换为?PoS共识的eth1链)

合并之后,PoS共识链(信标链)的验证者们将终于能够赎回和提取他们的收益和存款,并将收益和存款发回至PoS执行链(eth1)中。

所有这些使我们从PoW环境转移到了一个完全合格的PoS环境中!但需要注意的是,此时并没有增加这条链的带宽——这是分片(sharding)要实现的目标。在这之前,在我们尚且只有一条执行链(即eth1链)之际,我们来讨论一下如何通过其它方式来对执行进行扩展。

扩展计划:1.将执行转移至链下;2.将数据提交至链上。

Rollups是众多可用的扩展解决方案之一,但从协议设计的角度来看,它可能提供了最优折衷的方案。Rollups的理念很简单:通过在链上提交重建状态转换执行所需的数据,来综合地处理状态转换,并将执行转移至链下进行。如果有人对执行结果有异议,或者有人忘记了在第一时间执行,那么数据就在那里等着所有人处理。Rollups是无需许可的!

更准确地说,在Rollups中,执行所需的数据(事务输入)与它的载体(事务)是分开的,且这些数据是以节省空间的方式“捆绑”起来。同时,Rollups在执行链(即eth1链)之外运行,提交数据并加以执行。见下图:

如今eth1链的扩展正在发生,Rollups已经部署,其它扩展方案也在开发中。

想要“使用某条Rollup链”的用户,需要在该Rollup位于执行链(eth1)上的合约中存储一些资产,之后用户就可以在该Rollup上做一些事情了,比如使用自己的资产与该Rollup链上的其它资产进行交易。一旦用户完成了想要做的事情,就可以将资产从Rollup撤回至执行链中。就是这样!

Rollups有什么其它替代性方案?如果我们没有这些并行运行的Rollps链(上图中的黄色链),而是拥有很多条并行运行的执行链(上图中的红色链),那会如何?比如,如果eth1链被“复制”,并与其它几条复制链并行运行,那会怎样?

其中的问题在于我们如何处理几条平行运行的执行链。如果其中某条执行链想要知道另一条执行链中发生的事情,那该如何做到?这正是分片(sharding)?遇到的棘手问题(注:也即所谓的跨分片通信问题)。

你可能会说,“Rollups差不多也有这样的问题!”,实际上确实如此。当你在某条Rollup链上想要与另一条Rollup链进行交互时,同样的棘手问题也会出现?(即跨Rollup通信问题)。但重点是,当前存在几种Rollup设计,这一问题的解决方案空间很广阔,且在很大程度上尚未被探索。因此,在将某种方案纳入协议层之前,为何不通过Rollups先启动试验呢?

这将我们带向了以Rollup为中心的以太坊路线图。

以Rollup为中心的eth2:使用分片来保存Rollups发布的数据

你听说过区块空间的稀缺性吧?Rollups需要发布数据,而eth1的区块空间是稀缺的!且如上所述,跨分片很难。因此,为什么不使用分片来保存Rollups需要发布的数据呢?借助于64条分片链,就能带来比当前可用的多出64倍的带宽,而且可能更多,因为一个分片区块将可能保存比当前的eth1区块更多的数据量。

应该强调的是,这并不意味着在分片层的执行功能会永远被排除在外。当前以Rollup为中心的以太坊路线图是一种短期到中期的前进方式,直到(例如)找到更好的加密原语来保证正确地将执行划分到多条链中(注:即实现可执行分片)。这一切都非常迷人,应该会让很多人忙上很长一段时间。在此期间,Rollups是解决之道。

每条Rollup链都是其自身的“执行环境”:如何轻松地迁往/迁出Rollup?我们可以进行跨Rollup操作吗?Rollups应该如何处理拥堵问题?

这方面还有很多工作要做!首先,我们不要忘记,合并和数据分片是非常复杂的工作,目前有多个团队在致力于其中一项或兼顾这两项工作。而即便是在Rollup方面,仍然有一些非常有趣的问题有待探讨,以下仅是其中一些:

如何大规模地实现用户向Rollups的迁移或者从Rollups迁回至链上,这是一个很酷的概念。如果你有足够多的公共交通工具让你往返于Layer1(eth1)和Layer2(Rollps)之间,为何你还要自己开车往返呢?其中的经济机制是什么呢?

如果你想在临近的一条Rollup链做一些事情,因为该Rollup中有着一些你所在的Rollup中没有的酷东西,那你该怎么办?你是否必须从当前的Rollup撤回至Layer1上,然后再从Layer1转移至该临近的Rollup中?这似乎相当的不经济。

对于当前的链上操作来说,Rollups是一个巨大的带宽提升,这是毫无疑问的。但是,Rollups并不是用户所期望的无限高速公路。在Rollups中,仍然会有很多人想要做很多事情,且有时候是同时发生的!因此,Rollups将与生俱来地要应对拥堵问题,但与Layer1协议保护的拥堵市场(EIP-1559很快就会实施)不同,Rollups有着更大的设计空间可供探索。

说到拥堵问题,这是更特定于协议的,但我们还将看到EIP-1559扮演交通警察的角色,来规范每个数据分片上发布的数据量,以确保验证者能够处理这个数据量。如果你认为EIP-1559机制在一条链(eth1)上很酷,那么等到有64条分片链同时运行该机制时会更酷。那么,Rollups应该在哪里发布它们的数据呢?是将数据仅发布在单个分片上,使数据仅在该条分片上可获取?还是发布在多个分片上,从而受益于计划中的分片交错出块?其中,分片交错出块(shardstaggering)是Vitalik最近提出的想法,即所有分片轮流出块,这样Layer2项目(如Rollups)在发布数据时,距离一个新区块的时间间隔不会超过几百毫秒,这对于需要快速敲定的应用来说是理想选择,详见?。

撰文:BarnabéMonnot,以太坊基金会研究员

原文链接:

https://barnabe.substack.com/p/eth2

正文中涉及的链接:

:https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698

:https://ethresear.ch/t/mass-migration-to-prevent-user-lockin-in-rollup/7701

:https://ethresear.ch/t/simple-approach-to-incentivizing-shard-staggering/9149

*本文首发于Unitimes?App*

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-7:415ms