摘要:万众期待的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,除了提高社区关注度之外,暂时难以给行业带来更加深刻的影响。
作者:【火币研究院】袁煜明,马天元,卢军
1.ETH2.0概述
1.1 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)。
图1 ETH2.0架构图
来源:What you can do for Ethereum 2.0 a.k.a. sharding[1]
1.2信标连网络
为了帮助理解ETH2.0的整体框架,我们可以使用一个比喻,如图2所示:
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”。
1.3 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无法转账,它将成为验证者和用户不可转移的资产。
图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。
1.4Casper共识机制
ETH2.0信标链(Beacon chain) 采用Casper共识机制,Casper属于权益证明制(PoS)范畴,除了继承PoS机制低能耗、防51%攻击更安全的优势外,还在现有PoS机制上增加经济惩罚机制,解决PoS机制本身存在的“无利害攻击”问题。“
无利害攻击”是PoS系统的一个经典攻击问题。PoS系统节点持有权益证明(即按币的数量)就可以参与挖矿,权益占比越大负责出块的概率也越大,由于PoS不需要额外付出挖矿的算力成本,挖矿边际成本为0,区块链网络产生分叉的可能性更高。PoS验证者可以选择同时在两条链上进行“投票”,不论最后哪条链成为“最长链”胜出,验证节点都可以获得区块奖励。这和PoW链不同,如图4所示,PoW链不会发生这种现象,因为算力只有一份,而Token同时存在在两条链上。随着时间推移,这种无成本为多条链出块的投票行为会助长更多的网络安全攻击行为,损伤区块链网络本身的安全性。
图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路线获得了胜出。
1.5 分片技术
分片技术(sharding)其实来源于一种传统概念扩容技术,它指将数据库分成若干片段,以增加处理效率。在区块链中,它指将区块链网络分成多个碎片,每个碎片中包含一定的节点,由这些节点分别处理每个碎片中的事务,以提高区块链整体的性能。
以太坊受制于原有框架,长期以来难以通过Layer1层扩容提升性能。在火币研究院过去的报告《【火币区块链产业专题报告】区块链技术可扩展方案分层模型》中,我们曾经专门探讨过此问题[4]。
因此,在ETH2.0升级中,以太坊将通过分片技术提高系统并发交易处理吞吐量水平。它将网络划分为64个分片(旧方案中曾预计采用1024个分片),每个分片处理网络中不同的交易,并处于独立的账户空间。
每个分片内的交易结果将由信标链网络上的验证节点委员会指定的验证节点负责验证,验证节点不需要验证分片外的交易,分片每隔一段时间(即时隙Slot,12s)由验证节点产生一个校对区块, 校对区块包含分片内的状态和交易内容,提供可验证信息(如Merkle根)。这也意味着,每过12秒整个网络中就产生64个分片链区块,再加1个信标链区块。
随后,通过交联(crosslink)过程,信标链可以引用不同分片链的内容和状态,获得该分片网络的真实性证明,而不需要去验证分片内每一笔交易,最终信标链验证委员会通过Casper机制对信标链内所有分片链进行校对,随后区块结果获得最终确定性,分片也将通过交联获得信标链对引用的分片区块完成最终确认的状态结果。
如图5所示,ETH2.0将网络分成两部分,左边L1代表信标链网络,右边L2代表分片网络,分片之间空间各自独立,不同的分片由验证节点组成的验证委员会维护,相当于也是多条独立的区块链。信标链通过交联(crosslink)收集分片内的交易真实性证明摘要(Merkle根),ETH2.0分片技术第一阶段就是建立信标链-分片的锚定模型,分片内交易结果的确认要等待信标链的区块结果确认,分片内不支持状态存储。
图5 信标链引用分片链交易真实性证明摘要示意图
总结一下,ETH2.0分片技术的阶段1属于链上数据分片范畴,即只是将验证节点随机划分到不同的网络,处理不同的交易数据,分片未涉及处理状态的问题,ETH通过信标链这个核心中枢来负责最终交易状态的共识验证并在区块确认后在各个分片进行同步,信标链同时协调跨分片的状态通信,信标链基于Casper 共识来实现区块的更新, 通过交联技术实现信标链和分片的状态通信。
1.6 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所示。
表1EVM和eWASM的区别
1.7 其他
ETH2.0中还有一些其他值得关注的技术,例如状态租金、跨分片合约交易等。
(1)状态租金
不同的分片运行智能合约后,将导致ETH系统存储膨胀,包括合约代码、数据和状态,以太坊核心开发者提出状态租金建议,即采取有偿存储合约代码、数据和状态,而不是永久保存。应用层合约开发者和用户需要为eWASM存储付费,未使用的信息随着时间推移将被系统清除,状态租金具体经济模型还在讨论设计中,状态租金可以防止垃圾交易信息填满ETH的整个状态空间,提高系统运行效率。
(2)无状态
这个思路和状态租金相对应,同样都是因为状态的数据过多,给以太坊的使用带来极大不便。我们以2020年6月7日23:00 GMT+8的数据为例,截至此刻,正常以太坊全节点为400GB左右,但是如果是存储了所有历史状态的全节点,则要4000GB左右。因此,有开发者提出让ETH2.0和Eth1.0向“无状态”的目标发展,允许轻客户端以无状态存在,使其能够验证所有交易以及状态的所有部分,而无需实际存储任何状态。这也是目前社区所推崇的ETH1.0融合进ETH2.0框架的必要中间步骤。
(3)跨分片合约交易(火车与旅馆问题)
跨分片交易问题可以用火车和旅馆问题来比喻。比如你去另外一个城市旅游,要定火车票,还要定旅馆。如果订了火车票但是没订到旅馆,比较麻烦;倘若旅馆订到了火车票又没订到也很麻烦。要么都订到,要么都没订到,否则都会破坏去城市旅游的最佳状态。火车和旅馆问题产生的原因,就是交易分裂到多个共识周期。
ETH2.0智能合约运行在各自的分片内,分片B上的智能合约不存储分片A上的Token余额信息。分片合约状态信息都是私有不共享的前提下,如何在两个分片之间进行Token转移,正是这个课题要解决的问题。
该模型非常简单,就是在分片A和B都部署一个相同的ERC-20智能合约,假设Token符号为CCT(Cross Chain Token), 合约内部添加两个函数功能:migrateSend和migrateReceive,migrateSend主要销毁Token并生成收据,收据包括销毁的CCT数量和接收的分片索引,migrateReceive函数负责验证收据并生成相同数量的CCT,整个过程至少需要两个跨分片通信的最终确认,具体流程示意图6如下:
图6 ETH2.0跨分片状态通信示意图
2. ETH2.0时间表
ETH2.0规划路线从2019年开始,但因为Casper共识本身的稳定性问题,开发进度被放缓,当前阶段是实现信标链这个枢纽网络,测试网络已经上线,大概率在2020年Q3-Q4完成,ETH2.0整体规划为重要的三阶段:信标链、分片、eWASM,后续的持续创新方向还在动态制定中。
图7 ETH2.0路线图
2.1 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)高阶指数分片
分片链可以再进行分片,分片链各自成为分片的信标链。
2.2 ETH2.0跳票的可能性
目前ETH2.0已经启动了信标链的测试工作(即Tapoz测试网),进展相对顺利。以太坊核心开发者Drak说,他有95%把握阶段0在2020年上线[5]。种种迹象表明,今年完成阶段0,Casper信标链是大概率事件。我们预计在Q3末或者Q4初上线的可能性比较大。
但是阶段1分片的开发相对来说较为较难,尤其是对于ETH这样的分布式开发社区来说,积极估计需要2021年上线,但是坦率来讲,我们认为阶段1是存在跳票可能的,很有可能延迟到2021年Q4季度。
3. ETH2.0行业影响分析预测
3.1 ETH2.0升级后行业生态的演变
(1)今年初版(阶段0)上线坦率来讲,今年内阶段0上线很难给行业带来“翻天覆地”般的影响,因为ETH2.0除了Staking之外,重要的功能例如分片转账、智能合约暂时都无法使用,而且也并不会给以太坊带来更好的性能和更低廉的费用。用一个比喻来说,此时的ETH2.0,像一个可以看、可以摸,但是不可以用的“玩具”。
今年阶段0上线后,最大影响主要集中在:1.BETH的诞生,为行业的Staking带来了新的产品;2.宏伟的未来愿景+正确的技术路线,增加社区对以太坊的关注度。换言之,它带来的影响更多是在关注度层面上,而非功能层面。
(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的性能是很有可能能够胜任的。
3.2 ETH社区何去何从?
(1)社区分叉的可能性
ETH2.0升级和过去历次区块链升级不同,它另起炉灶搭建一条新的区块链,主链仍将长期存在,用户陆续自行迁移。根据以太坊基金会于2019年12月发布的文章来看,以太坊老链将会长期存在,至少存在3-5年,而且老ETH的相关开发,例如区块链修剪、状态通道开发工作将继续推进[6]。
如果持币用户希望获得Staking收益,开发者希望使用更好性能的以太坊,他们可以自行迁移到ETH2.0上去。矿工,原教旨主义者如果更看好PoW,那么这些人可以继续留在以太坊老链上。整个过程是完全自由的,因此社区阻力并非主要矛盾。再加上Vitalik亲自挂帅指挥,那么出现社区分裂进而导致强烈硬分叉是的可能性较低的。
当然,如果未来将ETH1.0合并到ETH2.0框架中,那么ETH1.0借助硬分叉完成几次类似于君士坦丁堡、缪尔冰川式的补丁式升级,也是理所应当的。但是,这样的软件分叉升级不太容易会造成社区分叉。
(2)用户持有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框架后,实现被动迁移。
(3)重要的不确定因素
反而容易受阻的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. Nimbushttps://our.status.im/two-point-oh-randomness/
[3] The eth1 -> eth2 transition. vbuterinhttps://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 Foxleyhttps://www.coindesk.com/author/williamcoindesk-com
[6] The 1.x Files: a fast-sync. Griffin Ichiba Hotchkisshttps://blog.ethereum.org/2019/12/10/eth1x-files-fast-sync/