验证人
介绍
Crust网络中链上节点分为验证人和候选人。验证人是每个ERA由从候选人中按有效质押量选举产生,是Crust网络中验证交易并生成区块的节点,维护着整个Crust网络的安全。
在Crust网络的GPoS(Guranteed Proof of Stake)共识中,验证人节点可以获得Staking奖励以及区块生成奖励。
验证人的奖励和惩罚
1. 奖励
验证人的奖励分为两个部分:出块奖励和质押奖励,总体来讲,验证人(Validator,参与出块者)会获得出块和质押双重奖励;候选人(Candidate,不参与出块者)会获得质押奖励。
1.1 出块奖励
出块奖励是指参与Crust网络出块和打包交易的验证人(Validator)获得的收益,出块收益与得分相关。出块由Babe算法随机为每个区块选择一个验证人进行出块,通常情况下每个验证人的出块得分是大致平均的。如果验证人没有出块得分,请检查Owner机器的链运行情况,无出块得分意味着无出块奖励。
主网中,每个Era(6个小时),会产生 CRU的总出块收益,并且每365.25天衰减。衰减规则参考Crust 经济白皮书。而其中每个出块验证人每个Era获得的出块奖励为:
出块收益 = 总出块收益 * 得分比率(个人得分/总得分)
验证人每个era会重新进行一轮选举,会从所有候选人和验证人中选出下一个Era的出块验证人,选举的规则为:
按照有效质押(Effective Staking)的从高到低进行选举
1.2 质押奖励
质押奖励是指拥有存储量的验证人(Validator)或候选人(Candidate)通过质押CRU获得收益,质押收益与下列几个因素有关:
- 质押上限(Stake Limit):质押上限决定了你能够质押的CRU上限值,其与你提供的存储量直接相关,1TB的SRD(在术语表中查看SRD的释意)文件对应上限值为1CRU,而有意义文件是SRD上限值的1-10倍,具体变化的数值与有意义文件的副本数相关,具体参考DSM指南;
- 有效质押(Effective Stake):有效质押是真正产生收益的质押量,其与你质押上限和别人对你进行担保CRU的量有关,具体下列会举例说明;
- 担保费率(Guarantee fee):给担保人的分成比例,这个值越大,担保人收益分成越高。但是,更高的担保费率并不意味着更高的担保收益,任一担保人的担保收益需要综合考虑有效质押以及自身的质押金额。
如果一个验证人获取到1000 CRU的Staking收益,并且如果他自身投入的质押金额占总质押金额的90%(另外10%为担保人的投入)。如果该验证人设置的担保费为30%, 则最终担保人将一共获取到 1000 * 10% * 30% = 30 个CRU的收益,剩余970 CRU归节点所有。
如果节点调整自己的担保费,则在调整后的第一个Era,其担保费会被设定为100%,这意味着节点除自身有效质押以外的所有收益都将分配给担保人。一个Era之后,担保费恢复为节点设置的值。
每个验证人/候选人每个Era获得的质押奖励为:
验证人的总质押量 = 自身质押量 + 担保量
验证人有效质押量 = MIN(质押上限,总质押) * (自身质押量 / 验证人总质押量)
担保人有效质押量 = MIN(质押上限,总质押)* (担保量 / 验证人总质押量)
验证人收益 = 总质押收益 * 验证人的有效质押量 / 全网有效质押量 + 总质押收益 * 担保人有效质押量 / 全网有效质押量 * (1 - 担保费率)
下列以一个场景进行举例说明: 假如节点A质押了1000 CRU,并被担保了200 CRU,而其质押上限为1000 CRU,设置的担保费为30%,假设每轮产生质押收益为600 CRU,假如全网有效质押量为2000,那么可以算出每个Era的收益为:
- 验证人的有效质押 = 最小值(1000, 1200)*(1000 / 1200) = 1000 * (1000 / 1200) = 833.3 CRU
- 担保人的有效质押 = 最小值(1000,1200)* (200 / 1200)= 1000 * (200 / 1200) = 166.66 CRU
- 验证人收益 = 600 * (833.3 / 2000) + 600 * (166.66 / 2000) * 70% = 285 CRU
1.3 验证人如何获得奖励
验证人的出块和质押奖励不能被直接领取和转账,而是会进入绑定状态,增加到成为验证人下一个Era的质押金中(验证人账户绑定的金额都是质押给自己的)。如果您想让您的奖励变成“可转账”的状态,您需要执行如下操作:
- 对您绑定的资金进行减少绑定操作,减绑的数额为您想要提现的数额;
- 等待28天锁定期后,您可以点击下图的“锁型”按钮,提取奖励;
2. 罚没
只有验证人(出块人),真正打包区块和交易的节点会被罚没,需要注意的是
- 罚没触发条件
- 每个Session(1小时)结束时会判断验证人是否掉线,当检测到验证人掉线时,会触发惩罚机制,开始惩罚数额的计算
- 每次产生区块的时候,会对区块的打包人(作者)进行双花检测,如果检测到在同样的块高,试图产生两个不同区块的时候,会对其产生罚没
- 罚没结果
抵押的CRU会被按照惩罚比率扣除,自身会被移除验证人身份,并且在处于罚没的验证人,在被罚没之前被担保的部分会丢失。
- 罚没比率
惩罚金额为在一个SlashingSpan中发生的最大的惩罚比例乘以验证人自身有效质押量。
罚没比率 = min((3 * (k - (n / 10 + 1))) / n, 1) * 0.07
其中k是全网era掉线人数,n是整体验证人(出块人)的数目。10%以内的掉线人数不会触发实际的惩罚,最终会线性爬升到最大值7%。当三分之一的验证人掉线时惩罚比例约等于5%。
- 罚没的实际扣钱时间
罚没不会立即发,发生时间会延迟108个Era(27天)后扣钱。未实际发生的惩罚可以被取消(通过民主模块进行申请)。
如何成为验证人
要成为Crust网络的验证人,您需要准备一定的存储资源、优质的网络并部署节点。具体请查看验证人指南。