科普 | 定义 Eth2.0 中的验证者质量
作者 | Jim McDonald
我们 Attestant 是非托管型的 ETH 2.0 质押服务,既能为客户资金提供更高的安全性,又能利用先进的验证策略来获取比传统验证基础设施更高的收益。衡量收益的方法之一是,追踪 ETH 2.0 区块链上见证消息的生成和上链情况。这是一大关键指标,因为见证消息越早上链,收益就越高。本文将介绍 Attestant 是如何单独或综合计算见证有效性的。
见证消息
见证消息(attestation)是验证者对 ETH 2.0 区块链当前状态的投票。每个激活状态的验证者都会在每个 epoch (时段)(约长 6.5 分钟)创建见证消息。见证消息包含以下部分:
其中比较有趣的部分是链首投票(chain head vote),即,验证者在创建这条见证消息时认为哪个区块是链上最新的有效区块。链首投票的结构如下所示:
- 图 2 :链首投票结构 -
图中的 slot (时隙)定义了验证者认为当前区块链的链首所在位置(所在高度) ,Hash(哈希)定义了验证者认为的链首区块。二者共同定义了区块链上的一个点。有了足够多的投票,网络就可以就区块链的状态达成共识。
虽然一条见证消息的数据量比较小,但是验证者有数万名 , 数据量很快就会积少成多。由于这些数据将永远存储在区块链上,减少数据量非常重要。这是通过一个被称为 “聚合(aggregation)” 的过程实现的。
聚合就是将多条 committee(委员会)、chain head vote(链首投票)、finality vote(终局性投票)都相同的见证消息(译者注:即同一委员会中作了相同的链首投票和终局性投票的见证消息) 合并成一个 聚合见证消息 ( aggregate attestation ):
- 图 3 :聚合见证消息的结构 -
聚合见证消息与单个见证消息存在两点差异。首先,前者有多个验证者。其次,聚合签名是由单个见证消息的签名合并生成的。聚合见证消息的存储效率很高,但是会增加通信和计算方面的负担(详见下文)。
如果我们强制要求每个验证者将所有见证消息聚合起来,那么将每个见证消息传给每个验证者所需的通信量很快就会导致网络过载。同样地,如果聚合只是可选项,那么验证者就不会浪费自己的资源这么做。因此,网络会选择一组验证者来负责进行聚合 1 。出于利益考虑,验证者会认真履行职责,因为包含较多验证者的聚合见证消息更有可能被添加到区块链上,验证者就更有可能获得奖励。
执行这一聚合过程的验证者就是 聚合者(aggregator) 。
见证奖励的变化情况
ETH 2.0 在为验证者计算见证奖励时采用了 打包距离( inclusion distance ) 这一指标。打包距离指的是见证消息生成时所处的 slot 与该见证消息被打包到区块时所处的 slot 之差。例如,在 slot s 生成的见证消息在 slot s+1 被打包到区块中,这时打包距离就是 1 。如果见证消息在 slot s+5 被打包到区块中,这时打包距离就是 5 。
在 ETH 2.0 网络中,见证消息的价值取决于打包距离,打包距离越小越好。这是因为越早上链的信息越有用。
为体现见证消息的相对价值,验证者所获得的见证奖励会随打包距离的增大而减少。具体来说,见证奖励会乘以 1/d (d 为打包距离)。
- 图 4 :见证消息与打包距离之间存在函数关系 -
见证消息的打包过程
见证消息是如何打包到 ETH 2.0 区块链上的?其过程如下 2 :
每个参与见证的验证者都会使用其所拥有的链状态的相关数据生成见证消息; 见证消息会通过 ETH 2.0 网络广播给相关聚合者; 每个聚合者在收到见证消息后都会将它与其它具有相同声明的见证消息聚合起来; 聚合见证消息会通过 ETH 2.0 网络广播至所有节点; 只要是没有在链上看见该聚合见证消息的区块提议者都可以将其打包到区块中。
见证消息生成延迟
见证消息广播延迟
聚合见证消息生成延迟
聚合见证消息广播延迟
区块生成失败
恶意行为
计算见证消息有效性
聚合见证消息有效性
总结
验证者组合中的成员每过几分钟就会改变,因此所有验证者共同负担聚合成本。 这是经过简化的见证流程,但是出于本文的目的而言,这个流程是准确的。 显然,除了那些验证者自己生成的数据。
原文链接:
https://www.attestant.io/posts/defining-attestation-effectiveness/