作者 | 陈玄,Ethereum中文社区高级技术顾问
责编 | 张红月
出品 | 区块链大本营(ID:blockchain_camp)
6月8号,Ropsten测试网与它的beacon chain成功合并,目前为止,看起来是稳定的。6月22号,启动Sepolia测试网, 这是一个PoW测试网,计划在7月6号在Sepolia和Goerli两个网络上再次测试Merge。如果一切顺利的话,会在今年下半年(8月17号)执行主网的merge。我们今天就来讲一下,什么是以太坊的The Merge?
The Merge的意思是,将某一个PoW链的数据层与另一PoS链的共识层相互合并,形成一条PoS链。也就是说,merge之前,会有一条PoW链,一条PoS链,然后经过某种方式,这两条链合并成了一条链,其中,PoW链提供数据,PoS链提供共识算法,最终组合成一条新的链。
PoW链
这就是我们现在所熟知的需要挖矿的区块链。它的一个Block长这样:
这样的block又是如何产生的呢?首先,同样的是,你需要同步之前所有block以及最新的state。然后,不同的是,你需要质押32个ETH,成为validator参与到PoS算法中。系统会随机安排validator来生成block,其余validator被分配在committee中,对生成的block进行投票(Attestation),获得2/3以上赞同票的block会被一步一步确认加入区块链之中。这就是以太坊的PoS算法简单的执行流程。
然而,现在Beacon chain是不承载真实的交易的,因为Beacon chain建立的时候就是为了给Mainnet做Merge用的。如果它承载交易的话,被选中生成block的validator同样也要在交易池中选择交易组成block body,然后执行这些选中的交易。
所以综合来看不管是PoW链还是PoS链,都可以把block的生成流程,和block数据,划分为两个过程,选择打包交易的执行过程,和决定谁说了算的共识过程。聪明的你肯定已经猜到了,The Merge要做的就是把当前Mainnet上交易打包的执行过程,和Beacon chain的共识过程重新组合起来。Mainnet上的共识过程(PoW)就不要了,Beacon chain上的交易打包的执行过程(本来就没有)也不要了,两条链被拆开,重新组合成了一条链。
1.Clients listen for TTD
现在的以太坊主链上,我们设置了一个TTD值(Terminal Total Difficulty),客户端会监视每个block的Total Difficulty。
2.First TTD block seen
当某一个block的Total Difficulty值大于或等于预设的TTD,这个block就被视为最后一个由PoW产生的block,以太坊正式开始合并。接下来,客户端会把打包的交易传给PoS产生的block。
3.Post-TTD block Finalized
当有一个PoS产生的block被finalize,客户端会停止传播PoW产生的block,以太坊的PoW正式成为历史,并开始完全使用PoS算法,合并完成。
、
如果我们直接把所有交易推给Beacon chain,让它来直接执行交易的打包执行过程,这会面临一个严重的问题,Beacon chain和主网是两条独立的链,在Merge之后,所有的交易在Beacon chain上执行的话,它跟之前的主网就没关系了,我之前在主网上的钱咋整?
所以,以太坊采取了一个简单粗暴的方法,把整个Mainnet的block,去掉PoW相关内容,直接塞进PoS生成的block之中。合并之后的block长这个样子:
塞在PoS块里面的数据,它有自己的hash值,有保存上一个数据块的哈希值,这些数据块自己也是可以连成一条链的,只是它的外面套了一层PoS的壳,所以,我们把里面的数据块称为execution layer,指的是数据的执行看这一层数据,外边的壳子称为consensus layer,指的是PoS的运行结果就看这一层数据。以太坊的The Merge最终呈现给我的是下面这张图里的效果:
他们合并了,但没完全合并。所谓没完全合并指的是,合并之后的Ethereum,是有两种平行的state的,一套execution state,跟之前的PoW里的state一样,包括账户余额,状态变量等等,还有外层的consensus state,包括活跃的validator,各个validator的质押状态和余额,等等。如果以太坊从一开始就使用这种PoS的设计的话,它的数据结构肯定不长这样。
所以,Merge之前的两条链,要跑两个客户端,Merge之后,我们其实还是要跑两个客户端,这两个客户端跟Merge之前一样,有独立的存储结构,独立的P2P通信网络。只不过,两个客户端相互配合,最终组合生成一个大的block。
在Merge完成之后不久,以太坊会推出Shanghai Upgrade,在这个里面针对PoS系统进行了大量的优化
Shanghai Upgrade
No Sharding in Shanghai Upgrade
参考链接:
END
《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造