Eth1->Eth2 迁移

简介

实现 Eth 1.0到 Eth 2.0之间的迁移要考虑两大重要因素:现有以太币迁移、链状态迁移。

以太币迁移

当前提案是,阶段0期间 Eth1 .0链上的节点能够将以太币锁定在合约中,然后Eth2 .0的信标链将记录节点获得等量的以太币。之后,节点就可以开始质押以太币,在Eth 2.0链上赚取奖励。

其中,在1.0和2.0链之间建立双向桥接也吸引了来自社区的关注。两种桥接方案的优缺点如下:

单向桥接

优点

缺点

具有稳定的安全性,只可以增量质押

早期一批锁定者至少在一年半内承担高风险

早期阶段复杂度较低

导致存在两种不同数字货币的潜在可能性

链分叉相互独立

导致社区/经济分裂

双向桥接

优点

缺点

锁定风险较低,质押量更多

质押总量不确定性高

除非Eth1.0代币发行方式改变时,节点持有的是ETH,不是Beacon ETH (BETH)

早期阶段代码复杂度增加

如果Eth2.0出现问题,可以取回锁定的数字货币

不存在锁定风险,因此早期代码探索过程复杂

单向桥接方案可以保证安全性,降低复杂性,但如果Eth 1.0中的以太币确实会被烧毁,那么锁定风险确实非常大。自v0.6.0版本规范以来,阶段0的迁移功能已被禁用,且目前没有重新启用的计划。恢复验证节点职能与迁移机制相关,这意味着,一旦节点决定不再担任验证者,就必须等到迁移功能实行后才能重新恢复验证者身份。

Danny Ryan认为第一阶段应该暂不实行双向桥接方案,因为越是将1.0与2.0的共识相提并论,就越会将开发和分叉联系在一起,这很可能会减慢2.0的迭代速度。

状态迁移

旧提案

旧提案计划在阶段2时将当前Eth 1.0链的状态迁移到Eth 2.0链的分片中。此时,Eth 1.0链上的所有信息都将存储在Eth 2.0链上。

目前,Lighthouse正潜心于创建一个状态迁移库。

用eWASM替代EVM虚拟机?

Ethereum-flavoured web assembly(简称Ewasm)是一个确定性智能合约执行引擎,基于现代的标准WebAssembly虚拟机构建,在EIP 48中首次提出。以太坊 2.0路线图阶段2提到,Ewasm是取代EVM(以太坊虚拟机)的主要候选者,未来可能充当以太坊区块链上智能合约的执行引擎。

Vitalik认为,EVM应该尽快退役,智能合约应该通过EVM解释器建立在Ewasm上(来源链接)。

新提案

Vitalik Buterin提出了一项早期过渡的替代方案,该方案已被更广泛的社区群体所接受。

目标

  • 抛弃PoW链,并将所有数据迁移至信标链。

  • 开发无状态客户端。

无状态客户端特征

  • 具有用于验证区块和见证(witnesses)的函数以及用于生成区块见证的方法。

  • 具有代码实现版本可用。

  • 修改Eth1协议,使见证大小压缩至1~2MB。

  • 由于不需要无状态矿工或者webassembly,开发无状态客户端的工程量较少。

  • Vitalik认为,无状态客户端是实现迁移过程中的一项重要功能,因为可以有效防止恶意行为。

新信标链特征

  • eth1的状态根迁移到分片0的状态

  • 将添加新验证者列表eth1_friendly_validators。任何验证者都有权随时注册或注销为eth1友好验。

  • 在任何给定的slot中,都从eth1友好验证者中随机抽出分片0提议者。

  • 分片0委员会验证其分片0区块,表示为Block body(currently exists) & stateless client witness。所有其他分片委员会都会验证其分片区块,但它们仅会验证数据可用性,而不会执行状态,因为分片0是唯一一个运行计算的分片。

运作

eth1将充当eth2的分片0,最终它将是执行环境之一。有意愿参与到eth1系统的验证者可以注册为eth1友好验证者。除了自身信标链节点外,eth1友好验证者还应运行一个eth1完整节点。 此完整节点将下载分片0上的所有区块,并持续更新eth1完整状态。

新提案优势

  • 旧提案将整个Eth1.0链迁移到Eth2分片上,而新提案将抛弃PoW,从而解决了旧提案所面临的挑战。将由eth1_friendly_validators代替矿工来验证区块。

  • 开发无状态客户需要进行的重新架构工程量更少。