伦敦升级之后,接下来最重要的是以太坊1.0链和2.0链的合并及升级。
这会是一个更为艰难的过程,其中包含目前rollup layer2的进程,也包含分片验证和以太坊2.0客户端等开发进度关系。
不过相比于其他小的开发,社区用户不用担忧,只是上线早晚的问题,而1.0链和2.0链的合并,是一个代表了链取舍的问题,对链的参与者尤为重要。
以太坊2.0在2020年12月启用。启用后,以太坊节点的代币质押开始,这些节点搭建的信标链,就是未来以太坊主力的验证网络,这些验证节点未来还会分成各个分片执行任务。
这是在大合并后的以太坊,目前还没有开始合并,经过各类消息推论,合并后,以太坊1.0链会慢慢消亡,最终沦为一条废链。但从原来通过矿机支撑的网络过渡到信标链,其实过程会是有风险的。对于以太坊1.0链上已经产生的丰富的世界,过渡过程可能无法原封不动的全部迁移过去。
为了合并,4月30日消息,以太坊研究组织中的Protolambda启动实验性质的Eth1-Eth2合并测试网Steklo。该网络有效期只有一天。
网络上有7个客户端,4个共识客户端:Teku、Lighthouse、Prysm和Nimbus;3个执行客户端:Besu、Geth和Nethermind。
Protolambda表示,此次合并对eth1-eth2组合进行了一些更改。使用Eth1和Eth2客户端构建测试网,并在其上进行构建分片原型。
不过仅以测试网测试,对于一次庞大的合并过程,有些简单。测试仅是流程预演。
Mikhail Kalinin在以太坊2.0技术规范中其实已经发表了关于将以太坊1.0合并至2.0的讨论稿(WIP),该方案是一个“最小化合并”方案,该方案的基础思路是构建“可执行信标链”,也就是将信标链和Eth1.0做出一个耦合状态,将Eth1.0数据作为信标链的“数据分片”之一提供可用数据,涉及到对Eth1.0客户端的修改设计。
Eth1如果作为分片,假设其通过信标链与数据分片通信方式进行通信,但需要将Eth1放在专用分片上(即独立于信标链并经常“交联”信标链),这会给共识层增加了不必要的复杂性,例如增加在分片上发布数据和访问分片数据之间的延迟。
所以,推出最小化合并的方案里,采用了一些“提交链”数据交互方式,或者一些侧链的同步方式。
即通过将eth1数据(事务,状态根等)嵌入信标块并让信标提议者有义务生成可执行的eth1数据来摆脱这种复杂性。
也就是将eth1链的数据同步在信标链,然后让信标链验证节点通过投票验证数据。
在这个提案里最重要的是修改Eth1引擎的部分功能,详细为如下修改:
当验证者打算提出一个信标块时,它要求eth1-engine创建eth1数据。然后,将Eth1数据嵌入正在生成的信标块中。如果eth1数据无效,它也会使携带该数据的信标块无效。
如果以Eth1 Shard为中心,设计eth1-engine和eth2-client松散耦合并通过RPC协议进行通信,Eth1引擎需要不断维护网络堆栈的事务池和状态下载器,并保留eth1块的存储。
这个过程里删除了eht1块的概念,可以从信标块携带的eth1数据中综合创建eth1块或使交易验证不需要eth1块,而是使用eth1数据,调整后,需要使用可执行数据术语来表示eth1状态根、交易列表(包括收据根和bloom过滤器)、coinbase、时间戳等以及eth1状态转换功能所需其他数据位数据。
总体来看,eth1加入eth2还是复杂的,所以让以太坊2.0的阶段1和阶段2会慢很多。
不过如果以太坊1.0链完全停止,重置后,或许是最简单的处理方式。
以太坊ledgerwatch的开发者AlexeyAkhunov曾提出的,以COSMOS升级经验提出了重置以太坊的推论。
Cosmos Hub从版本1到版本2,然后从版本2到版本3的升级是通过重新启动区块链来完成的。升级后,节点运营商必须关闭其节点,然后生成Cosmos Hub状态的快照,然后有效地使用该快照作为启动第一个区块的新区块链的起源。
任何想要加入新Cosmos的人,需要下载CosmosHub-3的所有块(而不是CosmosHub-1或CosmosHub-2),然后广播它们。
不过这样,首先是直接把以太坊1.0链销毁掉,并且需要把以太坊1.0链的所有块下载。但下载的块,哈希是显示的,但其中的状态其实是隐式的。同步的快照不仅仅是块,还有状态。
如果把重置称为ReGenesis,在每1M个块(大约6个月)执行一次ReGenesis,则可以在BitTorrent,Swarm,IPFS等上存储状态快照以及区块链文件。
按照eth1和eth2信标链的同步来看,需要复杂多次的快照同步或更换算法,如果可以重置以太坊1.0链升级,可能以太坊的复杂性会下降。
为了带来以太坊2.0的PoS,以太坊社区可算是想过了很多办法,不过从技术论坛里的讨论来看,eth1和eth2的同步,在过渡阶段一定会发生。已经有较为明确的方案。当过渡执行开始后,社区内重视的重点其实会是算力处置、奖励以及eth1链的最终处置问题。其中大问题需要等待执行过程来最终确认,就让我们拭目以待吧。