我们知道,我们需要三分之二以上的验证者才能正确遵守协议。但是究竟有多少个验证者?他们是如何选择的?他们为什么要遵守规则?
为了使验证者知道一个区块具有超过三分之二的协议,GRANDPA需要知道总共有多少个验证者。该链的治理流程设置(并可以更改)数量,但目标是至少有1,000个验证者在Polkadot中运行BABE和GRANDPA。
一旦知道集合中将有多少个验证者,我们将举办一次选举来决定谁成为验证者。
就像BABE将时间拆分为周期循环一样,GRANDPA也将时间拆分为各个周期。在每个周期结束时,都会奖励过去的周期,并为下一个周期进行选举。周期计划长约24小时。
Polkadot使用提名的股权证明(NPoS)来选择验证人,并使用Phragmen的方法来进行选举。简介部分讨论了权益证明网络中的安全性与风险价值有关。用户通过锁定资金(称为押注)来表明其参与网络安全的意图。
虽然验证者的数量是有限的,但是可以通过抵押参与网络安全性的人数却没有。如果您不是验证者,则仍可以通过提名参加。提名者质押他们的代币,然后选择16个值得信赖的验证者作为自己的代表。提名人能享受他们所支持的验证者的报酬,同时也会连带受到惩罚。
Polkadot的一个功能性目标是形成一个均匀质押的验证者集。奖励是支付的依据绩效而不是股权,因此提名者如果支持一些小的验证者,有概率可以获得更高的回报率。
我们使用Phragmen方法优化了股权分配。在选举之前,有一个希望成为验证者的清单列表。每个验证者都有一个潜在提名者列表。Phragmen方法将首先通过找出将带来最大风险的组合来选择赢家。一旦它知道了提名集,它就会以这种方式来申请提名,这种方式会使提名集得到最均衡的下注。这样的结果将为网络带来最高的安全性,并为提名人带来最大的回报。
奖励是人们在网络上运行验证者的主要激励因素。如第2部分和第3部分所述,验证者运行BABE和GRANDPA协议来创建和完成Polkadot区块链。
与其他权益证明协议不同,Polkadot会根据验证者的行为而不是根据每个验证者的押金来确定奖励。验证者根据他们的活动累积积分。积分分配主要根据有效性声明和生成常规链中。还有一些积分是为没有在常规链中的终止的区块发行的。
当大家明确了一个周期内总积分的量后,也只有到一个周期结束之后才能转换为相应的代币价值。在一个周期内奖励分配是根据验证者所拥有的积分在总周期积分内的占比。之后再将奖励分配给每个验证者的提名者。
遵循奖励制度相对容易。通过运行标准客户端并具有高可用性网络体系结构,验证者将能够正确遵循协议并获得积分。
奖励提供了押注的原因,但是网络协议必须确保押注者遵守规则。削减代币是对不遵守协议的惩罚。为了防止被攻击,网络的安全性要求对尝试攻击的惩罚如此之大。
违规的范围从显性的懒散到直接欺骗。验证者的最基本要求是在线可用。验证者通过创建区块或向网络发送情感消息来证明其可用。因脱机而被惩罚的概率非常低,因为每个系统都会在合理范围内经历周期性的停机时间。
但是只要验证者合理关注其基础结构配置,停机时间就应该是很少见的事件,惩罚很小且很容易恢复。
更严重的违规行为被认为是模棱两可。在BABE和GRANDPA中都可能发生模棱两可的情况。在BABE中,模棱两可在同一个插槽中生成两个区块。
在GRANDPA中,则会为同一回合中相互冲突的两条链发送预投票或预传递信息。模棱两可往往伴随着严重的惩罚。如果有过多模棱两可验证者,则不可能选择单个规范的链。
某些违规行为可能会被削减100%的押注金额。在极端情况下会发生这些操作,例如对与已经确定的链冲突的链进行预投票或预提交。网络认为这种行为是攻击,因为它试图逆转已确定的区块。
您可能已经注意到奖励与单个验证者的股份数无关,因此如果有足够的代币来运行两个验证程序,则奖励亦有可能会加倍。
这种行为是值得鼓励的。我们期望单个对象(无论是大量代币持有者还是作为服务提供者)将运行多个验证器。Polkadot无法采取任何措施来阻止某些实体获取大量股份并运行验证程序。为了防止单个实体获得过多的权力,Polkadot可以让他们在尝试做破坏时增加其风险值。
Polkadot使用超线性削减机制。随着实质犯罪的验证者的数量增加,代币削减的百分比也增加。如果单个验证者模棱两可,则可能是由于基础设施设置不佳所致。但如果30%的验证者在一轮中模棱两可,则更有可能是协同攻击并进而会加大惩罚力度。
随着更多验证者的模棱两可,惩罚严厉的程度越来越高。当超过33%的验证人模棱两可时(此事件将使网络中断),违规者将被代币惩罚力度将至100%。
当单个实体向网络添加更多验证器时,它将必须确保验证器不相互依赖或任何集中式服务。
权益证明网络中的安全性基于经济学,因为世界上的经济价值是有限的,所以世界上存在的安全性也是有限的。由于单链扩展问题导致的区块链数量增加时,其经济价值和安全性分散在多条链上,每条链的价值都更加分散。
在诸如以太坊虚拟机之类的共享执行环境中执行的智能合约可以无信任地进行交互。使用Polkadot,可以将逻辑接口从区块链中的单个执行环境转移到了区块链的逻辑本身。
但是,当考虑如何在打破信任界限的同时使链进行交互时,必须意识到信任不是来自在同一环境中执行。信任来自在相同的经济和国家过渡保证下运作。
Polkadot引入了一种共享链与链之间进行交互的安全模型,同时充分了解信息交互链具有与自己相同的安全保证。
基于网桥的解决方案(每个链条都处理自己的安全性)迫使接收者信任发送者。Polkadot的安全模型为跨链消息传递提供了必要的安全保证,而不必去确认信息发送链自身的安全状况。
中继链区块主要包含来自平行链的有效性证明,这意味着当中继链验证平行链的状态转换,表明中继链和平行链的状态都是固定的。要还原平行链的区块,攻击者必须还原整个Polkadot系统,包括增加每个单独的平行链和安全化竞争。
这种通过在中继链共享安全性的系统,甚至不需要平行链提供自己的安全性和验证者群体的安全性。Polkadot的中继链提供了这种经济保证,因此Polkadot生态系统中的链可以专注于发展其应用的逻辑。
要了解有关Polkadot的共识和经济学的更多信息,请访问Polkadot Wiki。
原文链接:https://polkadot.network/polkadotconsensus-part-4-security/
翻译:Mike
编辑:Mike