织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

Vitalik Buterin:解析以太坊向信标链分片子系统转化流程 (2)

时间:2020-12-29 16:34来源:未知 作者:admin 点击:
影响 eth1 向 eth2 转换的基本机制如下图所示: 指定一个(eth1 链的) 高度 TRANSITION_HEIGHT 。高度为 TRANSITION_HEIGHT 的 eth1 区块将被视为 eth1 链的 「最终」 区

影响 eth1 向 eth2 转换的基本机制如下图所示:

引介 | eth1 -> eth2 转换

  1. 指定一个(eth1 链的) 高度 TRANSITION_HEIGHT。高度为 TRANSITION_HEIGHT 的 eth1 区块将被视为 eth1 链的 「最终」 区块。从该区块往后,(原本是 「正统链的」) eth1 将作为 eth2 的子系统运行。
  2. eth2 的 「诚实验证者」 代码会根据(1)做出相应调整,不允许验证者投票给区块号 > TRANSITION_HEIGHT 的 eth1 区块。如果投票算法已经选出了某个区块编号 > TRANSITION_HEIGHT 的 eth1 区块,则改成为 TRANSITION_HEIGHT 的 eth1 区块投票。
  3. 此外,在已触发(2)的情况下,验证者会将 deposit_count 设置为比实际值高 2**63 (就是将 deposit_count 的 top bit 作为 「eth1 已完成」 的标记)
  4. 当 eth2 在 「eth1 已完成」 标记开启的情况下接受 eth1data 时,eth2 会执行一次 「非常规的状态变换」,将该 eth1 区块的状态根放到 「eth1 执行环境」(eth2 上的一类系统级智能合约)的状态中。与 eth1 链上的总 ETH 供应量等量的 ETH 会添加到这个 eth1 执行环境的余额中。

在这之后,转换完成。从技术层面来说,eth1 链会继续运行,但它已经变成了一条毫无价值的链;等到冰河期到来时,这条 eth1 链将彻底消失。

eth1 系统现在位于 eth2 系统内部。因此,通过在 eth2 上提交针对 eth1 执行环境(即上文所述的 eth2 子系统)的交易,eth1 进一步转换成 eth2 的子系统。eth1 执行环境拥有可以实现整个 eth1 EVM 和交易处理逻辑的代码;它有一个 update(state_root, transaction, witness) -> new_state_root 功能,可以按照 eth1 链的规则,以交易和见证消息(状态部分的默克尔证明)作为输入处理该交易,并决定更新后的 eth1 状态根。关于见证消息和状态根的运作原理,请阅读《无状态客户端概念》。

eth1 执行环境代码可以添加额外的功能,即,将 ETH 和消息从 eth1 执行环境提取到 eth2 的其它部分,以及其它分片上的 eth1 执行环境副本中。在默认情况下,所有 eth1 账户 / 合约都会放在同一个分片上,因此为了利用 eth2 更大的容量,你需要主动使用这个功能将你的 ETH 或其它应用转移到其它分片上,不过难度不大。我们需要通过扩展 ERC20 标准来支持跨分片代币转账。

用户客户端如何运作

在转换至两种代码路径之前,我们需要对客户端面向用户的部分进行修改。客户端会检查 eth2,来查看转换是否已经发生。如果转换尚未发生,客户端就会像之前那样使用 eth1 来发送交易,查看余额等,不同之处在于客户端会假装所有区块编号 > (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容