主页 > imtoken下载官方 > 干货| 以太坊 2.0 Phase 0 V0.8.0 技术规范详解(上)

干货| 以太坊 2.0 Phase 0 V0.8.0 技术规范详解(上)

imtoken下载官方 2024-01-24 05:12:47

概述

Beacon链是以太坊2.0系统的核心链。 之所以这样命名,是因为该链将作为随机性的信标,但它也可以称为“系统链”或“脊柱链”等。这条链也是验证者“所在的链”,即就是,验证者的职责会被分配到这条链上,验证者会在这个共识环境下运行协议层的随机数生成器,验证者也会对这条链进行投票,并在区块的顶部形成最终性检查点链; 这也是验证者引用分片链状态(交联)的地方,作为分片链的根,并促进跨分片通信。 信标链不仅是系统运行的大脑,也是后续分片系统构建的框架。

信标链的状态(BeaconState)是技术规范围绕的核心对象。 BeaconState 涵盖了所有相关信息:谁是验证者,他们处于什么状态,这个状态属于区块树上的哪条链,以及对 Eth1 链的哈希值引用。

从创世状态开始,每当一个区块满足状态转换函数设置的所有条件时以太坊区块数据结构,该区块处理后的状态就被认为是有效状态。 这样,一个块的前置条件可以递归地定义为通过对前一个块(及其状态)运行状态转换函数获得的有效后置条件,从而一直回到创世状态。

分叉选择规则

分叉选择规则的含义是:给定一棵区块树,总是可以根据这样的规则和来自验证者的最新信息来选择单链(即规范链、主链)和最终状态。 分叉选择规则接受区块树和来自验证者集合的相应最新证明,并返回一个区块作为当前链顶区块。 LMD GHOST(最新消息驱动的GHOST算法),Eth2.0使用的分叉选择规则,只考虑每个验证者最新证明(“witness”或“proof”)指向的区块,并以此来计算总递归地附加到树的每个块的见证数。 也就是说,区块树上的一个节点(即一个“区块”)的“权重”是所有将最新见证人指向这个区块或其后代区块的验证者的数量之和。 GHOST算法从区块树的底部开始,每到一个节点就选择最重的子链,直到到达叶子节点(即区块树末端的区块)。 这个叶子是链的顶端,递归定义了整个主链。

基于以太坊的区块链_以太坊区块数据结构_以太坊开发区块链

具体来说,在一个纪元中的每个分配的时隙(slot)中,验证者都有机会生成一个证明。 提交attestation.data.beacon_block_root 是分叉选择意义上的投票。在计算分叉选择结果时,算法会考虑最近活跃验证者的所有投票

终局性

分叉选择规则允许我们在区块树中选择一个主梁,“Finality”(“确定性”)给了我们一个保证:某些区块会一直留在主链上。 信标链使用 Casper FFG 的修改版本来实现确定性。 Casper 提供“可审计的安全性”,某些区块将保留在主链上,除非一定比例的验证者销毁他们的锁定资本。 这就是我们认为的“密码经济学”意义上的“安全”,不同于传统共识算法中对“安全”的传统定义。

具体来说,在一个纪元中的每个分配的时隙(slot)中,验证者都有机会生成一个证明。 提交 attestation.data.source 将作为 FFG 的源对,提交 attestation.data.target 将作为 FFG 的目标对。 前者在“结合 GHOST 和 Casper”中有更深入的讨论。

以太坊开发区块链_基于以太坊的区块链_以太坊区块数据结构

交联

交联(“交联”)是对信标链上保存的分片链的最近状态/块的引用。 这些引用不仅是分叉选择时分片链的根,也是分片链之间异步通信的工具。 正常情况下,每个分片每个周期可以与信标链交联一次(如果验证者数量较少,也可以每 N 个周期交联一次)。

虽然在Phase 1之前我们不会加入分片链,但是在Phase 0系统仍然会分配一个分片给交联委员会,并尝试在每个时间段产生一个交联。 在第 0 阶段,交联中的数据根将简单地存入 0x00。

验证者职责

以太坊区块数据结构_以太坊开发区块链_基于以太坊的区块链

可以在此处找到有关阶段 0 中验证者职责的更详细讨论。

验证者的两个主要职责是:(1)每个周期见证信标链; (2) 选择时偶尔产生信标链块。 每个时间段,验证者都被分成不同的“交联委员会”。 每个委员会都分配有一个插槽和一个分片。 在给定的时间段内,验证者对信标链的顶部区块进行证明(到达阶段1后,还需要见证分片链的最新数据)。 每个时隙从分配给该时隙的委员会中选出一个信标链区块提议者(通过 get_beacon_proposer_index)。

验证者只要定期见证信标链和分片链的主链就可以获得奖励; 否则,如果他们不能完成他们的职责,他们也会受到惩罚。 如果一个验证者违反了 Casper FFG 规则以太坊区块数据结构,或者如果他们在同一时期创建了两个信标链区块,他们将被削减(比惩罚更严厉)。 有关削减条件的更多详细信息,请参见此处。

数据结构

基于以太坊的区块链_以太坊开发区块链_以太坊区块数据结构

注意

信标链中数据结构的数据共享和散列被编码为简单序列化 (SSZ) 对象。 使用 SSZ 哈希方法的一个好处是,在为底层数据生成 Merkle 树时,树的深度可以是非均匀的。 这样做的结果,以及 SSZ 的其他巧妙设计,是其子对象完全表示或仅由部分 Merkle 根值表示的 SSZ 对象具有相同的哈希树根。

信标链运营

信标链操作是区块提议者可以添加到BeaconBlock(信标链区块)中的一种数据结构,也是一种合并系统层验证/构建相关的各种消息的方式。 这些操作本质上是验证器级别的信标链状态机交易。 每个操作在块中都有一个上限,该上限由每个块的最大操作数定义为常数。

基于以太坊的区块链_以太坊区块数据结构_以太坊开发区块链

提议者削减

AttesterSlashingAttestationAttestationDataAndCustodyBit 是验证者签名的实际消息。 给定证明,验证者可以签署两种类型的消息 - 具有 0 或 1 保管位的 AttestationDataAndCustodyBit。 根据 custody_bitfield,我们可以从每个参与的验证器中恢复所需的签名消息(custody_bit 0/1)。 在第 0 阶段,所有托管位都为 0。 DepositVoluntaryExitTransfer

(未完)

(文中提供了很多超链接,请点击阅读原文在EthFans网站获取)

原文链接:

#Phase-0-伴随资源-v080