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

我的网站

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

开发者必读:代码解读成为以太坊 2.0 验证人,探索信标链激励机制 (6)

时间:2020-06-26 09:20来源:未知 作者:admin 点击:
[m / 0] - [m / 0 / 0] / \ / [m / 0 / 1][m] - [m / 1] \ ... [m / i] 另一方面,对于单独的一对密钥对,相比直接存储私钥,存储成 keystore 格式加上密码验证加密更加安全

[m / 0] - [m / 0 / 0] / \ / [m / 0 / 1] [m] - [m / 1] \ ... [m / i]

另一方面,对于单独的一对密钥对,相比直接存储私钥,存储成 keystore 格式加上密码验证加密更加安全,存储也更加方便,可以参考以太坊提案 EIP2335 给出了相关建议。

名词解释

哈希方法 HashTreeRoot

HashTreeRoot 提供了将一个对象按一定格式构建默克尔树、并求得树的默克尔根值的方法。HashTreeRoot 可以将一个对象(bit、bytes、vector、list、containers 等等)的各个部分按序排列然后构建默克尔树,获得根值。具体规范参考:https://github.com/ethereum/eth2.0-specs/blob/dev/ssz/simple-serialize.md

具体来讲,在对 pubkey、withdrawal_credentials、amount、signature 求取 HashTreeRoot 时,会经历以下过程:

  • 对 pubkey、withdrawal_credentials、amount、signature 进行 HashTreeRoot,求得 deposit_data_root

开发者必读:代码解读成为以太坊 2.0 验证人,探索信标链激励机制

  • 对于整体的 HashTreeRoot,实际上是对各个部分分别求取 HashTreeRoot,最后一起 Merkleize

开发者必读:代码解读成为以太坊 2.0 验证人,探索信标链激励机制

  • 每个部分的 HashTreeRoot 实际上是先 Pack 再将结果 Merkleize

开发者必读:代码解读成为以太坊 2.0 验证人,探索信标链激励机制

  • 如何进行 Pack?

可以看到,Pack 会把值按照一定长度切割,如不够就用零字节补充,这样会得到一个个按序排列的 32 字节的数据块,也为接下来的 Merkleize 提供初始数据。

开发者必读:代码解读成为以太坊 2.0 验证人,探索信标链激励机制

  • 如何进行 Merkleize?

开发者必读:代码解读成为以太坊 2.0 验证人,探索信标链激励机制

可以看到,Merkleize 是上一个步骤产生的数据块按照二叉树的方式从底部两两哈希求值再拼接,一层一层向上计算得到根值,所以 HashTreeRoot 本质上讲是数据按照一定长度排列,然后一层一层默克尔求值,直到获得最上层的根值。

探秘信标链(Beacon Chain)共识

信标链是整个以太坊 2.0 的核心,它是一条与当前以太坊 PoW 链并行的一条独立链。它负责存储和维护验证者注册表,处理分片链和信标链之间的交联(Crosslink),以及完成信标链共识。想要了解信标链的共识过程,就需要了解最重要的几个概念:间隙(Slot)、时段(Epoch)、验证人(Validator)、⻅证消息(attestation)、验证人委员会 (Committee)、检查点(Checkpoint)、合理化(justified)、敲定的(Finalized)、Casper FFG (Casper, the Friendly Finality Gadget)、LMD GHOST 分叉规则。 (责任编辑:admin)

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