以太坊 2.0 知识库
来源:Glossary - Ethereum 2.0 Knowledge Base (beaconcha.in)
名词术语
Beacon-chain(信标链)
信标链引入了权益证明,也被称为 coordination layer(协调层)。
作用:
- 为验证者分配职责
- 最终确定检查点
- 执行协议级随机数生成(RNG)
- 推进信标链
- 在链的头部投票以选择分叉
Slots(时隙)
32 Slots = 1 Epoch
一个 12 秒的时间段,一个随机选择的验证者在此期间可以提出一个区块。一个 slot 中也可以没有新区块。所有的验证者会被分配到某个委员会中,若干个委员会负责证明一个 slot。委员会中的一名验证者将被选为聚合者,而其他验证者则进行证明。在每个 Epoch 之后,验证者会被重新打乱并分配到新的委员会中。每个委员会至少有 128 名验证者。
Epoch(时段)
1 Epoch = 32 Slots
约 6.4 分钟。当涉及到验证者队列和最终确定性时,Epoch 有着重要作用。
Deposit contract(存款合约)
ETH 1.0 上的一个智能合约,是连接 ETH 1.0 和 ETH 2.0 的网关。该智能合约接受最低 1 ETH 和有效 Input Data 的交易。信标节点监听该合约并通过 Input Data 来为验证者提供信用。
Input Data(输入数据)
也称 deposit data(存款数据),是用户生成的 842 长度的字符串,代表验证者公钥和提款公钥,由验证者的私钥签名。Input Data 需要添加到 Deposit contract 中才能被信标链识别。
Validator(验证者)
验证者需要将 32 个 ETH 存入 deposit contract 。验证者必须运行一个节点,它的工作是提出区块并签署证明。验证者必须至少有 50% 的时间在线才能获得正回报。
Eligible for activation & Estimated activation(有资格激活 & 预计激活)
指 pending 中的验证者,它的存款在 “Eligible for activation” 的时间戳被 ETH 2 的链识别。若存在 Pending 的验证者队列,则估算预计激活的时间戳。
Unique Index(唯一索引)
每个已激活的验证者都会有的唯一索引。
Current Balance & Effective Balance(当前余额 & 有效余额)
当前余额是验证者目前持有的 ETH 数量。有效余额是由当前余额计算出的。它用于确定验证者收到的奖励或惩罚的大小。有效余额永远不会高于 32 ETH 。
为了增加 1 ETH 有效余额,验证者需要将当前余额增加 1.25 ETH 。举例来说,如果有效余额为 20 ETH,则需要 21.25 ETH 的当前余额才能获得 21 ETH 的有效余额。而有效余额将在当前余额下降幅度 > 0.25 时进行调整。
以下是有关有效余额如何变化的示例:
- 如果当前余额为 32.00 ETH —— 有效余额为 32.00 ETH
- 如果当前余额从 22 ETH 下降 0.24 至 21.76 ETH —— 有效余额将为 22.00 ETH
- 如果有效余额为 21 ETH,当前余额增加到 22.25 ETH —— 有效余额将增加到 22 ETH
Slasher(吹哨者)
Slasher 具有一定独立性,但需要一个信标节点来接收证明。为了发现验证者的恶意活动,slashers 会遍历所有收到的证明,直到发现可罚没的攻击。发现的 slashings 会被广播到网络,然后下一个区块提议者会将该证明添加到区块中。区块提议者会因削减恶意验证者而获得奖励。但是,举报人(即 Slasher)不会获得奖励。
可罚没的攻击行为
证明违规
Double voting(双重投票)
一个 attester(非区块提议者的验证者)在一个 epoch 里(也即一个 slot 里)签署了两份不同的证明。
Surround votes(环绕投票)
一个 attester 签署了围绕着另一个 attester 的证明。
提议违规
Double block proposal
区块提议者在一个 slot 中签署了两个不同的区块。
Attestation(证明)
验证者的投票,用于确定区块有效性。
Block proposer(区块提议者)
被信标链选择的一个验证者,负责提议下一个区块。每个 slot 只能有一个有效区块。
Block status(区块状态)
Proposed(已提议)
该区块已通过,并且被一个验证者提议。
Scheduled(已计划)
验证者们正在提交数据。
Missed / Skipped(已跳过)
区块提议者没有在给定的时间内提议区块,因此该区块状态为已跳过。
Orphaned(孤儿区块)
请看下面的例子。1~9 代表 slot 。
- slot 1 的验证者提议了区块 a ;
- slot 2 的验证者提议了区块 b ,slot 3 的验证者(下称验证者 3 )提议了区块 c ;
- slot 4 没有验证者提议区块(如:离线),因此被跳过;
- 在 slot 5 / 6 处发生了一个分叉:验证者 5 提议了一个区块,但是验证者 6 没有收到这个信息(如:网络延时),因此验证者 6 认为 slot 3 处的 c 是最新块,并紧接着 c 提议了新块 f ;
- 这里的关键是分叉选择规则,它决定了哪一个是规范的链。
Validator Lifecycle(验证者生命周期)
1. Deposited(已存款)
- 验证者已将 32 ETH 存入 ETH 1 的存款合约,该状态将保持 7 h,以保障 ETH 1 链不受到攻击。