前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以太坊的The Merge到底是什么?

以太坊的The Merge到底是什么?

作者头像
区块链大本营
发布2022-08-26 13:25:29
1.2K0
发布2022-08-26 13:25:29
举报
文章被收录于专栏:区块链大本营区块链大本营

作者 | 陈玄,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?

The Merge的意思是,将某一个PoW链的数据层与另一PoS链的共识层相互合并,形成一条PoS链。也就是说,merge之前,会有一条PoW链,一条PoS链,然后经过某种方式,这两条链合并成了一条链,其中,PoW链提供数据,PoS链提供共识算法,最终组合成一条新的链。

Merge之前

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上的交易打包的执行过程(本来就没有)也不要了,两条链被拆开,重新组合成了一条链。

Merge的过程

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算法,合并完成。

Merge之后

如果我们直接把所有交易推给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

  1. Beacon Chain Withdrawals:没错,Shanghai Upgrade之前,你质押在PoS链上的钱是取不回来的。Shanghai Upgrade之后,你想要取出钱来,也是需要等很久的,
  2. EVM Object Format:EVM升级过程中,如何兼容旧合约?很简单,给新的合约加上一个标识符就行,比如以0xEF开头,升级之后,就标识符的新合约称为EOF合约。
  3. Lower layer-2 fees:Layer-2,包括Optimism, Arbitrum和ZkRollups使用费用还是太贵了,所以,Shanghai Upgrade减少了CALLDATA的费用消耗,但是这终究是临时方案,解决Gas fee问题还是要靠Sharding。

No Sharding in Shanghai Upgrade

参考链接:

  1. https://pwnh4.com/posts/the-merge
  2. https://ropsten.beaconcha.in/block/65144
  3. https://hackmd.io/@benjaminion/eth2_news/https%3A%2F%2Fhackmd.io%2F%40benjaminion%2Fwnie2_220617#fn1
  4. https://hackmd.io/@timbeiko/acd/https%3A%2F%2Ftim.mirror.xyz%2FPWFVaHY3Mrx7srarMmuBWya0J5kioR1l2xaH3p5APDk%3Fdisplay%3Diframe
  5. https://coinyuppie.com/the-latest-progress-of-the-ethereum-shanghai-upgrade-plan/
  6. https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html
  7. https://www.reddit.com/r/ethstaker/comments/sq0o8l/transactions_fees_will_be_immediately_available/hwj4f4y/
  8. https://hackmd.io/@n0ble/consensus_api_design_space
  9. https://www.attestant.io/posts/understanding-post-merge-rewards/

END

新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 区块链大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是The Merge?
  • Merge之前
  • Merge的过程
  • Merge之后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档