以太坊信标链简明教程
2022 年 9 月 15 日——以太坊转向权益证明,这个新引擎就是信标链。将通过适当级别的示例进行说明,以帮助你熟练并节省时间。
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK
飞行途中更换发动机! 2022 年 9 月 15 日——以太坊转向权益证明的那一天。
这个新引擎就是信标链。
你觉得是时候了解一下它是如何运作的了吗?
以太坊的信标链将通过适当级别的示例进行说明,以帮助你熟练并节省时间。
1、槽位和纪元
信标链为以太坊共识提供心跳。 每个时隙为 12 秒,一个纪元为 32 个时隙:6.4 分钟。
插槽是一个将块添加到信标链的机会。 当系统处于最佳运行状态时,每 12 秒添加一个块。 验证器确实需要与时间大致同步。
时隙就像区块时间,但时隙可以为空。 信标链创世块位于插槽 0。
2、验证者和证明
虽然工作量证明与矿工相关,但以太坊的验证者是权益证明的“虚拟矿工”。 验证者运行以太坊的共识。 他们的激励措施将在稍后的质押奖励和处罚中讨论。
区块提议者是被伪随机选择来构建区块的验证者。
大多数时候,验证者是对区块进行投票的证明者。 这些投票记录在信标链中,并确定信标链的头部。
在每个时期,验证器都会伪随机地分配给一个槽。
证明是验证者的投票,由验证者的余额加权。 除了区块之外,验证者还广播证明。
验证者还互相监督,并因举报其他投票冲突或提出多个区块的验证者而获得奖励。
信标链的内容主要是验证者地址、每个验证者的状态和证明的注册表。 验证器由信标链激活,并且可以转换到状态,稍后在信标链验证器激活和生命周期中简要描述。
质押验证器:语义
验证者是虚拟的,由利益相关者激活。 在 PoW 中,用户购买硬件成为矿工。 在以太坊中,用户通过抵押 ETH 来激活和控制验证器。
将质押者与权益、验证者与余额联系起来更加清晰。 每个验证者的最大余额为 32 ETH,但质押者可以质押其所有 ETH。 每质押 32 个 ETH,就会激活一个验证器。
验证器由使用信标(链)节点的验证器客户端执行。 信标节点具有跟踪和读取信标链的功能。 验证器客户端可以实现信标节点功能或调用信标节点。 一个验证器客户端可以执行多个验证器。
3、委员会
委员会是一组验证者。 为了安全起见,每个插槽都有至少由 128 名验证者组成的委员会。 攻击者控制委员会 2/3 的概率不到万亿分之一。
向公众发出随机数的随机信标的概念,以太坊信标链因此得名。 信标链对称为 RANDAO 的伪随机过程强制达成共识。
在每个 epoch,伪随机过程 RANDAO 都会为每个槽选择提议者,并将验证者重新安排到委员会。
提议者由 RANDAO 根据验证者余额进行权重选择。 验证者有可能是同一位置的提案者和委员会成员,但这不是常态。 这种情况发生的概率是 1/32,所以我们每个 epoch 都会看到一次。 该草图描绘了验证者数量少于 8,192 人的场景,否则每个时段至少有两个委员会。
该图综合描述了三个槽位中发生的情况。 在 Slot 1 中,提出一个区块,然后由两个验证者进行证明; A 委员会的一名验证人离线。 时隙 1 处的证明和区块在网络中传播并到达许多验证者。 在时隙 2 中,提出了一个区块,而委员会 B 中的验证者没有看到它,因此它证明信标链头是时隙 1 中的区块。请注意,该验证者与时隙 1 中的离线验证者不同。 Beacon Chain 的头部被称为 LMD GHOST 投票。 在 Slot 3 中,C 委员会中的所有验证者都运行 LMD GHOST 分叉选择规则,并独立证明同一个头。
每个 epoch 验证者只能加入一个委员会。 通常,验证者数量超过 8,192 名:这意味着每个时段有多个委员会。 所有委员会的规模相同,并且至少有 128 名验证者。 当验证者数量少于 4,096 名时,安全概率会降低,因为委员会的验证者数量将少于 128 名。
在每个时期,验证者都会均匀地分配到各个时段,然后再细分为适当规模的委员会。 该槽位中的所有验证器都向信标链头部提供证明。 洗牌算法会增加或减少每个插槽的委员会数量,以使每个委员会至少有 128 个验证者。
4、信标链检查点
检查点是一个纪元第一个时隙中的一个块。 如果不存在这样的块,则检查点是前一个最近的块。 每个纪元总是有一个检查点块。 一个区块可以是多个纪元的检查点。
纪元包含 64 个时隙的场景的检查点。注意 插槽 65 至插槽 128 为空。 Epoch 2 检查点将是时隙 128 处的块。由于时隙丢失,Epoch 2 检查点是时隙 64 处的前一个块。Epoch 3 类似:时隙 192 为空,因此时隙 180 处的前一个块是 第 3 纪元检查点。
Epoch边界块(EBB)是一些文献中的术语(例如Gasper论文,上图的来源以及后面的一篇),它们可以被认为是检查点的同义词。
当进行 LMD GHOST 投票时,验证者也会投票给当前 epoch 中的检查点(称为目标)。 该投票称为 Casper FFG 投票,还包括一个称为源的先前检查点。 在图中,Epoch 1 中的验证者投票支持创世区块的源检查点,以及 Slot 64 区块的目标检查点。在 Epoch 2 中,相同的验证者投票支持相同的检查点。 只有分配给某个槽位的验证者才会对该槽位进行 LMD GHOST 投票。 然而,所有验证者都为每个 epoch 检查点投 FFG 票。
绝对多数
所有活跃验证者总余额的 2/3 进行的投票被视为绝对多数。 从教学角度来说,假设有三个活跃验证者:两个验证者的余额为 8 ETH,一个验证者的余额为 32 ETH。 绝对多数投票必须包含唯一验证者的投票:尽管其他两个验证者的投票可能与唯一验证者不同,但他们没有足够的余额来形成绝对多数。
5、最终性
当一个纪元结束时,如果其检查点获得了 ⅔ 绝对多数,则检查点被证明是合理的。
如果检查点 B 是合理的,并且下一个时期的检查点也变得合理,那么 B 就被最终确定。 通常,检查点会在两个 epoch(12.8 分钟)内完成。
平均而言,用户交易将位于一个纪元中间的一个区块中。 距离下一个检查点还有半个纪元,表明交易最终确定为 2.5 个纪元:16 分钟。 理想情况下,一个纪元的第 22 个时隙将包含超过 ⅔ 的证明。 因此,交易最终确定平均为 14 分钟(16+32+22 个时隙)。 区块确认源自区块的证明、其合理性、其最终性。 用例可以决定它们是否需要最终性或较早的安全阈值就足够了。
一个检查点获得合理性(插槽 64)并最终确定前一个检查点(插槽 32)的示例。
为了简化以下叙述,假设验证者都具有相同的余额。
信标链头部发生了什么
提出了时隙 96 处的纪元边界块,并包含纪元 2 检查点的证明。 Epoch 2 检查点的证明数量现已达到 ⅔ 绝对多数。 这会导致 Epoch 2 检查点的合理性,从而导致之前合理的 Epoch 1 检查点的最终性。 时隙 32 的最终性立即导致其之前的所有块的最终性。 当最终确定检查点时,可以最终确定的区块数量没有限制。 尽管最终性仅在纪元边界计算,但每个区块都会累积证明,如下面的替代叙述“从创世到头部可能发生的情况”中所述。
从起源到头部可能发生了什么
用同样的插图,这是一个可以从创世记中观察到的故事情节。 从 Slot 1 到 Slot 63 的所有提议者都提议一个区块,并且这些都出现在链上。 对于 Epoch 1 中的每个区块,其检查点(位于 Slot 32 的区块)都会累积来自 55% 验证者的证明。 提议了 Slot 64 处的块,它包括 Epoch 1 检查点的证明。 现在,70% 的验证者已经证明了 Epoch 1 检查点:这就是它的合理性。 Epoch 2 检查点(Slot 64)在整个 Epoch 2 中累积证明,但未达到 ⅔ 绝对多数。 提议了 Slot 96 处的块,它包括 Epoch 2 检查点的证明。 这导致达到 ⅔ 绝对多数并证明了 Epoch 2 检查点的合理性。 证明 Epoch 2 检查点的合理性最终确定了 Epoch 1 检查点和所有之前的区块。
这是另一种可能的情况。 仅考虑直到 Epoch 1。在 Epoch 2 的检查点被提出之前,Epoch 1 的检查点可能已经获得 ⅔ 绝对多数。 例如,随着时隙 32 到时隙 54 中的块被提出,证明检查点(时隙 32)合理性的证明可能已经达到 2/3 绝对多数。 在这种情况下,检查点将在 Epoch 2 之前被证明是合理的。检查点可以在其当前的 epoch 中被证明是合理的,但其最终确定至少需要其之后的 epoch。
区块的合理性有时可以在两个或更多个时期之前最终确定区块。 Gasper 论文讨论了这些案例。 仅在高延迟、网络分区或强烈攻击的特殊时期才会出现这种情况。
6、证明:仔细观察
证明包含 LMD GHOST 投票和 FFG 投票。 最佳情况下,所有验证者每个时期提交一个证明。 一个证明有 32 个被纳入链上的机会。 这意味着验证者可以在一个时期内在链上包含两个证明。 当验证者的证明被包含在链上指定的位置时,验证者将获得最多的奖励; 后来的包容是一种递减的奖励。 为了让验证者有时间准备,他们被提前一个时期分配给委员会。 提案者仅在纪元开始后才会被分配到插槽。 尽管如此,秘密领导人选举研究的目的是减少对提议者的攻击或贿赂。
委员会允许将每个证明者的签名组合成单个聚合签名的技术优化。 当同一委员会中的验证者做出相同的 LMD GHOST 和 FFG 投票时,他们的签名可以被聚合。
7、质押奖励和惩罚
在不深入的情况下,我们将讨论有关验证者激励的六个主题:
- 证明者奖励
- 证明者处罚
- 利益相关者的典型下行风险
- 惩罚和举报人奖励
- 提议者奖励
- 不活动泄漏惩罚
验证者通过做出大多数其他验证者同意的证明(LMD GHOST 和 FFG 投票)而获得奖励。 最终区块中的证明更有价值。
另一方面,验证者会因不证明或证明未最终确定的区块而受到处罚。
在概述不太常见的惩罚和奖励之前,您可能想了解成为质押者的下行风险。 作为关心你可能损失多少 ETH 的质押者,它几乎是你能赚多少钱的一面镜子。 例如,如果验证者一年内可以从证明者奖励中赚取 10%,那么(诚实的)验证者如果做得最差,他们可能会损失 7.5%。 始终离线或始终对未最终确定的区块进行投票的验证人将受到惩罚,其金额相当于验证人因准时完成最终证明而获得的奖励金额的 3/4。 365 天的示例意味着离线几天或几周的惩罚要小得多:离线 36 天将损失约 0.75%(除非存在下面#6 中描述的不活动泄漏)。
削减的处罚范围从超过 0.5 ETH 到验证者的全部权益。 诚实、安全的验证者不会因为其他验证者的行为而受到削减。 如果犯下可削减的罪行,验证者将损失至少 1/32 的余额并被停用(“强制退出”)。 验证器将受到惩罚,就像离线了 8,192 个周期一样。 该协议还根据几乎同时被削减的其他人的数量施加额外的惩罚。 附加惩罚的基本公式为:validator_balance3fraction_of_validators_slashed。 其结果是,如果 1/3 的验证者在相似的时间内犯下了可削减的罪行,他们就会失去全部余额。 报告可削减违规行为的验证者将获得举报人奖励。
最终确定的区块的提议者将获得可观的奖励。 持续在线且表现出色的验证者会因提出具有新证明的区块而获得总奖励约 1/8 的提升。 当削减发生时,提议者还会因为将削减证据包含在区块中而获得少量奖励。 目前,举报人的奖励实际上全部归提议者所有。
以太坊是一个具有多种机制的系统,其中一些机制可以通过其整体效果来更受赞赏。 设计的奖励和惩罚最终导致不活动泄漏惩罚。 与#3 中的典型风险不同,这是严重且罕见的。 基本上,如果自最终确定以来已经存在超过四个时期,验证者将遭受不活动惩罚,该惩罚会呈二次方增加,直到检查点最终确定。 不活动惩罚(或“二次泄漏”)保证了这种类型的结果:如果 50% 的验证者离线,区块将在 18 天后再次开始最终确定。 二次泄漏将有问题的验证者强制退出,以便其他验证者将成为可以恢复最终确定性的⅔多数。 不活动泄漏不会耗尽正在最佳运行的验证器。 在不活动泄漏期间,证明者奖励为零; 验证者照常获得提议者和举报者奖励。
8、可削减的罪行
验证者有四个削减条件。 它们可以被描述为双重提案、LMD GHOST双重投票、FFG环绕投票和FFG双重投票。
双重提案是指提案者为其分配的槽提案多个区块。
类似地,LMD GHOST 双重投票是一个验证器,为分配的槽位证明两个不同的信标链头。
环绕投票是验证者投出的 FFG 投票围绕或被他们之前所做的 FFG 投票包围。 以下是基于验证者在第 5 纪元进行 FFG 投票的场景的两个示例,源为 Slot 32,目标为 Slot 128:
- 在 Epoch 6 中进行的 FFG 投票,其来源为 Slot 64,目标为 Slot 96,这将是由 Epoch 5 投票包围的 FFG 投票。
- 在 Epoch 6 中进行的 FFG 投票,源为 Slot 0,目标为 Slot 160,将围绕 Epoch 5 中的 FFG 投票进行。
FFG 双票是指验证者在同一时期为任意两个目标投 2 票 FFG 票。 这可能会在分叉期间发生。
蓝色箭头是两张 FFG 投票,一张投票给左分叉上 128 号槽位的目标区块,另一张投票给右叉上 128 号槽位的目标区块。 投票者同时投两票,就会犯下一种可严厉惩罚的罪行,称为双重投票。 上面是双重投票的示例,其中源检查点不同。
接下来是双重投票具有相同来源(Epoch 0 检查点)但目标不同的场景。
上叉有一个 Epoch 1 检查点“block 64”。 下叉有一个 Epoch 1 检查点“block 63”。 (因为下叉中的第 64 槽位没有提出区块;回想一下关于信标链检查点的部分。)投票给“区块 64”的 Epoch 1 目标和“区块 63”的 Epoch 1 目标是双重的 投票。 双重投票是指验证者在同一时期为两个目标投 FFG 票。
削减双重投票背后的一个直觉是,验证者投票给一条链,而不是两条或更多的分叉。
请注意,由于聚合方式的原因,一份证明可能看起来不止一票。 相同的证明可以出现在不同的聚合中,但它仍然是相同的证明而不是双重投票。
举报验证者需要包含冲突的投票,以证明另一个验证者应该被削减。 在大量历史记录中有效地找到冲突的投票是算法和数据结构的挑战(在结论中链接)。
验证者可以完全控制以避免被削减:它只需要记住它所签署的内容。 诚实的验证者不会因为其他验证者的行为而受到削减。 只要验证者不签署冲突的证明或提案,验证者就不会被削减。
验证者客户端可以使用多个信标节点来实现更好的正常运行时间、信任和拒绝服务保护等因素。 在这些设置中,或者在使用备份验证器客户端的情况下,用户需要小心验证器不会签署冲突的消息。
9、信标链验证器激活和生命周期
每个验证器需要 32 ETH 余额才能激活。 用户将 32 ETH 质押到以太坊主网上的存款合约中,将激活一个验证器。
信标链停用(“强制退出”)所有余额达到 16 ETH 的验证者; 质押者可能会在 2023 年提取任何剩余的验证者余额。
验证者也可以在服务 2,048 个 epoch(大约 9 天)后“自愿退出”。
在任何自愿或强制退出中,在质押者可以撤回其质押之前,都会延迟四个时期。 在这四个 epoch 内,验证者仍然可能被捕获并被削减。 诚实的验证者的余额可以在大约 27 小时内提取。 但被削减的验证器会导致 8,192 epoch(约 36 天)的延迟。
有关以太坊 2.0 第 0 阶段验证器生命周期的说明中描述了更多技术细节,包括以下流程图:
为了避免验证器集在短时间内发生较大变化,有一些机制限制一个时期内可以激活或退出的验证器数量。 例如,这使得快速激活许多验证器来攻击系统变得更加困难。
信标链使用更深入的有效余额概念,其变化频率低于验证者余额,并可实现技术优化。
10、结束语
在每个时期,验证者都会均匀地分配到各个时段,然后再细分为适当规模的委员会。 验证者只能在一个位置和一个委员会中。 集体:
一个 epoch 中的所有验证者都尝试最终确定相同的检查点:FFG 投票
分配给一个槽的所有验证者都尝试对同一个信标链头进行投票:LMD GHOST 投票
最佳行为对验证者的奖励最多。
信标链于 2020 年 12 月 1 日诞生,拥有 21,063 名验证者。 验证者的数量可能会随着削减或自愿退出而减少,或者质押者可以激活更多。 接近 2 年,验证者数量已超过 40 万。
世界上以前从未有过用于去中心化系统和应用程序的可扩展平台。 如果你想更深入地了解,以太坊权益证明共识规范中提供了权威参考。 它包括信标链规范、其他关键资源的链接以及赏金问题。
原文链接:The Beacon Chain Ethereum 2.0 explainer you need to read first
DefiPlot翻译整理,转载请标明出处