撰文:Tim Beiko
编辑:南风
-
以太坊路线图的演变: 链接 -
合并之后的客户端架构: 链接
-
执行层: 链接 -
共识层: 链接 -
引擎 API: 链接
01. 区块结构
ExecutionPayloads
, 这是当前 PoW 链的区块在合并之后的等价物。下图展示了这种关系:
ExecutionPayloads
是与以太坊发生交互的地方。在这一层上面的交易将依旧被执行层客户端 (Besu、Erigon、Geth、Nethermind 等) 处理。幸运的是,由于执行层的稳定性,合并只会引入最小的破坏性更改。挖矿 & Ommer 区块字段
difficulty
和nonce
是 PoW 具有的特征,它们将被设置为 0,同时赋予它们字节大小值。mixHash
将不会被设置为 0,而是将包含信标链的 RANDAO 值。下文将更加详细地对此进行阐述。BLOCKHASH
&DIFFICULTY
操作码变更
BLOCKHASH
&DIFFICULTY
操作码变更BLOCKHASH
操作码将仍然可以使用,但鉴于它将不再通过 PoW 哈希过程缔造,因此此操作码提供的伪随机性将会弱得多。DIFFICULTY
操作码(0x44) 将被更新并重命名为RANDOM
。合并后,此操作码将返回信标链提供的随机信标的输出 (output)。因此,与BLOCKHASH
相比,这个操作码将成为应用程序开发者们使用的一个更强大的 (尽管仍然存在偏差的) 随机性来源。RANDOM
公开的值将存储在ExecutionPayload
中,其中存储了与 PoW 计算相关的mixHash
值值。该 payload 的mixHash
字段也将被重命名为random
。DIFFICULTY
&RANDOM
操作码在合并前和合并后如何运作的图解:
0x44
操作码会返回区块头的difficulty
字段。合并之后,此操作码重命名为RANDOM
,并指向先前包含mixHash
的区块头字段,现在存储来自信标链状态的random
值。此外,此 EIP 提议的更改将允许智能合约确定是否已经升级到 PoS。这可以通过分析DIFFICULTY 操作码的返回值来确定。如果该返回值大于 2**64
,则表示交易正在 PoS 区块中被执行。
02. 出块时间
03. 安全头部区块& 被敲定区块
latest
(最新) 区块时默认返回安全头部区块。在正常的网络条件下,安全头部区块和区块链的顶端将是等同的 (安全头部区块会落后几秒钟)。与当前 PoW 的latest
(最新) 区块相比, PoS 中的安全头部区块将更不可能被重组。为了显露出 PoS 链的实际顶端,将向 JSON RPC 添加一个unsafe
标志。finalized
(被敲定) 标志来显露出来。这些可以作为 PoW 确认的一个强大的替代方式。下表对此进行了总结:
04. 后续行动
*本文首发于UnitimesApp*
-END-
【发布文章仅为传播更有价值的信息,文章版权归原作者所有,其内容与观点不代表Unitimes立场。本微信平台出现的图片均在互联网收集而来,版权归版权所有人所有,若版权者认为其作品不宜供大家浏览或不应无偿使用,请添加微信unitimes2018联系我们,本平台将立即更正。】
来了就点个“赞”呗
请登录之后再进行评论