概述
验证者是在 Crust Network 中验证交易并生成区块的节点,同时也维护着 Crust Network 的安全。在 Crust Network 的 GPoS(Guaranteed Proof of Stake)共识下,验证者节点通过 Staking 和区块生成获得奖励。
验证者的奖励和斜线
目前,Crust Network 处于预览网络阶段——Maxwell。因此,以下奖励和惩罚规范仅涉及与 Maxwell 相关的规则和参数。
1.奖励
验证者的奖励由两部分组成:创作奖励和质押奖励。通常,验证者将同时获得创作和质押奖励,而候选人仅获得质押奖励。
创作奖励是验证者在 Crust Network 中参与区块生成和交易打包所获得的收入。收入与赌注有关。
在 Maxwell 中,每个 Era(6 小时)产生 150 个 CRU 的总创作奖励,每 90 天减半。每个 Era 中每个验证者的创作奖励计算如下:
authoring_rewards = total_authoring_rewards * point_ratio (individual_points / total_points)
每个时代都会进行新一轮的验证人选举,从所有候选人和验证人中选出该时代的下一个验证人。选举规则如下:
Electing from high to low according to effective stake
Staking 奖励是指持有存储资源的验证者或候选人通过 Staking CRU 获得收益。Staking收益与以下因素有关:
- Stake Limit:Stake Limit 决定了验证人对 CRU 有效质押的上限,与验证人提供的存储量直接相关。在Maxwell中,1TB的SRD文件对应1CRU的上限,有意义的文件对应SRD上限的1-5倍,具体的“次数”与有意义文件的重复次数有关。详情请参阅帝斯曼指南;
- Effective Stake: Effective Stake 是实际产生收益的 Staking 数量,与被担保的验证者的Stake限额有关。稍后将提供一个示例。
- 担保费:担保费是股份与担保人的比例。值越大,保证人的收入越高。
Validator 或 Candidator 调整自己的担保费时,调整后的第一个 Era 的担保费将强制设为 100%,即节点除自身有效权益外的所有收入都将分配给担保人. 一个 Era 之后,担保费将恢复为验证者/候选人设定的值。
例如,如果验证者在一个时代获得 900 个 CRU staking 奖励和 100 个 CRU 区块生成奖励,并且如果他的 self staking 占其总 staking 的 90%(其余 10% 由担保人贡献)。如果担保费为 95%,那么担保人最终获得 (900 + 100) * 10% * 95% = 95 个 CRU 的收入,剩下的 905 个 CRU 归验证人所有。
奖励具体如何分配?首先,在 Maxwell,每个 Era(6 小时)将产生 600 个 CRU 的质押奖励,每 90 天减半。验证者和候选人获得的收入按以下步骤计算:
validator_total_staking_amount = self_staking_amount + guarantee_amount
validator_effective_staking_amount = MIN (stake_limit, validator_total_staking_amount) * (self_staking_amount / validator_total_staking_amount)
guarantor_effective_staking_amount = MIN (staking_limit, validator_total_staking_amount) * (guarantee_amount / validator_total_staking_amount)
validator_rewards = total_staking_rewards * validator_effective_staking_amount / total_effective_staking_amount + total_staking_rewards * guarantor_effective_staking_amount / total_effective_staking_amount * (1 - guarantee_fee)
下面是一个例子:
如果节点 A 自己抵押了 1000 个 CRU,并保证了 200 个 CRU。质押上限为1000个CRU,担保费设定为95%,每轮产生的质押收益为600个CRU。假设网络的有效质押量为2000个CRU,我们可以计算出每个Era的收益:
- 验证人有效质押量 = MIN(1000, 1200)*(1000 / 1200) = 1000 * (1000 / 1200) = 833.3 CRU
- 担保人有效质押金额=MIN(1000,1200)*(200/1200)=1000*(200/1200)=166.66CRU
- 验证者的奖励 = 600 * (833.3 / 2000) + 600 * (166.66 / 2000) * 5% = 252.49
2. 斜线
只有验证器(块生成器)和实际打包块和交易的节点才会被削减。应当指出的是:
- 斜线的条件
- 在每个会话(10 分钟)结束时,将执行检查以检测验证器是否离线。一旦发现验证者下线,将触发slash机制计算slashing数量;
- 每次生成一个区块时,都会在双重创作时检查该区块的打包者(区块作者)。如果检测到打包者试图从相同的块高度生成两个不同的块,则会对其施加斜线。
- 斜线的后果
质押的 CRU 将根据斜线比例扣除,验证者本人将被取消权利。处于slash状态的验证者在被slash之前会失去保证的部分。
- 斜线比例
slashing 金额是 SlashingSpan 中出现的最大slash 比率乘以验证者的有效投票数:
slash_ratio = min((3 * (k - (n / 10 + 1))) / n, 1) * 0.07
其中k 是离线验证器的数量,n 是验证器的总数(用于块创作)。10% 的离线触发 0% 的斜线,但是可以线性上升到 7% 的最大值。当三分之一的验证者离线时,斜线比例约为 5%。
- 斜线扣分时间点
斜线不会立即发生,而是在 28 纪元(7 天)之后延迟扣除。可以取消实际上没有发生的斜线(通过财政部适用)。
成为验证者
成为 Crust Network 的验证者需要有一定数量的存储资源、高质量的网络以及配置好的节点。
目前,您可以加入 Maxwell 成为验证者。具体请参考Maxwell Overview 中对验证器(节点)的描述。