“ 波卡知识图谱 ” 是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识, 今天是该栏目的第 10 期,详细解释波卡上的 Staking 是怎样的以及它是怎么运转。
什么是 Staking?
最早的区块链,比特币以 PoW 共识机制的方式,让我们感受到了区块链独特的魅力,然而随着区块链的不断发展,越来越多的开发者觉得 PoW 共识机制效率太低,并且耗能很多。为了在同样能够让整个区块链网络达成共识的前提下,又不再有 PoW 共识机制的效率和性能等问题,于是一些开发者便发明了新的共识机制来替代 PoW,而这个机制就是权益证明 PoS。
简单来说,权益证明 PoS 是根据在节点中持有加密货币的数量来选择验证者,既可以由验证者自己质押,也可以是由其他的用户委托节点进行质押。
Staking 就是加密货币持有者通过投票、委托、锁定通证等一系列质押的行为获得系统奖励。
波卡的 Staking 机制是怎样的
1
Staking
波卡是使用一种自创的新型 PoS 机制——NPoS (提名权益证明机制)作为其选择验证者的机制。它设计了验证者和提名者两个角色,最大限度地提高链的安全性。对维护网络感兴趣的参与者可以运行验证者节点。
该机制鼓励 DOT 持有人作为提名者参与。提名者最多可以支持 16 个验证者作为受信任的验证者候选人。
验证者承担着在 BABE (波卡的其中一种共识机制)中生成新区块、验证平行链区块并保证最终结果的角色。提名人可以选择用他们的 DOT 来质押以支持选定的验证者。
不同于一般的 PoS 是质押的越多收获的奖励也越多,波卡为了防止一般 PoS 机制所带来的强者恒强的马太效应,所设计出来的 NPoS 共识机制向所有验证者支付的奖励都是同等的。一个验证者拥有更多的质押量并不影响其获得的区块奖励的数量。然而,奖励的计算有一个概率成分(将在下面讨论),所以在一个特定的时期(era),所有验证者的奖励可能不完全相同。
在扣除验证者自己的部分后,奖励按比例分配给所有提名者。通过这种方式,网络会鼓励其他提名者质押到提名者较少的验证者,从而创造平等质押的验证者集合。
波卡上的 Staking 是怎么运转的
1
确定角色
在 Staking 中,你既可以是提名者,也可以是验证者。
作为提名者,你可以提名你信任的验证者候选人,以帮助你获得链上 DOT 奖励。你可以查看提名者指南以及验证者指南,从而帮助你了解提名者的职责和验证者需要进行什么操作。
2
提名阶段
所有对验证者感兴趣的节点都可以表明他们希望成为验证者候选人的意愿。他们的候选资人资格将向所有提名者公开,而提名者则将提交一份所支持的候选人名单。在下一个 era (持续几个小时),拥有最多 DOT 支持的一定数量的验证者被选中并激活。
这里对 DOT 持有人成为提名者并没有特别的要求,但我们希望每个提名人都能仔细跟踪他们所支持的验证者的表现和声誉。提名不是一个“设定好就忘了”的操作。
一旦提名阶段结束,NPoS 选举机制将会输入提名者以及他们的相关投票,并输出一组验证者。这个“选举方案”必须满足特定的需求,如最大限度地提高提名验证者的质押量,并尽可能均匀地分配支持验证者的质押量。这种选举机制目的在于提高网络的安全性,确保提名者的公平代表性。如果你想了解更多关于 NPoS 的工作原理。(例如选举,运行时间复杂度等),请阅读这里。( http://research.web3.foundation/en/latest/polkadot/NPoS.html )
3
Staking 奖励的分配
想要知道奖励是如何分配给验证者和提名者的,我们首先需要了解验证者池。验证者池由一个当选的验证者和支持它的提名者组成。
如果一个提名者 n 支持多个当选的验证者,比如说 k 个验证者,NPoS 选举机制会把 n 的质押量分成 s_1, s_2, ..., s_k,这样就会使支持验证者 i 时质押量为 s_i。在这种情况下,提名者 n 得到的奖励,与当另一个验证者池里的 k 个提名者,每个提名者支持验证者 i 的 stake 均为 s_i 时的情况基本相同。
对于每个验证者池,都保留着一个带有相关 stake 的提名者列表。
对验证者池的奖励的一般规则是,两个验证者池在同等工作的情况下得到的 DOT 数量相同,也就是说,每个池并不是按质押比例进行进行支付。质押奖励是有概率存在的,比如以代积分和小费的形式进行奖励,但随着时间的推移,这些奖励将趋于平均。
在验证者池中,奖励首先是(可设置)百分比用于支付验证者的佣金费用,其余部分按比例(即与质押成比例)支付给提名者和验证者。请注意,该验证者会得到两次奖励:一次是验证者的佣金奖励(如果他们的佣金率高于 0%),另一次是通过质押提名自己的奖励。如果验证者的佣金被设置为 100%,则不会向验证者池中的任何提名者支付代币。
为了估算通货膨胀率以及作为提名者或验证者每月可以获得多少代币,你可以使用这个工具( https://www.stakingrewards.com/earn/polkadot/calculate )作为参考,其通过改变一些参数(例如,你想用你的 DOT 质押多少天,总供应量,佣金等)达到一个更准确的估量。由于 Staking 参与是动态变化的,它可能不是完全准确的,但它作为一个指标有非常好的效果。
4
奖励机制
我们重点强调这个支付方案的两个特点:首先,由于验证者池的奖励相同,因此质押较少的池通常会比质押较多的池向提名者支付更多的奖励。
因此,我们为提名者提供一种经济激励,使提名者逐渐将自己的偏好转向那些获得高声誉却被质押少的验证者。这样做的原因是,我们希望验证者池中的质押尽可能的平均分配,以避免权力集中在少数验证者手中。
从长远来看,我们希望所有的验证者池的质押大致相等,信誉越高的验证者拥有更多的质押(这意味着愿意冒更多风险支持信誉较低的验证者的提名者将获得更多的奖励)。
下面的例子应该可以说明上述情况。为简单起见,我们有以下假设 :
-
这些验证者没有进行自抵押
-
他们每个人都收到相同数量的代积分
-
没有任何处理交易的提示
-
他们不收取任何佣金。
-
奖励总金额为 100 个 DOT 代币
-
目前,成为验证者的最低 DOT 数额是 350 (注意,这不是实际价值,它是波动的,只是为了这个例子的目的而做的假设;要了解实际价值是如何计算的,请参考这里)。
两个验证器池 A 和 B 都有 4 个提名者,总权益分别为 600DOT 和 400DOT。
基于以上的奖励分配原则,由于池 A 拥有更多的总质押数,验证者池 B 中的提名者在每 DOT 比池 A 中的提名者获得更多的奖励。Sam 在 A 池质押了 50DOT,但他只获得 8.3DOT 的回报,而 Kitty 在同样的质押下获得 12.5DOT 的回报。
在奖励方面还有一个额外的因素需要考虑。虽然验证者对提名者的数量没有限制,但验证者对它可以支付奖励的提名者的数量是有限制的。
在 Polkadot 和 Kusama 中,这个限制目前是{{polkadotmax_nominators}},尽管这可以通过运行时升级进行修改。超过 256 个提名者的验证者被认为是超额认购。当奖励发放时,只有排名前 256 位的提名者(按分配给验证者的权益数量衡量)将获得奖励。而其他的提名者本质上都是在“浪费”他们的权益——他们用他们的提名将其选为验证者,却没有得到任何回报。
我们还注意到,当验证者出现不良行为(例如,验证者离线,验证区块无效等)时,网络将对验证者按照固定的百分比(而非固定的 DOT 值)做出 Slash 惩罚。这意味着持有更多权益的验证者池将损失更多的 DOT。同样,这样做是为了给提名者提供一种经济激励,来改变他们的偏好,支持那些他们认为值得信任却不那么受欢迎的验证者。
需要注意的第二点是,每个验证者候选人均可自由设定佣金(以奖励百分比的形式)以弥补运行成本。由于各验证者池的奖励相同,因此佣金较低的池比佣金较高的池支付给提名者的报酬更高。因此,所有验证者均可自由选择是提高佣金获得更多 DOT,还是降低佣金吸引更多提名者、增加当选的机会。从长远来看,我们希望所有验证者都具有成本效益以维持其竞争力,同时声誉好的验证者可以收取略高的佣金(这一点十分公平)。
后记
Staking 不仅可以维护网络安全,还可以获取网络扩张中的收益,而 Staking 正是促进公链生态繁荣的关键,能促进用户与开发者对网络的忠诚度。同时,NPoS 证明与 Staking 也是相辅相成的,与工作量证明(PoW)以及权益证明(PoS)相比,它都有明显的优势,在保持高水平的安全性的同时,也保证了整个网络高效的操作性。下一期就为大家详细介绍 NPoS 机制是如何运作的?
往
期
推
荐
01 期:Gavin Wood 与波卡的故事
02 期:波卡有什么样的架构
03 期:波卡与元协议究竟有什么关系?
04 期:波卡的跨链网络效应是什么?
05 期:波卡与 Web3.0 的渊源
06 期:波卡能加速区块链行业的发展?
07 期:一个例子讲波卡平行链的综合知识
08 期:波
卡的跨链是如何实现的?
09 期:关于 DOT 通证的几大基础知识
鉴于波卡生态项目层出不穷,但其中劣质项目,骗局项目充斥其中,值得警惕,而另一方面只在波卡项目方的群又很难了解到波卡整个生态发展的全貌,错失许多机会。所以,我们 决定建立一个波卡生态群,可以开放式地讨论所有波卡生态项目,大家可以客观的分享对各个项目的观点,了解波卡各个项目的发展情况,又可以互通信息共同把握机会 。