你需要知道的关于ETH2·0的几个事实
你需要知道的关于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)。
图1 ETH2.0架构图来源:What you can do for Ethereum 2.0 a.k.a. sharding[1]
信标连网络
为了帮助理解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」。
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。
Casper共识机制
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 路线获得了胜出。