跳转至主要内容
Change page

认证

页面最后更新: 2025年10月21日

验证者需要在每个时段创建、签名和广播认证。 本页面概述了这些认证是什么样的,以及他们是如何被处理和如何在共识客户端交流的。

什么是认证?

每个(6.4 分钟)验证者都会向网络提议一个认证。 这个认证是针对时段中的一个特定时隙。 认证的目的是投票赞成验证者对于链的看法,特别是最近的合理区块和当前时段的第一个区块(被称为 sourcetarget 检查点)。 所有参与的验证者的信息都会合并,使得网络可以达成关于区块链状态的共识。

认证包含以下组成部分:

  • aggregation_bits:验证者的位列表,其位置映射到验证者在其委员会中的索引;值 (0/1) 表示验证者是否签署了 data(即验证者是否处于活跃状态并同意区块提议者)。
  • data:与认证相关的细节,如下文所定义。
  • signature:聚合了各个验证者签名的 BLS 签名。

进行认证的验证者的首要任务是构建 datadata 包含以下信息:

  • slot:认证引用的时隙编号。
  • index:一个数字,用于识别在给定的时隙中,验证者所属的委员会。
  • beacon_block_root:验证者在链的头部所见区块(应用分叉选择算法的结果)的根哈希。
  • source:最终确定性投票的一部分,表示验证者所见的最近合理区块。
  • target:最终确定性投票的一部分,表示验证者所见的当前时段的第一个区块。

一旦构建好 data,验证者就可以将 aggregation_bits 中与其验证者索引对应的位从 0 翻转为 1,表示其已参与。

最终,验证者签名认证并且在网络进行广播。

聚合的认证

对于验证者来说,在网络传递此数据需要大量的开销。 因此,在更加广泛地广播前,个人验证者的认证会在子网内进行聚合。 这包括将签名聚合在一起,以便广播的认证包含共识 data 和一个由所有同意该 data 的验证者的签名组合而成的单一签名。 这可以使用 aggregation_bits 进行检查,因为它提供了委员会中每个验证者的索引(其 ID 在 data 中提供),可用于查询单个签名。

在每个时段,每个子网中会有 16 个验证者被选为聚合者。 聚合者会收集他们在 gossip 网络上听到的、与他们自己的 data 等效的所有认证。 每个匹配认证的发送者都记录在 aggregation_bits 中。 然后聚合者将聚合的认证广播到更广泛的网络上。

当一个验证者被选为区块提议者时,他们打包从子网到新区块最新时隙的聚合认证。

认证纳入生命周期

  1. 生成
  2. 传播
  3. 聚合
  4. 传播
  5. 纳入

认证的生命周期在下面的示意图中概述:

认证生命周期

奖励

验证者提交认证将获得奖励。 认证奖励决于参与标志(来源、目标和头)、基础奖励和参与率。

每个参与标志都可以为真 (true) 或假 (false),这取决于提交的认证及其纳入延迟。

最佳情况是全部三个标志都为真 (true),此时对于每个正确标志,验证者将获得:

奖励 += 基础奖励 * 标志权重 * 标志认证率 / 64

标志认证率使用给定标志的所有认证验证者的有效余额之和与总活跃有效余额相比较得出。

基础奖励

基础奖励根据证明验证者的数量及其有效质押以太币余额来计算:

基础奖励 = 验证者有效余额 x 2^6 / SQRT(所有活跃验证者的有效余额)

纳入延迟

在验证者对链的头部(区块 n)投票时,区块 n+1 尚未被提议。 因此,认证自然会在一个区块之后被纳入,所以所有投票支持 区块 n 成为链头的认证都会被纳入 区块 n+1纳入延迟为 1。 如果纳入延迟加倍到两个时隙,那么认证奖励将减半,因为认证奖励等于基础奖励乘以纳入延迟的倒数。

认证场景

缺失投票验证者

验证者最多有 1 个时段来提交他们的认证。 如果在时段 0 缺失了认证,那就可以在时段 1 中提交并且附带纳入延迟。

缺失聚合器

每个时段总共有 16 个聚合者。 此外,随机验证者会订阅两个子网,为期 256 个时段,在聚合器缺失时充当备份。

缺失区块提议者

请注意,在某些情况下,幸运的聚合者可能也会成为区块提议者。 如果因为区块提议者缺失导致认证没有被包含,下一个区块提议者会捡起聚合的认证并将其包含到下一个区块中。 但是,纳入延迟会增加 1。

扩展阅读{#further-reading}

你还知道哪些对你有帮助的社区资源? 请编辑本页面并添加进来!

本文对你有帮助吗?