查看原文
其他

波卡的 NPoS 机制是如何运作的?

Alfonso Cevallos PolkaWorld 2020-11-11

加入 www.polkaworld.org 社区,共建 Web 3.0!


Polkadot 区块链将实施提名权益证明(NPoS)机制,这是一种相对较新的方案,用于选择参与共识协议的验证节点。在这篇文章中,我们会对 NPoS 做一个介绍,并对 Web3 基金会的研究做一个回顾。我们还解释了验证节点被选中的特殊方式。那么 NPoS 在波卡中是如何运作的呢?



验证人和提名人


每天有几次,系统会选择出一组被成为验证人的实体,他们在接下来的几个小时内,将在高度敏感的协议中扮演关键角色,比如区块的生产和最终验证。他们的工作要求很高,因为他们需要运行成本高昂的操作,确保高通信响应能力,并建立长期的可靠性声誉。他们还必须将自己的 DOTs( Polkadot 的代币)进行质押作为良好行为的保证,当他们偏离协议时,这个质押就会被惩罚掉。相反,当他们按规则行事时,他们会得到奖励。任何完成任务的节点都可以公开地成为候选的验证节点。但是,由于操作上的原因,最终只能选择有限的验证人,我们预计是数百或数千个。


该系统还鼓励任何 DOT 持有人作为提名人进行参与。提名人公布了一份他信任的候选人名单,并把一定数量的 DOT 进行质押来支持他们。如果这些候选人中的一些人被选为验证人,他将按根据质押的数量占比来得到相应的利益回报。与验证人不同的是,提名人没有数量的限制。只要提名人去选择,并且只支持具有良好安全实践的候选验证人,那他的风险就很低,并且有持续的收入来源。Polkadot 网络中还有其他一些特殊的角色,但我们只关注这两个角色之间的关系。



NPoS 机制


这种提名人-验证人的设计有非常强大的安全保证。它允许系统选择总质押较大的验证节点(远远高于任何一组人的 DOT 持有量),并淘汰质押总数比较低的候选人。事实上,在任何一个特定的时刻,我们都希望有比较大的一部分 DOT 被质押在 NPoS 中。这会使敌对的一些群体很难成为验证节点(因为他们需要建立很强的声誉才能获得所需的支持),攻击系统的成本也很高(因为任何攻击都会导致大量的 DOT 被削减)。


我们的 NPoS 方案比工作证明机制(PoW)的效率高得多,比权益证明机制(PoS)的速度快得多:它允许几乎所有持有 DOT 的参与者持续参与,从而保持高水平的安全性,同时限制验证节点的数量,因此所有基本的网络操作都是高效的。



竞选过程

有了提名人的投票,如何选出验证人呢?与其他基于 PoS 的,根据验证人的质押数量来衡量投票比重的项目不同,Polkadot 在共识协议中给被选出的验证人同等的投票权。为了反映这一事实,提名人的股份应尽可能平均地分配给被选出的验证人,同时仍尊重提名人的偏好。在 Web3 基金会的研究团队中,我们使用了从选举理论到博弈论再到离散优化等工具,开发了一个高效的选举过程,且具有公平代表性和安全性,并且将来可以应用于使用 NPoS 的任何区块链。下面我们将结合一些例子来探讨这些观点。


公平代表性。19世纪末,瑞典数学家 Lars Edvard Phragmén 提出了一种选举瑞典议会议员的方法。他注意到,当时的选举方法倾向于把所有席位都给最受欢迎的政党;相反,他的新方法确保分配给每一政党的席位数量与给它们的选票成比例,因此它给予了少数族裔更多的代表权。通过他的方法得到的属性在形式上被称为比例合理代表制(proportional justified representation),并且非常适合 NPoS 选举,因为它确保任何节点池既不被选出的验证人过度代表,也不被选出的验证人过低代表,而是与它们的质押成比例的。我们的启发建立在 Phragmén 的想法之上,并确保每次选举都具有这种性质。

这个例子代表了一个典型的选举过程,左边的提名人有不同数量的 stake(质押),并且通过线连接到右边那些他们信任的候选验证人(为了简单起见,验证者人在这个例子中没有自己的 stake,尽管在真实场景中他们会 stake)。假设我们需要选择 n=4 个验证人,公平代表性的属性大致可以转化为一条规则,即任何持有总股份至少 1/n 的提名人都保证至少有一个他们信任的验证人当选。由于总 stake 是 40 个 DOT,其中四分之一是 10 个 DOT,前两个提名人保证由一个验证人代表。在下面的图片中,我们看到了三个可能的选举结果:一个违反了公平代表性,两个实现了公平代表性。

安全性。如果提名人得到两个或多个其信任的验证人被选,我们需要在他们之间分配提名人的股份,这样验证人的支持就尽可能平衡。回想一下,我们希望尽可能让对手池难以获得一个验证人,他们只有得到足够高的支持才能做到这一点。因此,我们将选举结果的安全级别等同于被选验证人的最小支持数量。对于最后两个具有公平代表性的选举结果,我们提供了 stake 分配,结果表明它们分别达到了 6 和 9 的安全级别。            

右边的选举结果达到了更高的安全级别,显然在将提名人的股份平均分给验证人的方面做得更好。因此,NPoS 选举过程的目标是提供一个达到公平代表性和尽可能高的安全水平的结果。这就产生了一个相当具有挑战性的优化问题(即 NP-complete),为此我们开发了在安全性和可扩展性上有很强保证的快速近似启发式算法。


我们对 Polkadot 提出的技术发展,以及在区块链领域开发的 NPoS 和其他高效方案所带来的可能性感到兴奋。你可以在 Web3 基金会研究页面和 Polkadot wiki 上了解更多信息。要了解 Polkadot 的发展,请在 Twitter 上关注 Polkadot 并加入 newsletter。


Web3 基金会研究:http://research.web3.foundation/

Polkadot wiki:http://wiki.polkadot.network/

Polkadot Twitter:https://twitter.com/polkadotnetwork

Newsletter:http://eepurl.com/gbyVCD


原文:https://medium.com/web3foundation/how-nominated-proof-of-stake-will-work-in-polkadot-377d70c6bd43


  • 欢迎学习 Substrate: 

    https://substrate.dev/

  • 关注 Substrate 进展:

    https://github.com/paritytech/substrate

  • 关注 Polkadot 进展:

    https://github.com/paritytech/polkadot

  • 申请 Bootcamp: 

    https://bootcamp.web3.foundation/

更多内容:


Polkadot 发布第三版「Lightpaper 简短白皮书」,有多处重要更新!

Substrate 智能合约浏览器 IDE「ink!playground」发布了!

入门:搭建substrate开发环境


扫码关注公众号,回复 “1” 加入波卡群

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存