以太坊执行层 (Eth1) 和信标链 (Eth2)合并后会发生什么

为了以太坊 2.0 升级做准备,今年 1 月底时,以太坊基金会宣布”以太坊 1.0”(ETH1)和“以太坊 2.0”(ETH2)一词将被淘汰,取而代之的是“执行层”和“共识层”,执行层+共识层=新的以太坊。

而目前合并的开发工作已基本完成,正处于公开测试阶段,预计到 22 年第二季度完成合并。本次合并,将是以太坊有史以来最大的一次升级,如何保障以太坊这个去中心化的网络在不停服的前提下,六千多个节点顺利升级,并且升级后不影响已有合约、资产的使用。

为了本次升级,以太坊核心开发者和整个社区准备已久,所有的以太坊用户也都拭目以待。那么,本次合并什么时候发生,发生后执行层和共识层会发送什么改变?

一、如何触发

信标链通过监测当前以太坊的出块难度total difficulty, 一旦出块难度大于等于某一个临界值(TERMINAL_TOTAL_DIFFICULTY),该区块将会是最后一个 POW 块,之后的区块将由信标链构建。

二、何时触发

目前各项工作已准备就绪,预计在第二季度进行合并,更准确的是在 6 月份之前。当然,也不排除由于一些意外情况导致的推迟,如公测期间发现一个漏洞,修复完成的时间就不确定了。

之所以是 6 月份,是因为在 21 年 12 月的 Arrow Glacier(箭形冰川升级)中,通过了 EIP-4345,将难度炸弹推迟到了 22 年 6 月,也就是说,如果在 6 月份,合并还没完成,那么难度炸弹会将再次推迟,希望这种情况不会发生。

三、合并后的以太坊

合并后执行层+共识层等于新的以太坊,其中:

  • Eth1 → 执行层:负责处理事务和数据
  • Eth2 → 共识层:负责处理 PoS 共识,采用信标链

合并后的架构如下图所示。

从图中可以看出:

  • 执行层节点和信标链节点为独立节点
  • 二者有各自的 p2p 网络和暴露的 API
  • 二者通过引擎 API 进行通信

四、执行层

合并后的执行层会将 POW 共识相关的部分删除,状态管理、区块构建和验证会有修改,其他的如 EVM 等功能保持不变。

4.1 区块格式的修改

在区块中,与 POW 相关的字段会被设置为 0,如下表所示。

另外,extraData 字段长度会被限制为 32 字节。

相应的,对区块的有效性校验,会有如下更改:

  • 去掉关于 difficulty 的验证
  • 去掉 nonce 和 mixHash 的验证
  • 去掉叔块 ommers 列表及列表成员的验证

4.2 以太币增发

由于共识从 POW 切换为 POS,将取消叔块的奖励,而执行层会继续处理交易的手续费,手续费将会支付给 ExecutionPayload(执行数据)中的 feeReceipient(费用接收者)。

4.3 区块广播

合并后,执行层将不会在进行区块广播,具体到客户端上,就是取消 和  的处理逻辑。同时,执行层仍然会同步网络状态,广播交易和维护交易池。

NewBlockHashes (0x01)

NewBlock (0x07)

4.4 Engine API

Engine API 是执行层不同于 JSON RPC API 的,一个独立端口的 API 模块。

Engine API 引入了三个接口:

1、engine_newPalyload

engine_newPalyload,引擎执行数据,该接口的主要作用是要求执行层验证 ExecutionPayload(执行数据)是否符合要求,执行层响应的状态包括:

  • VALID,有效
  • INVALID,无效
  • SYNCING,同步中
  • ACCEPTED,已接受,防止重复提交
  • INVALID_BLOCK_HASH,区块 hash 无效
  • INVALID_TERMINAL_BLOCK,区块终端无效

2、engine_forkchoiceUpdated

engine_forkchoiceUpdated,引擎分叉选择更新,其功能主要是共识层让执行层生成一个新的区块 ExecutionPayload。

3、engine_getPayload

engine_getPayload,引擎获取数据,共识层通过请求 engine_getPayload 接口,获取执行层中的 ExecutionPayload 数据。

ExecutionPayload 数据结构如下图所示。

五、信标链

信标链在 2020 年 12 月 1 日就已经上线,由于还没有合并,因此目前的信标链是对空快达成共识的。信标链浏览器:https://beaconscan.com/[2]

合并后,信标链负责对区块达成共识,合并后的区块如下图所示。

当共识层需要打包一个新的区块时:

  • 首先会调用执行层引擎 API 的 engine_forkchoiceUpdated 接口,携带 payloadAttributes 参数,执行层返回 payloadId
  • 其次,共识层调用 engine_getPayload 接口,传入 payloadId,执行层返回 ExecutionPayload 数据。
  • 再次,共识层调用 engine_newPalyload 接口,传入 ExecutionPayload 数据,执行层验证交易并返回数据是否有效。
  • 最后,共识层调用 engine_forkchoiceUpdated,传入 ForkchoiceState 参数,执行层同步新的区块。

合并后,信标链开始打包区块,如下图所示。

猜你喜欢

比特币提现会被银行查吗?

比特币提现会被银行查吗? 首先,根据《中华人民共和国反洗钱法》、《金融机构大额交易和可疑交易报告管理办法》、《金融机构报告涉嫌恐怖融资的可疑交易管理办法》等法律法规的相关规定,银行会对大额资金的流动做监控,主要是审查来源是否合法,是否涉嫌洗钱。

2022-05-21

比特币暴跌50%!30岁老公玩比特币输了好多钱

比特币暴跌50%!30岁老公玩比特币输了好多钱 过去的一周里,作为一个游曳在币圈边缘的键盘侠,见识了币圈度日如年的跌宕后,仍可以笑看潮起潮落。

2022-05-21

UST爆雷之后,USDT也要爆雷了?

这几天的行情,证明了良心哥的推测非常准确。 首先是5月10日分析luna背后是被人开了黑枪,并且持续看空luna。 次日消息实锤,luna再次跌了个99%。 昨天分析说,luna的死亡螺旋会带崩大盘。

2022-05-21

Luna币7天蒸发2000亿,但更怕的是熊市即将到来!

心哥昨天虽然不知道这里边的细节,但依然非常确定的告诉大家,这是一场狙击战,找的就是这个空档,打出来的子弹是要人命的。 另外排队枪毙这个场景,估计今天很多人也领教了。

2022-05-21

一天蒸发400亿人民币,Luna是如何被狙击的?

你们也都知道良心哥炒币是个渣渣,但良心哥的判断大体还是准确的。 可能这就是从业时间久了的盘感吧。 有人说luna的暴跌,ust抛锚,都他吗赖孙宇晨。 从5月5号孙宇晨宣布进军算法稳定币之后,大盘就崩了

2022-05-21

    上一篇

    Polkadot Xcm -- 从基础到实践(实现跨链转账)

    下一篇

    21个基于ethers的Dapp常用工具函数

评论