注册
关闭
区块链大帝

区块链大帝

发布于 2020-06-17 阅读数 3588

超越白皮书:你需要知道关于 ETH2.0 的几个事实

撰文:袁煜明、马天元、卢军

来源:火币区块链研究院

 

万众期待的 ETH2.0 升级终于要迎来它的第一个里程碑,预计在今年第三季度,ETH2.0 阶段 0 信标链有望上线。这次升级的整体构想之宏伟,调整范围之广泛,使得它不同于过往的历次「补丁式」硬分叉升级,而是一次「重铸式」的新链升级。换言之,这类似于社区拥有了一条名为以太坊的新的区块链。

ETH2.0 技术层面最重要的三个升级分别为 Casper 共识、分片和 eWASM 虚拟机,它可以让以太坊网络以较低代价,获得很高的性能和可扩展性。基于正确技术路线以及 Vitalik 与众多核心开发者的工作,ETH2.0 得到了社区空前的关注和支持。当然,ETH2.0 也存在一些令人担忧的问题,例如它的开发进度仍然不够快。今年上线的阶段 0 信标链,仅支持 Staking,而不支持转账和智能合约,暂时无法投入使用,完整版 ETH2.0 可能要等到 2022 年。

本报告包括三个主要部分,第一部分就 Token 机制(Casper 共识、新 Token BETH)和技术原理(分片、eWASM 虚拟机)对 ETH2.0 进行了全方位剖析解读。整体而言,为了降低升级难度和阻力并最大程度保留 ETH1.0,ETH2.0 在技术理念上作了一些妥协。例如,ETH2.0 最终采用 Vitalik 的 Casper FFG 思路而未采用 CBC 思路,将原定 1024 分片降低为 64 分片等。另外值得关注的是,在 ETH1.0 与 ETH2.0 合并之前,ETH2.0 会采用过渡性质的新 Token BETH,它由 ETH 单向 1:1 不可逆转换生成。

第二部分介绍了 ETH2.0 升级目前的大体时间规划(阶段 0~阶段 2)。阶段 0 信标链将率先支持 Staking 功能。目前来说,其多条测试网(如 Tapoz、Schlesi、Witti 等)相继上线,暴露出了多客户端测试网的一些问题,因此预计时间可能要推迟到今年 Q3 或 Q4;阶段 1 分片预计上线时间在 2021 年,上线后只能试运行,仍不支持转账和智能合约;而阶段 2 的新虚拟机 eWASM 和与之配套的智能合约、跨分片转账,则可能要在 2022 年才能姗姗上线。

第三部分推演了 ETH2.0 升级前后的变化。ETH 老链不会直接被「难度炸弹」逼停,而将存在 3-5 年,并且有可能被改造为 ETH2.0 框架下的一条分片链而长期存在。考虑到新链对性能提升巨大,且由 Vitalik 主导,顺应社区意愿,因此目前社区大幅分裂的可能性较小。另外,可以认为,ETH2.0 完整版升级将会带来公有链、DApp、DeFi 的全方位洗牌,甚至允许一些国民级项目被搬上 ETH,这将对整个行业产生深刻影响。但是仅就今年的阶段 0 来说,它仅能进行 Staking,除了提高社区关注度之外,暂时难以给行业带来更加深刻的影响。


ETH2.0 概述

ETH2.0 的背景和意义

ETH2.0 被视为构建新一代以太坊区块链网络,而非只是现有以太坊网络的升级,ETH2.0 的重要目标是完成主网共识机制从 PoW 到 PoS 转换,应用分片技术大幅提高区块链网络性能,以及采用更先进的虚拟机提高智能合约执行速度。

Vitalik Buterin 从 2015 年便开始研究以太坊切换到 PoS 网络,并在 2018 年 Devcon 4 大会演讲中正式提出 2.0 计划。完成这一计划并非一蹴而就,ETH 主网之前已经完成 Frontier、Homesead、Metropolis Byzantium、Metropolis Constaninople 等重要硬分叉阶段,为最终 Serenity 阶段的 PoS 网络做准备。

ETH 已经成为世界级的区块链平台,它实现了第一个支持可编程智能合约的区块链底层架构,然而 ETH 还有很多问题需要解决,比如性能、扩展性以及隐私保护等问题,尤其是随着 ETH 的生态发展,以及更多 DApp 应用在平台上部署智能合约,底层 PoW 共识的低效问题凸显,严重的网络拥塞和交易确认延迟极大地影响了平台用户体验。

从最初设计理念看,ETH 的 Ethash PoW 挖矿算法确实可以安全保证区块数据的权威性和不可篡改性,但也牺牲了网络的交易吞吐量和扩展性,任何一笔交易都需要所有节点耗费算力资源进行哈希运算,这是所有以 PoW 为共识机制的区块链项目的「通病」。基于 PoW 共识,ETH 主链目前交易处理速度 TPS 还在 15-20 之间,而竞争对手大多数均放弃 PoW 机制转向其他共识算法,性能方面早已超过 ETH。除此之外,由于 Gas 机制的存在,当全网交易量膨胀时很容易造成高额手续费,用户、DApp 应用必须支付较高的 Gas 费用后,才有可能被矿工快速打包进区块,对于交易频率要求较高的场景 DApp 应用来说,它们可能因为需要面临较高的 Gas 成本费用而切换到别的底层公链,ETH 的优势将被竞争对手削弱。

在这种背景下,Vitalik 和 ETH 技术社区一直致力于寻找新的解决方案来突破以太坊的「瓶颈」,实现 ETH 作为高性能分布式「世界计算机」的目标,以支持未来更多商业化应用场景,ETH2.0 也可以视为是以太坊社区为达成这一愿景目标而新设的开源项目,其主要意义将是构建一个新的以太坊区块链平台全面替代现有以太坊,和现有的以太坊区块链相比 ETH2.0 增加了新的技术架构方面的设计,可以说最终 ETH2.0 完全成型后将成为一个新的以太坊公链平台。对于 ETH 本身,完成 ETH2.0 的目标也意味着以太坊成为支撑未来大规模商业应用场景的分布式通用计算平台的开端。

这里我们纠正一个常见的误区,ETH2.0 升级并不是一次简单的硬分叉升级。在 ETH 过去的历次硬分叉升级中,老链停止,新链运行。但是 ETH2.0 中,以太坊基金会认为老链即 PoW 链将和 PoS 链共存至少 3-5 年。因此,在两链共存的阶段,ETH2.0 上会有一个新的原生 Token 名为「BETH」,它由 PoW 链上的 ETH 销毁后迁移过来,这个迁移过程是陆续的、社区自发的且不可逆的。

此外,ETH2.0 采用了多种技术方案的创新,目前比较确定的包括 Casper 共识、分片技术和新的虚拟机 eWASM,未来还可能包含其他技术。ETH2.0 实际上是一个长周期的开发工程,不断有新的技术提案将被加入到 ETH2.0 开发计划中。

在设计理念方面,ETH2.0 是一个非常伟大的构想。我们认为,它的技术路线是没有问题的。在保持分布式的前提下,它选择尽量安全地去提高性能,这将满足更多应用的使用。和目前 ETH 的单链结构比较,ETH2.0 特点是采用了「分层」和「分片」的设计思想,现有 ETH 因为是单条主链处理网络所有的交易信息,所有参与网络的节点按顺序处理交易(包括智能合约里面的交易),处理顺序完全按照区块打包后进行串行处理,最终节点达成一致性共识但过程效率较低。从 ETH2.0 开始以太坊将建立三层网络结构,如图 1 所示,包括现有的 PoW 主链、信标链(Beacon Chain)和分片链(Sharding Chain)。

超越白皮书:你需要知道关于 ETH2.0 的几个事实

图 1 ETH2.0 架构图来源:What you can do for Ethereum 2.0 a.k.a. sharding[1]

信标连网络

为了帮助理解 ETH2.0 的整体框架,我们可以使用一个比喻,如图 2 所示:

ETH2.0:一个处理各类货物的港口; 信标链:港口灯塔,所有货轮都需要接受指挥和调度; 分片链:众多货轮,负责实际货物的运输工作。

超越白皮书:你需要知道关于 ETH2.0 的几个事实

图 2 关于信标链和分片链的比喻,来源:火币研究院

信标的英文是 Beacon,本意即信灯塔、灯标。ETH2.0 的重要目的之一就是对 ETH1.0 进行扩容,大幅提高处理交易和合约的吞吐量,于是开发者设计 64 条分片链来并行地处理链上事务。然而,分片链相对独立,分片链之间如果相互进行交流会大幅提升网络复杂度,不利于提高效率。于是信标链就为此诞生,它像灯塔一样,总体调度指挥众多分片链达成共识,进行跨链沟通。信标链作为「灯塔」,它并不直接处理用户的转账、智能合约事务。各个分片链则像每艘独的货轮一样,接受「灯塔」信标链的指挥,他们是负责实际处理各类交易的。同时,每个分片链通常只处理本分片内的事务,但是当「货轮」们需要其他「货轮」协作时,也需要「灯塔」从中协调。

那么,信标链网络如何实现对其他分片链的指挥作用呢?在信标链网络,验证委员会成员将基于 PoS 共识机制,对信标链上不同分片网络中交易区块的状态结果最终一致性进行投票。

通俗来说,信标链网络包含了上万个节点。当这些节点抵押 32 枚以太坊(BETH)后,他们就可以成为「验证者(validator)」。这些验证者们会组成一个个委员会。每个委员会中包含随机选出的 128 个节点,随后各个委员会中的节点们,将完成信标链、各条分片链的共识和验证过程,确保整个网络始终保持一致性。

每一条分片链具体负责处理网络中不同的交易,ETH2.0 分片链各自独立,通过信标链获得区块链网络中所有交易事务的最终确认全局状态。信标链将协调不同分片链之间的状态通信问题,基本原理是通过随机算法(VDF+RANDAO)选举验证者组成验证委员。

这种随机算法的随机性非常好,而且极难进行预测 2。通过随机算法,信标链每隔一个周期 Epoch (约 6.4min)随机选出新的验证委员会处理指定分片的交易校验,每个 Epoch 由 32 个 slots 组成,每个 slot 一共 12 秒,12 秒是信标链和每个分片链中单个区块的生产时间。为每个 slot 提议区块的节点(提议者)和为每个区块验证投票的节点(验证者)都会获得奖励,而没有履行职责的节点则会被罚款。

今年即将上线的阶段 0 正是信标链,它允许节点抵押以太坊(BETH)成为验证者,但是由于分片、eWASM 未上线,因此这些验证者们无法执行转账交易,但是仍能获取以太坊(BETH)奖励,也就是我们通常所说的「Staking」。

BETH

细心的读者可能已经注意,在 1.2 小节我们提到抵押时,以太坊的后面备注了「BETH」。那么 BETH 是什么呢?我们前文提到,ETH2.0 更像是一条重铸后的「新链」,将与 ETH1.0 共存相当长的一段时间。那么 ETH2.0 这条「新链」之上,也将有新的 Token,这个 Token 就是 BETH。换言之,在 ETH2.0 和 ETH1.0 完全合并之前,网络中将会长期存在两种以太坊 Token:ETH 和 BETH。

根据社区的规划,BETH 的生成是单向的。如图 3 所示,使用者(包括验证节点在内)需要把 ETH 锁到合约里以注册信标链的公钥地址,ETH2.0 链会承认合约内注册的公钥,锚定主链的以太坊资产(ETH)将被燃烧,并生成信标链网络上的以太坊资产(BETH)。

需要注意的是,目前来看,在两条链合并之前,用户再将 ETH2.0 信标链上的 BETH 迁移到 ETH 1.0 链是不可能的。此外,在 ETH2.0 支持跨分片交易之前,BETH 无法转账,它将成为验证者和用户不可转移的资产。

超越白皮书:你需要知道关于 ETH2.0 的几个事实

图 3 :BETH 的单向兑换过程,来源:火币研究院

这也是它和过去硬分叉升级不同的一点,ETH 需要通过智能合约「手动」销毁掉旧 Token,并在 ETH2.0 上生成新的 Token「BETH」,迁移过程是长期的且不可逆的。而过去的硬分叉升级,两种 Token 都是自动、瞬间完成迁移的。

其中,两种 Token ETH 和 BETH 在链上最大的不同,在于 BETH 可以参与 Casper 共识进行挖矿,每年可能获得 10% 左右 BETH Staking 奖励(具体数值和网络抵押总量和通胀比例有关),但暂时无法链上转账;而 ETH Token 仍然可以正常使用,但无法获得任何 Staking 奖励。当然,ETH2.0 一个核心理念就是,希望降低门槛,让更多人能够参与到 Staking 中,例如一台家用笔记本电脑也能够搭建节点。因此,参加信标链 Staking 的用户数量相比其他区块链项目可能会更高。

此外,按照目前社区的规划,ETH1.0 和 ETH2.0 很有可能进行合并,融为一体。一旦两条链合并,ETH 和 BETH 也将会合为一体,即整个网络中仍然只有 ETH 一种 Token。在 Vitalik 于 2019 年 10 月公布的迁移方案中已经明确指出,整个迁移合并过程中会非常重视「用户体验」[3]。因此,如果某个 ETH 持有者无意参与 BETH Staking,那么他可以直接等待 2 年后的合并而无需再进行手动迁移,对于自动合并过程甚至有可能没有感知。

概括一下,BETH 是一个过渡时期性质的特殊 Token,是一个阶段性产物。但是考虑到两者采用单向兑换方案,在很长的过渡期间(阶段 0~阶段 2,约 2 年)内,两者存在无法收敛的可能,所以两者在过渡期间是两项不同的 Token。

Casper 共识机制

ETH2.0 信标链 (Beacon chain) 采用 Casper 共识机制,Casper 属于权益证明制(PoS)范畴,除了继承 PoS 机制低能耗、防 51% 攻击更安全的优势外,还在现有 PoS 机制上增加经济惩罚机制,解决 PoS 机制本身存在的「无利害攻击」问题。

「无利害攻击」是 PoS 系统的一个经典攻击问题。PoS 系统节点持有权益证明(即按币的数量)就可以参与挖矿,权益占比越大负责出块的概率也越大,由于 PoS 不需要额外付出挖矿的算力成本,挖矿边际成本为 0,区块链网络产生分叉的可能性更高。PoS 验证者可以选择同时在两条链上进行「投票」,不论最后哪条链成为「最长链」胜出,验证节点都可以获得区块奖励。这和 PoW 链不同,如图 4 所示,PoW 链不会发生这种现象,因为算力只有一份,而 Token 同时存在在两条链上。随着时间推移,这种无成本为多条链出块的投票行为会助长更多的网络安全攻击行为,损伤区块链网络本身的安全性。

超越白皮书:你需要知道关于 ETH2.0 的几个事实图 4:「无利害攻击」示意图,来源:火币研究院

Casper 通过设置惩罚经济模型来解决 PoS 的无成本攻击问题,确保网络可以正常运转。它的主要机制包括:

1)验证节点需要预先在链上抵押锁定一定数量的以太坊(BETH)作为保证金。

2)验证节点每一轮需要对区块进行「下注」,验证节点需要评估其他节点会「下注」哪个块胜出,同时也「下注」这个块。如果支持正确的链就可以拿回保证金外加区块奖励及区块内的交易 Gas 费;如果下注没有迅速达成一致,就只能拿回保证金。如果验证节点明显地改变下注,进行「投机下注」,比如先投某个块有很高概率胜出,再投另外一个块,将被信标链严惩 , 最坏结果就是没收全部保证金,并从验证节点委员会中剔除,同时验证节点也可以监督其他节点的投注并举报此类投机行为。由于可能造成的经济损失,验证节点会选择对自己最有利的结果进行投注,当全网验证节点数量足够多时,投注机制确保最后的结果分布趋向于收敛,即大多数验证节点都选择的某个高概率胜出的区块作为最终一致性结果。

3) Casper 验证节点委员会随机选举验证节点,每隔一个周期进行一次轮换选举,随机指派验证节点负责指定分片内的校验区块出块,确保分片内的验证节点不形成「合谋」,降低网络安全性。

Casper PoS 的基本思路是正向奖励诚信、负向惩罚作恶,所以对于验证节点设置非常多的惩罚规则来防止分叉,对于不尽责的验证节点,也存在惩罚保证金的风险。成为 Casper 验证节点需要在 ETH PoW 主链上注册的验证管理器合约上至少质押 32 个 BETH 才能运行信标链节点客户端软件。

考虑前期 ETH 矿工从 PoW 节点转为 PoS 验证节点参与度可能低于预期,Vitalik 主导了 Casper FFG 这个 PoW/PoS 混合挖矿方案,在现有以太坊 PoW 协议上叠加一层 PoS 协议,在 PoS 协议正式稳定前维持 PoW 挖矿不变,但每通过 PoW 挖矿产生 50 个区块触发一次 PoS 节点区块验证,这样做方便让社区一部分用户可以先参与新 PoS 链的测试,直到社区顺利过渡到纯 PoS 主网。

Casper 还有一个纯 PoS 的竞争版本实现 Casper CBC, 由 Vlad Zamfir 主导,和 FFG 采用的混合共识不同,CBC 从一开始就完全定义成 PoS 链,理论创新较多,实际部署难度高于 FFG,可能 ETH2.0 不会直接采用。CBC 和 FFG 的目标是一致的,即提高整个区块链系统共识的安全性。技术思想方面,CBC 更倾向通过新的共识改进 BFT(拜占庭容错协议) 不超过三分之一作恶节点数量的限制,容错率降到 1/4。Vitalik Butterin 主导的 FFG 更倾向如何将现有的 BFT1/3 容错协议更好地运用在信标链上。目前来看,Vitalik 主导的 FFG 路线获得了胜出。

分片技术

分片技术(sharding)其实来源于一种传统概念扩容技术,它指将数据库分成若干片段,以增加处理效率。在区块链中,它指将区块链网络分成多个碎片,每个碎片中包含一定的节点,由这些节点分别处理每个碎片中的事务,以提高区块链整体的性能。

以太坊受制于原有框架,长期以来难以通过 Layer1 层扩容提升性能。在火币研究院过去的报告《【火币区块链产业专题报告】区块链技术可扩展方案分层模型》中,我们曾经专门探讨过此问题 [4]。

因此,在 ETH2.0 升级中,以太坊将通过分片技术提高系统并发交易处理吞吐量水平。它将网络划分为 64 个分片(旧方案中曾预计采用 1024 个分片),每个分片处理网络中不同的交易,并处于独立的账户空间。

每个分片内的交易结果将由信标链网络上的验证节点委员会指定的验证节点负责验证,验证节点不需要验证分片外的交易,分片每隔一段时间(即时隙 Slot,12s)由验证节点产生一个校对区块 , 校对区块包含分片内的状态和交易内容,提供可验证信息(如 Merkle 根)。这也意味着,每过 12 秒整个网络中就产生 64 个分片链区块,再加 1 个信标链区块。

随后,通过交联(crosslink)过程,信标链可以引用不同分片链的内容和状态,获得该分片网络的真实性证明,而不需要去验证分片内每一笔交易,最终信标链验证委员会通过 Casper 机制对信标链内所有分片链进行校对,随后区块结果获得最终确定性,分片也将通过交联获得信标链对引用的分片区块完成最终确认的状态结果。

如图 5 所示,ETH2.0 将网络分成两部分,左边 L1 代表信标链网络,右边 L2 代表分片网络,分片之间空间各自独立,不同的分片由验证节点组成的验证委员会维护,相当于也是多条独立的区块链。信标链通过交联(crosslink)收集分片内的交易真实性证明摘要(Merkle 根),ETH2.0 分片技术第一阶段就是建立信标链-分片的锚定模型,分片内交易结果的确认要等待信标链的区块结果确认,分片内不支持状态存储。

超越白皮书:你需要知道关于 ETH2.0 的几个事实图 5 信标链引用分片链交易真实性证明摘要示意图

总结一下,ETH2.0 分片技术的阶段 1 属于链上数据分片范畴,即只是将验证节点随机划分到不同的网络,处理不同的交易数据,分片未涉及处理状态的问题,ETH 通过信标链这个核心中枢来负责最终交易状态的共识验证并在区块确认后在各个分片进行同步,信标链同时协调跨分片的状态通信,信标链基于 Casper 共识来实现区块的更新 , 通过交联技术实现信标链和分片的状态通信。

EVM 2.0 虚拟机 eWASM

ETH2.0 的阶段 1「分片链」仍不支持智能合约,但是随着 ETH2.0 新虚拟机 eWASM 的推出,这一情况将被改变。新虚拟机推出后,分片链将可以执行智能合约,每个分片链管理一个 eWASM,包括账户、合约代码、状态、收据、其他抽象等等,这些 ETH1.0 拥有的概念将迁移至分片链。这将发生在信标链和分片网络稳定运行之后,分片内增加对智能合约的支持会增加状态存储的开销,以及分片之间跨分片(状态)通信的复杂性。eWASM 将应对分片内运行智能合约的挑战,这是可预见的趋势,分片内支持状态操作才能明显提高 ETH 扩容后的交易性能。

eWASM 是针对以太坊 EVM 推出的 WebAssembly 子集,EVM 最初设计过程强调简单和安全,以保证智能合约运行结果的无歧义和正确性,所以 EVM 不支持数据类型方面精确度不确定的浮点计算。同时 EVM 只支持处理通用区块 32 位 8 字节数据,不支持 64 位。EVM 本身支持的操作码也较少,只能支持有限的几种编程语言进行智能合约开发比如 Solidity/Vyper,并不支持 C/C++/Rust 硬件及系统级别语言开发,Solidity 本身语言在内存泄露、执行速度方面存在很多改进的地方。

WebAssembly(简称 WASM) 的设计目标是性能和效率,是为 Web 开发构建的一个高效计算引擎(Web 虚拟机),体系架构设计接近传统计算机,支持接近硬件水平的指令,性能非常好,其支持计算机 CPU RSIC 指令集使得 Web 应用程序能利用本地计算机的硬件功能提高代码的执行速度,所以兼容多种编程语言,软件代码更加易于阅读和调试,包括 Google、Microsoft 等传统互联网公司以及 Polkadot、EOS、Cardano 等知名区块链项目都在陆续采用 WASM。

eWASM 是以太坊上的 WASM, 向后兼容目前的 EVM,不支持浮点数操作,其相比 EVM 最明显的优势是代码执行的速度和效率上的大幅提升,执行速度提升意味着区块每秒可以处理的交易数量 TPS (吞吐量)提升,eWASM 也支持更多的编程语言种类进行智能合约开发,这些编程语言相比 Solidity 具有更广泛的社区开发支持资源,包括编译工具、开发人员。

eWASM 还有一个「优化」的地方是用 eWASM 智能合约替代预编译,预编译是 EVM 字节码的特殊位,通常代表某些通用的特定操作比如签名和哈希计算,EVM 评估预编码字节代替评估合约地址内的整段代码,可以减少执行代码的 Gas 费用,如果不通过预编译,EVM 将评估智能合约地址整段代码,效率非常低,同时很多复杂的密码计算将导致很高的 Gas 成本,有可能超过区块的限制而导致交易无法处理。

但是预编译存在一个缺点就是要如果加入新的操作字节码进行预编译,通常需要网络发生硬分叉,硬分叉因为有争议而较难实现。eWASM 可以消除大多数当前的预编译,并用 eWASM 合约替换,这些智能合约可以通过重写和重新部署,而无需使用硬分叉,来增加更多新的通用操作,这使得 eWASM 比 EVM 更具优势。两代虚拟机的一些区别如表 1 所示。

超越白皮书:你需要知道关于 ETH2.0 的几个事实

表 1EVM 和 eWASM 的区别,来源:火币研究院

其他

ETH2.0 中还有一些其他值得关注的技术,例如状态租金、跨分片合约交易等。

状态租金

不同的分片运行智能合约后,将导致 ETH 系统存储膨胀,包括合约代码、数据和状态,以太坊核心开发者提出状态租金建议,即采取有偿存储合约代码、数据和状态,而不是永久保存。应用层合约开发者和用户需要为 eWASM 存储付费,未使用的信息随着时间推移将被系统清除,状态租金具体经济模型还在讨论设计中,状态租金可以防止垃圾交易信息填满 ETH 的整个状态空间,提高系统运行效率。

无状态

这个思路和状态租金相对应,同样都是因为状态的数据过多,给以太坊的使用带来极大不便。我们以 2020 年 6 月 7 日 23:00 GMT+8 的数据为例,截至此刻,正常以太坊全节点为 400GB 左右,但是如果是存储了所有历史状态的全节点,则要 4000GB 左右。因此,有开发者提出让 ETH2.0 和 Eth1.0 向「无状态」的目标发展,允许轻客户端以无状态存在,使其能够验证所有交易以及状态的所有部分,而无需实际存储任何状态。这也是目前社区所推崇的 ETH1.0 融合进 ETH2.0 框架的必要中间步骤。

跨分片合约交易(火车与旅馆问题)

跨分片交易问题可以用火车和旅馆问题来比喻。比如你去另外一个城市旅游,要定火车票,还要定旅馆。如果订了火车票但是没订到旅馆,比较麻烦;倘若旅馆订到了火车票又没订到也很麻烦。要么都订到,要么都没订到,否则都会破坏去城市旅游的最佳状态。火车和旅馆问题产生的原因,就是交易分裂到多个共识周期。

ETH2.0 智能合约运行在各自的分片内,分片 B 上的智能合约不存储分片 A 上的 Token 余额信息。分片合约状态信息都是私有不共享的前提下,如何在两个分片之间进行 Token 转移,正是这个课题要解决的问题。

该模型非常简单,就是在分片 A 和 B 都部署一个相同的 ERC-20 智能合约,假设 Token 符号为 CCT(Cross Chain Token), 合约内部添加两个函数功能:migrateSend 和 migrateReceive,migrateSend 主要销毁 Token 并生成收据,收据包括销毁的 CCT 数量和接收的分片索引,migrateReceive 函数负责验证收据并生成相同数量的 CCT,整个过程至少需要两个跨分片通信的最终确认,具体流程示意图 6 如下:

超越白皮书:你需要知道关于 ETH2.0 的几个事实图 6 ETH2.0 跨分片状态通信示意图

ETH2.0 时间表

ETH2.0 规划路线从 2019 年开始,但因为 Casper 共识本身的稳定性问题,开发进度被放缓,当前阶段是实现信标链这个枢纽网络,测试网络已经上线,大概率在 2020 年 Q3-Q4 完成,ETH2.0 整体规划为重要的三阶段:信标链、分片、eWASM,后续的持续创新方向还在动态制定中。

超越白皮书:你需要知道关于 ETH2.0 的几个事实图 7 ETH2.0 路线图,来源:火币研究院

ETH2.0 升级详细规划

阶段 0:信标链 (Beacon Chain) 2020 Q3~Q4

Serenity 第 0 阶段将推出信标链 (Beacon Chain)。信标链基于 PoS,这一阶段信标链 PoS 锚定当前 PoW 主链,在主链上注册验证者管理合约,管理验证节点的保证金质押、验证节点添加和选举,信标链网络阶段主要工作是上线 Casper PoS 共识。

关于开发进度,目前其第三方开发的单客户端测试网 Tapoz 已经上线,表现良好。但是就在 5 月下旬,多客户端测试网 Schlesi 因为 Checkpoint 相关 Bug,现在已经停止运行,并启动了另一个新的多客户端测试网 Witti。

以太坊本身是一个协议,理论上无论是哪种版本的客户端,针对同一个事务,都要能够产生同样的最终结果。以太坊社区一向强调多客户端的重要性,因为这样会带来更好的容错性。但是,问题也很明显,多客户端意味着开发难度几何倍数的提升。这也是为什么单客户端 Tapoz 运行顺利而多客户端 Schlesi 折戟沉沙。

关于阶段 0 上线的具体时间,此前 Vitalik 在此前共识大会上,被问到以太坊 2.0 是否在 2020 年 7 月上线时回答 Yes,但很快以太坊社区开发人员 Marco Levarato 指出,目前官方的多客户端测试网还未完全正式上线,如果上线的话,至少需要两个月时间测试网络问题。目前现在已经六月,因此我们最早见到信标链也要到 8 月份之后了。因此。对此,Vitalik Buterin 在推特上做出澄清致歉,自己在参加网络共识大会时没有听清问题,7 月仍然无法上线。

我们推测,阶段 0 在今年 Q3 末~Q4 初上线的可能性较大。需要注意的是,在阶段 0,ETH2.0 并未搭载分片技术和智能合约,因此不支持链上转账。

阶段 1:分片 (Shard Chains) 2021 年

在本阶段,网络中会有 64 个分片上线。每一个分片链的状态由信标链进行确认,验证者在主链合约上质押 32 个 ETH 之后将参与验证委员会的选举,保证至少由 128 名节点组成委员会并通过随机数分配到特定的分片链上进行验证工作,每隔一个周期进行轮换选举。信标链和分片链之间区块信息的交互(crosslink)技术也在阶段 1 处理。

这一阶段分片链主要做交易链测试,不支持全局交易状态处理(例如跨分片的转账),亦不支持账户、地址、收据、合约和其他抽象操作。换言之,阶段 1 以太坊仍然没有真正扩容。因此,我们推测 BETH 和 ERC-20 Token 的转账(无论是分片内还是分片间)大概率仍需等待阶段 2 才能使用。

根据整体时间安排,阶段 1 可能要到 2021 年才能上线。

阶段 2:eWASM 2022 年

在阶段 2,网络支持新虚拟机 eWASM 和与之匹配的新的智能合约,分片链将支持部署智能合约,其节点也将拥有账户和状态信息,并能进行跨分片链的状态通信(例如跨分片转账),这一阶段标志分片链真正实现以太坊网络扩容。

ETH2.0 分片链第二阶段将运行支持智能合约运行的新虚拟机环境 eWASM, 分片链的节点将存储账户、合约和状态信息,届时分片链也将完成从数据分片到状态分片的转变,此时以太坊才可以说是真正意义上实现了扩容,因为分片链前期阶段状态同步这一工作主要还是通过信标链网络这个中间层完成,分片链不具有处理状态的能力。

阶段 2 上线后,这条链才算是 ETH2.0 的完整版,它支持转账和智能合约。目前官方尚未官宣 2022 年 ETH2.0 一定会上线,但是 eWASM 和分片是多个团队并行开发的,因此社区普遍预估 ETH2.0 能够在 2022 年上线。

阶段 3:后续升级 2022 年后

ETH2.0 将进一步改进协议满足不断生态增长的需求,PoW 主链可能正式退出历史舞台,也可能被纳入到 ETH2.0 的大框架下作为一条「分片链」而长期存在,具体采用何种路线尚在讨论之中。这一阶段重要的技术升级包括支持分片轻客户端状态协议、跨分片的合约交易、更高阶的指数分片来进一步提高吞吐量。

  1. 分片轻客户端状态协议,减少分片节点携带状态数据的大小,但是不会完全消除这一部分数据存储。
  2. 跨分片链交易,分片链直接进行跨链交易。
  3. 高阶指数分片,分片链可以再进行分片,分片链各自成为分片的信标链。

ETH2.0 跳票的可能性

目前 ETH2.0 已经启动了信标链的测试工作(即 Tapoz 测试网),进展相对顺利。以太坊核心开发者 Drak 说,他有 95% 把握阶段 0 在 2020 年上线 [5]。种种迹象表明,今年完成阶段 0,Casper 信标链是大概率事件。我们预计在 Q3 末或者 Q4 初上线的可能性比较大。

但是阶段 1 分片的开发相对来说较为较难,尤其是对于 ETH 这样的分布式开发社区来说,积极估计需要 2021 年上线,但是坦率来讲,我们认为阶段 1 是存在跳票可能的,很有可能延迟到 2021 年 Q4 季度。

ETH2.0 行业影响分析预测

ETH2.0 升级后行业生态的演变

今年初版(阶段 0)上线

坦率来讲,今年内阶段 0 上线很难给行业带来「翻天覆地」般的影响,因为 ETH2.0 除了 Staking 之外,重要的功能例如分片转账、智能合约暂时都无法使用,而且也并不会给以太坊带来更好的性能和更低廉的费用。用一个比喻来说,此时的 ETH2.0,像一个可以看、可以摸,但是不可以用的「玩具」。

今年阶段 0 上线后,最大影响主要集中在:1.BETH 的诞生,为行业的 Staking 带来了新的产品;2. 宏伟的未来愿景+正确的技术路线,增加社区对以太坊的关注度。换言之,它带来的影响更多是在关注度层面上,而非功能层面。

未来完整版(阶段 0+阶段 1+阶段 2)上线

而完整版 ETH2.0 升级则不同,它注定关系到每一个业内从业者,它所设想的是一个全新的区块链系统,在性能和分布式方面能实现一个相当好的平衡。作为一种基础设施的升级,无论是 DeFi、支付还是账本记录,以太坊 2.0 都将很好的胜任。行业需要这样的新技术走向落地。

完整 ETH2.0 升级对行业的影响,它不是单纯以太坊自身的革命,更是一个全行业的革新,甚至有可能像 5G 对于 4G 的革新一样。首当其冲受到影响的就是公链竞争者,一些 DPoS 公链节点数量较少,开发社区仍在起步阶段,只能依靠相比以太坊的性能、费率优势来寻求突破。但是 ETH 如果顺利完成升级,性能大幅提高,费率大幅降低,同时开发社区优势仍非常明显,那么这些竞争公链的竞争优势将荡然无存。

以太坊作为底层,基于以太坊区块链的应用 DApp、金融服务 DeFi,会成为新项目的爆发点,这也有可能诞生出撬开一个主流互联网、传统金融的一个入口。

对于现有 DeFi 来说,它们仍然在 ETH 老链上,可以正常运转,不受影响。如果 DeFi 迫切需要更高的性能和较低的费率,那么他们可以在主动迁移到新链上。如果迫切度相对较低。可以被动等待 ETH1.0 和 ETH2.0 的合并,届时这些 DeFi 将自动等同于已经进入 ETH2.0。不过,我们推测,即便合并后的 ETH1.0 做了一定改进,但是其性能可能仍然不如 ETH2.0 原生的分片链一样好。同时,由于需要众多补丁,因此这个合并时间进度无法保障。主动迁移到 ETH2.0 上可能是 DeFi 的更好选择。

对于 DApp 来说,ETH2.0 的新的原生 Dapp 项目更可能会倾心于过去 ETH1.0 无法实现的一些应用,例如游戏等。如果我们把目光放长远,一些国家级项目或许正式能够在 ETH2.0 上运行。早在 2018 年,加拿大政府研究机构就已经推出以太坊区块链浏览器,并配合分布存储技术,使得托管数据无法篡改;意大利大学也表示将推出以太坊 (ETH) 区块链的数字证书。今年 1 月,澳大利亚央行曾表示,正在以太坊上模拟测试央行数字货币;今年 4 月,法国央行也称,以太坊和 Ripple 或将为央行数字货币提供动力。虽然过去的 ETH 1.0 无法支撑这样国家级的项目,但是未来 ETH2.0 的性能是很有可能能够胜任的。

ETH 社区何去何从?

社区分叉的可能性

ETH2.0 升级和过去历次区块链升级不同,它另起炉灶搭建一条新的区块链,主链仍将长期存在,用户陆续自行迁移。根据以太坊基金会于 2019 年 12 月发布的文章来看,以太坊老链将会长期存在,至少存在 3-5 年,而且老 ETH 的相关开发,例如区块链修剪、状态通道开发工作将继续推进 [6]。

如果持币用户希望获得 Staking 收益,开发者希望使用更好性能的以太坊,他们可以自行迁移到 ETH2.0 上去。矿工,原教旨主义者如果更看好 PoW,那么这些人可以继续留在以太坊老链上。整个过程是完全自由的,因此社区阻力并非主要矛盾。再加上 Vitalik 亲自挂帅指挥,那么出现社区分裂进而导致强烈硬分叉是的可能性较低的。

当然,如果未来将 ETH1.0 合并到 ETH2.0 框架中,那么 ETH1.0 借助硬分叉完成几次类似于君士坦丁堡、缪尔冰川式的补丁式升级,也是理所应当的。但是,这样的软件分叉升级不太容易会造成社区分叉。

用户持有 Token 该如何处理

对于 ETH 来说,如果想尝试 Staking 的用户,可以主动将 ETH 燃烧并迁移到 ETH2.0,变为 BETH。但是需要注意 BETH 可能在两年内无法转给其他账户,或是转回 ETH1.0。如果不想尝试,可以等待 2-3 年,ETH1.0 被并入 ETH2.0,实现 ETH 的被动迁移,这个过程应该是会自动完成的。

对于 ERC-20 Token 来说,其过程也比较类似,开发团队可以等到 ETH2.0 的阶段 2 完成后再通过手动映射,完成主动迁移,也可以等待 ETH1.0 被并入到 ETH2.0 框架后,实现被动迁移。

重要的不确定因素

反而容易受阻的 ETH2.0 技术工作,目前看 ETH 社区的开发能力还是略低于预期的,ETH2.0 的完整版至少要到 2022 年后才有希望,区块链世界也需要同时间赛跑,如果传统互联网巨头介入公有链开发(例如 Libra 实际搭载智能合约),它们的开发速度更快,那么有可能对令以太坊技术、应用生态发生流失。

此外,虽然在 2020 年以太坊有希望启动阶段 0,但是如果长期不能实现阶段 1、阶段 2,大量 ETH 被锁在 ETH2.0 上挖矿,那么社区会出现不满情绪。

总结

远期来说,ETH2.0 拥有宏伟的构想和正确的路线(Casper、分片和新虚拟机),如果完整版顺利落地,ETH 自身性能会出现大幅提高,在区块链竞争中获得巨大优势,并给 DeFi、DApp 注入新的活力,甚至让一些国民级的项目也有希望搬上以太坊。

但是近期来说,单纯看本次阶段 0 升级,它其实只是万里长征的第一步而已。在阶段 0 和阶段 1,ETH2.0 不支持转账和智能合约,因而暂时无法投入实战。所以,我们需要给予开发社区更多的时间。 参考文献

[1] What you can do for Ethereum 2.0 a.k.a. sharding Hsiao-Wei Wang

https://docs.google.com/presentation/d/1G5UZdEL71XAkU5B2v-TC3lmGaRIu2P6QSeF8m3wg6MU/edit#slide=id.p4

[2] Two Point Oh: Randomness. Nimbus

https://our.status.im/two-point-oh-randomness/

[3] The eth1 -> eth2 transition. vbuterin

https://ethresear.ch/t/the-eth1-eth2-transition/6265

[4] 【火币区块链产业专题报告】区块链技术可扩展方案分层模型袁煜明、刘洋

https://research.huobi.cn/detail/35

[5] 「95% Confidence」: Ethereum Developers Pencil In July 2020 for ETH2.0 Launch. William Foxley https://www.coindesk.com/author/williamcoindesk-com

[6] The 1.x Files: a fast-sync. Griffin Ichiba Hotchkiss

https://blog.ethereum.org/2019/12/10/eth1x-files-fast-sync/

本文链接:https://www.8btc.com/media/610787
转载请注明文章出处

  • 0
区块链大帝
区块链大帝

0 条评论