AD
首页 > 数字货币 > 正文

看法 | 以太坊的路线图应该改变吗?_数字货币

[2021-02-02 15:50:47] 来源: 编辑:wangjia 点击量:
评论 点击收藏
导读: 许多人可能都相信过,“PoS + 分片” 能提供强大的可扩展性,但那是 “分片化执行系统”,有自身的一堆问题 SEC主席换人,以太坊2.0即将上线,会重新认定以太坊是证券吗?以SEC的标准看,以太坊
许多人可能都相信过,“PoS + 分片” 能提供强大的可扩展性,但那是 “分片化执行系统”,有自身的一堆问题

SEC主席换人,以太坊2.0即将上线,会重新认定以太坊是证券吗?

以SEC的标准看,以太坊作为证券的可能性实际上是更低的。

作者:阿剑


自 《A rollup-centric ethereum roadmap》(中文译本)一文揭晓以来,整个社区都对以太坊(尤其是以太坊 2.0)的门路图发生了疑问。

2020 年 11 月 18 日,在以太坊基金会的 Eth2.0 研究团队的第五次 AMA 流动中,Vitalik 明白地示意,门路图已经发生了转变:(1)暂时不再强调 Phase2 的重要性,Phase 1 致力于实现数据分片(shard data),供 rollup 方式使用;(2)信标链将具备执行功效,即 Eth1-Eth2 合并之后,信标链区块将直接包罗买卖;(3)Phase 0 实现后的三大事情:轻客户端支持、数据分片、合并,将并行推进,任一模块只要准备好了就退出。


本文的目的不是为原来的三阶段门路图辩护。相反,本文是想主张,三阶段门路图虚无缥缈,新门路图食之无味,没有一种与 Eth2.0 相关的门路图值得以太坊放弃当前的运作模式、转向以 PoS 为基础的系统。


在这里,我会先解说初始的三阶段门路图的论证思绪及其手艺难点;然后剖析新门路图的可扩展性。最后论证,新门路图的可扩展性优势,已经渺小到不足以使以太坊冒险转入 PoS。


Eth2.0 的三阶段门路图


在已往两年,广为流传的 Eth2.0 门路图规划了三个依顺序实现的组件:

Phase 0:以 PoS 为共识机制的信标链 Phase 1:多条分片链 Phase 2:为所有分片增添执行功效


从这一起线图可以清晰地看出,原来的以太坊 2.0 的目的是打造一个 “分片化执行(sharded execution)” 的系统,意思是:每个分片都有自己的状态,这些状态按各分片的状态转换规则来调换;调换后的状态由信标链来敲定;由此,以太坊 2.0 就成了一个多个分片可以并行处置买卖的系统。这也意味着,以太坊 2.0 是一个 “共识” 和 “买卖处置(验证)” 解耦的系统,被分配到各分片上的验证者卖力验证买卖和状态的准确性;但这些状态的敲定则依赖于信标链的 epoch 敲定机制,两个历程并不是完全同步的。


这种 “PoS 信标链 + 多分片” 的架构,似乎也非常好地利用了 PoS 算法自己的特点:为了解决 No-thing-at-stake 问题(PoS 出块不需要支出盘算量,因此有资格出块的账户会实验在差其余分叉上同时出块,使系统支离破碎),以太坊 2.0 所用的 Casper 算法要求用户先存入一部门押金才气获得出块资格,而若是验证者滥用了出块资格(好比同时支持两个分叉),则会被罚没押金;由此,像 Casper 这样的算法现实上在区块链上缔造了两种可以相互相同、但相互自力调换的状态:一种是普通用户的状态,另一种是验证者的出块权重状态;共识历程以出块权重状态为基础,杀青共识也会更改出块权重状态;因此,共识历程先天自力于用户买卖的验证,可以解耦;对随便的买卖批次及效果状态而言,共识历程可以被抽象成一种 “终局性敲定机制”,逻辑上,多分片并行执行于是成为可能。


至于其可扩展性,以太坊分片手艺的命名 “二次方分片(Quadratic sharding)” 透露了眉目:假设分片上的买卖,其执行复杂性能够被化约到与区块头验证同样的难度,则分片化执行的架构,可以使整个系统的处置能力,随着介入节点处置能力的线性提高而呈平方级提高。通俗来说,若是介入网络的节点(平均而言)在一段时间内能验证 4 个区块头,这就意味着,在介入一个分片时,节点们可以在一致时间内验证 4 笔买卖,此时系统总处置量是 4 条分片 × 4 笔买卖/分片 = 16 笔买卖;若是节点的处置能力酿成了 8(2 倍),则处置量会酿成 64 笔买卖(4 倍)。


听起来很美妙,然则,这个“平方级扩展” 的论证中包罗了如下假设:


(1)存在一种手艺,使得分片买卖的验证,可以简化到与验证区块头同样的难度;


(2)不存在跨分片的买卖,即各分片内的买卖是完全不会相互依赖的。跨分片的买卖需要占用多个分片的处置容量,也要占有信标链的处置容量,会使可扩展性大打折扣。


关于(1),这个假设是有可能获得知足的,无状态性(statelessness)就是这样的一种手艺,它的思绪是,在流传买卖(或者流传区块时),附带买卖所接见状态的证实(witness),使得买卖的验证者无需持有买卖执行之时的状态数据,就能验证买卖的有效性。这一点极为要害,若是没有无状态性,介入分片验证的验证者就必须保留分片的状态,由于验证者会被不停分配到差其余分片链上,那就意味着他们必须保留所有分片的状态,在实践中也就意味着他们要不停下载所有分片的区块并处置买卖,从而使整个系统坍缩为一个大区块系统(例:投入能处置 16 笔买卖的资源,处置 16 笔买卖)。遗憾的是,至今,以太坊 1.0 也没有研究出足够轻量的无状态方式。


关于(2),那就没有什么好说的了。若是不能实现跨分片买卖,分片化执行的系统就没什么意义,由于各分片各自为政。必须使得 ETH 有设施存在于各个分片上,这个系统才气仍然以 ETH 为主体。而直到今天为止,还没有泛起一种跨分片买卖方案,能够不增添信标链的处置量。原理也很简单,对于随便 A 分片来说,由于并行处置,随便  B 分片上正在发生什么买卖,需不需要改写本分片的状态,是不能知的,因此必须存在一个通讯层,可信地证实 B 分片上发生了一笔试图改写 A 分片状态的买卖。而一旦需要让信标链具备处置买卖的功效,平方级扩展的效果就会被打破。(顺带说一句,知足了这一可信通讯层的需要的链,就酿成了事实上的 Layer-1,而其它分片则酿成了事实上的 Layer-2,像极了 “Layer-1 + Layer-2”。)


除了存疑的可扩展性,分片化执行还带来了许多经济上的有趣问题。例如,若是跨分片买卖的处置时间跨越一笔分片内买卖的处置时间(这是一定的),这就意味着,差别分片上的 ETH 价值也不会相同。就好像美国海内的 1 美元,与美国外洋的 1 美元,现实上并不是同一种器械。岂论有多少个分片,都至少会有两种 ETH 价钱,一种,是谁人金融应用最茂盛的分片(也就是 Eth1 分片)上的 ETH 的价钱;另一种是其它分片上的 ETH 的价钱;后者必须支付一定的手续费并支出一定的时间,才气换成前者,因此对前者肯定有一些折价。同理,纵然每个分片上都有 uniswap,差别分片上市场的买卖滑点也肯定不相同,最终人人都市搜集到一个分片上,由于人人都在一起的时刻,流动性最充沛,资金效率最高。某种程度上,可以以为跨分片买卖的需要是很少的 —— 但这也意味着,其它分片上闲置的买卖处置容量,也基本没有意义。


分片化执行系统的手艺难点,此处不再赘述,感兴趣者可以自己想想分片化执行系统怎么支付手续费的问题。但我在这里想说的是,分片化执行系统的设计理念违反了人人的现实需要,也违反了事物的生长规律。全局状态(可组合性),并不是一个问题,而正是人人需要的器械;正是由于以太坊使得所有金融应用都能瞬间组合,缔造了一个价值可以零摩擦流通的空间,以太坊才有了变化天下的潜力;在协议层为价值流通缔造摩擦,是自废武功。有了一个优越的基础层时刻,应该想设施维护这个基础层,剩下的事情让用户自己选择,让生态自己演化 —— 不要以为设计能设计出一个生态,过分设计只是给所有人强加成本。


分片化执行(Phase 2)的弃捐,侧面印证了其中的难度 —— 在可预见的未来,这条门路无法发生令我们满足的功效。尽管如此,我并不以为 Eth2.0 的研究员们已经完全放弃了三阶段门路图,Vitalik 也还强调,调换后的门路图,跟 Phase 2 也是完全兼容的,只是 Phase 2 不再具有优先级。


然则现实上,放弃分片化执行,才是以太坊应该选择的门路。


可执行信标链门路图


以太坊 2.0 的新门路图中,最令人瞩目的一点是:信标链区块将包罗合并后的 Eth1 分片的买卖,也即信标链具备了执行功效。其它分片仅具有保留数据的功效。


现实上,新门路图中 “数据分片” 的定位是 “供 rollup 使用的数据可得性(data availability)层”。


没了执行化分片,平方级扩展就无从谈起了。那么,这种 “PoS Layer-1 + rollup + rollup 数据不占有主链区块空间” 架构的可扩展性若何呢?


要解答这个问题,我们先来看看 rollup 方案与主链的交互模式。


首先,你可以把一个 rollup 系统理解为一个无状态的合约,这个合约的内部状态(哪个用户有多少钱),对外是不能见的;然则,该合约内发生的所有买卖,其数据会定期公然出来,公布到主链上,使得任一第三方,获得这些数据后,都可以重修出该合约的内部状态。


使用有效性证实的 rollup (例如 zkRollup)的特点是:该合约每次公然买卖数据时,都附带一个这些买卖已被准确执行、因此新的状态根应是 XXX 的 “盘算完整性证实”;若是该证实能通过合约的验证,则该合约更新状态根;若是该证实不能通过验证,则该合约拒绝更新。


使用错误性证实的 rollup(例如 Optimistic Rollup)的方案则相反:任一人每次为合约公然买卖数据时,都必须存入一笔押金,并断言合约的新状态根是 YYY;今后一段时间内,随便其他人都能存入押金、发出错误性证实来挑战该断言;错误性证实即证实该批买卖有瑕疵,或者买卖处置后的新状态根不是 YYY;若是挑战乐成,则公布错误断言的人会损失押金;若是一段时间内无人挑战,则合约更新状态根为 YYY。


这两种方案,都必须在链上公布数据,因此会占用链上空间;而且,链上空间的巨细,决议了 rollup 系统在单元时间内的处置量(即 TPS)。想得更深一些,若是这些买卖数据,能够公布在一个数据量的约束更小的地方,或者说,不去占用 Layer-1 区块的空间,则其处置量,能发生倍加的效果。若是这样的西方有许多,那还可以发生倍乘的效果。


这就是 “数据分片” 及 “以 rollup 为中央的门路图” 的理念:让 rollup 方案把买卖数据都放到分片区块中,分片有多少个,处置量就能提升多少倍;当前的以太坊区块数据量大概是 20~30 KB,这个数据量显然是平安的,则,若是我们有 64 条分片,我们每 15 秒就能提供 64*30 = 1920 KB = 1.9 MB 的数据量。而且,使用端我提供了这么大的数据吞吐量,但它不会成为全节点的肩负,由于这些数据你想下载就下载,不想下载就可以不下载(也就是 “分片” 的寄义),人人你下载一点,我下载一点,节点的肩负照样很轻的 —— 横竖,验证这些 rollup 合约的状态,并不要求我拥有该 rollup 的所有历史买卖数据。以太坊的状态仍然是平安的。


听起来很合理,但照样那句话,太乐观了,太多假设了:


(1)这种 “想下载就下载,不想下载就不下载” 的方式,在 zk rollup 上基本行不通:当 zk rollup 要更新状态根时,zk rollup 合约更新操作的验证者(也即 Layer-1 的全节点)在接受证实时也必须获得与该证实对应的买卖数据,否则就无法通过验证。(不需要提供买卖数据,仅验证证实就推进合约状态根的方案也有,叫 Validium,那不是 rollup)。也就是说,若是仅思量 zk rollup,那么 “数据分片” 的方式,从带宽上来说,与大区块没有任何划分。不管这些数据一最先被发到了谁手上、存到了那里,全节点都要下载它们。


(2)对 optimistic rollup 来说,若是你愿意接纳更乐观一点的假设,固然可以,你可以平时完全不下载买卖数据,仅保留获得终局性的最新状态根,仅在发生争议时,再下载相关的买卖数据,从全节点的角度看,并没有因此损失对合约状态的验证能力;然则从用户的角度看,事情就完全差别了:你最先不确定自己到底是不是随时能够重构自己的状态,来完成取款。也就是说,用户将不能确定自己用的到底是 optimistic rollup,照样 plasma。原本,optimistic rollup 的方案就是保证了所有全节点都有历史买卖的备份,以是用户可以容易地重修自己的状态,并提交状态证实(或断言)完成取款;但若是这一点保证失去了,你就不确定自己能不能重修状态了。optimistic rollup 的平安性也会受到影响:它的平安假设是,获得了买卖数据的人之中至少有 1 个是遵守协议的;在数据分片模式下,你并不知道,有多少人会去请求这部门买卖数据。


总而言之,“数据分片”模式搭配 zk rollup 时,在带宽的意义上,无法提供更大的可扩展性,而与扩大区块空间的效果相同;在搭配 optimistic rollup 时,相对于大区块,其可扩展性优势与挑战发生的频率成反比;更严重的是,它使 optimistic rollup 有退化为 plasma 的风险(从界说上来说,也不存在 optimistic rollup 了,应该用另一个名字来指称这种介于  optimistic rollup 和 plasma 之间的器械)。


结论


Rollup 方案其实是从 Layer-2 生长历程中吸取了血淋淋的教训而飞出来的凤凰。它最大的特点在于,给用户的资金平安提供了充实的珍爱。由于随便获得了买卖数据的人都可以重修状态,而区块链保证了这些买卖数据的永续数据可得性,rollup 方案得以提供 layer-2 方案中压倒一切的用户珍爱。只有这样的方案,用户才敢真的去使用。舍弃了这种利益,按最大化性能的乐观假设来设计系统,只能设计出用户不敢去用的器械。


只要你意识到,rollup 本质上是一种合约的设计模式,“PoS + 数据分片 + rollup 可以提供更大吞吐量” 的迷思便可一眼洞穿 —— rollup 不管在哪个共识中,都可以提供同样的可扩展性,数据分片能提供更多,只是由于引入了其余平安假设,使 rollup 牺牲平安性来换取吞吐量而已 —— 问题在于,这样的合约,比 rollup 的平安性更弱、可扩展性更强的合约,不是没泛起过,不是在 pow 链上就设计不出来,而是设计出来了也没人用而已。


自 2017 年以来,以太坊社区就为着现实的需要艰难地探索平安的可扩展性方案。许多人可能都信赖过,“PoS + 分片” 能提供壮大的可扩展性,但那是 “分片化执行系统”,有自身的一堆问题。眼前的 “可执行信标链门路”,也不过是牺牲合约自己的属性来换吞吐量而已。时至今日,已经找不到证据,证实为了可扩展性,以太坊应该拥抱 PoS。


归根结底,只有契合用户需要的性能提升,才是真正有意义的性能提升。若是不从用户的现实需要出发,相反,从手艺美感或者最大化性能的假设出发,只能设计出扑朔迷离。若是可以,那就让用户自己来做决议,在协议层费心太多,往往徒增摩擦。


以太坊的门路图应该改变吗?固然,由于没有什么利益,大到值得我们负担改变底层这么大的风险。

加入新手交流群:每天早盘分析、币种行情分析

添加助理微信,一对一专业指导:chengqing930520

上一篇:剖析:以太坊价钱飙升至547美元后,有可能继续保持抛物线式上涨趋势
下一篇: SEC主席换人,以太坊2.0即将上线,会重新认定以太坊是证券吗?

加入新手交流群:每天早盘分析、币种行情分析,添加助理微信

一对一专业指导:chengqing930520

最新资讯
提供比特币数字货币以太坊eth,莱特币ltc,EOS今日价格、走势、行情、资讯、OKEX、币安、火币网、中币、比特儿、比特币交易平台网站。

2021 数字货币 网站地图

查看更多:

为您推荐