在这篇文章中,我们会对DC的共识机制做一个介绍,包括NPOS、BABE、GRANDPA。那么这些机制在Digital Circulation中是如何运作的呢? NPOS 在DC中,中继链上的验证者需要分配到各个平行链,为它们提供区块链验证能力,是DC共享安全性的一部分,因此中继链的验证者对于整个DC多链系统的安全性至关重要。 如何公平安全地选举出中继链上的验证者也就成了保障整个系统共享安全性的第一步,是不可或缺的一步。 NPOS( Nominated Proof of Stake)共识算法就是用来选举出能让系统更安全,更高效的验证者集合的。和传统意义上的POS共识相比,NPOS算法结合了DC链自身架构的一些特点,进行相应的优化。 在说明NPOS之前,我们需要先回顾一下DC中重要的两种角色。 ▲ 验证人 中继链的全节点,中继链会在验证人池中通过随机分组把验证人指定给不同的平行链。验证人会接受来自收集人打包的区块并进行有效性验证,然后结合共识算法对收集人提交的区块进行确认。 ▲ 提名人 DC中数字货币DOT的持有人,它会选择自己所信任的验证人进行DOT质押,然后分享验证人的收益。 DC的选举模型是建立在这两种角色基础上的。要成为验证人,必须先成为验证人候选人参加选举的过程,而这个选举过程中的“选民”就是提名人。 在DC的设计中,提名人数量在理论是可以不设置上限的,如果能够让更多的提名者参与到投票阶段,那么参与到选举的资金量也就越大,整个系统就更加的安全;而对于验证者来说,为了区块链的性能,不能太多(所有节点都能作为验证者的话,那就是比特币采用的模式了),验证者的数量由系统确定的固定值,这一点来说和POS共识是一致的。 ▲ 完整的流程如下: PoS在提名者给出自己的投票之后,每一个候选者都可以给出自己对于上述选举问题的一个可行解。在上述这些可行解的集合中,利用链上的方案比较方案,按照之前的“三大原则”来比较这些方案,选取其中最优的方案最为最后验证人选举结果,这样就完成了一轮选举。 BABE BABE的全称是Blind Assignment for Blockchain Extension,BABE是一个用来出块的引擎,类似于Ourobros Praos,一种PoS的协议。BABE算法是基于slots的。 Polkadot 中的验证人将参与每个 slot 的抽签,通过这个抽签告诉验证人是否是该 slot 的区块生成候选人。Slot 是不连续的时间单位,通常为 6 秒。由于这种随机机制,多个验证人可能是同一个 slot 的候选者。其他时候,一个 slot 可能是空的,从而导致区块时间不一致。 BABE是运行在验证节点之间的区块生产机制,它确定新区块的生成者。在某种程度上,BABE可以跟Ouroboros Praos对比,不过在链选择规则和插槽时间调整上存在较大差异。BABE会根据质押代币量以及波卡随机周期为验证者分配生产区块的插槽。 当出现多个leader的时候,DC允许多个节点都提交区块,而最终区块的确认则由GRANDPA来决定。 GRANDPA GRANDPA则是用来做区块确认的,GRANDPA(GHOST-based Recursive ANcestor Deriving Prefix Agreement)是波卡的“最终性工具”,服务于波卡的中继链。只要2/3的节点是诚实的,且在异步设置中可以处理1/5的拜占庭节点,它在部分同步的网络中就可以正常运作。GRANDPA在链上达成共识(相对于区块上),这里有利于其更快达成最终性,即便是面临长期的网络分区或其他网络故障情况。 它在一个部分同步的网络模型中工作,只要 2/3 的节点是诚实的,并且能够在异步设置中处理 1/5 的拜占庭节点。 一个显著的区别是,GRANDPA 在链上而不是区块上达成协议,大大加快了最终确定过程,即使在长期的网络分区或其他网络故障之后也是如此。换句话说,只要超过 2/3 的验证人证明一个包含某个块的链,所有指向该块的块都将立即完成。 如果当网络中出现了要分叉的commit信息时,DC的节点会马上采取Account Safety的机制。每个节点都会询问其他节点他们所看到的pre-vote的情况,节点都会回复他们收到的信息,这样就很容易检查到有哪些恶意节点投了两个区块。最后这些被抓到的作恶节点将会被踢出共识网络,永远不能进入。 让我们回到BABE,通过结合BABE和GRANDPA我们可以看到在出块的时候DC采用BABE出块,此时节点之间只要发送一次块信息即可,这样的话时间复杂度仅仅是O(n),在出块之后节点之间再采用GRANDPA进行块确认,此时由于确认阶段节点之间要通过二次确认来保证确认块结果的一致性,时间复杂度是O(n?),不过由于是多个块一次性进行确认,所以两者结合的混合共识是非常高效的,比普通的PBFT共识要高效很多。 结语 上面三种就是我们向大家介绍的DC的共识算法,可以看到NPOS主要是为了选取DC的共识节点,BABE和GRANDPA通过混合来高效的进行区块链的出块和确认。 这样的混合共识比传统的PBFT共识速度更快,并且在速度更快的基础上并没有丢失掉安全性。将出块和确认区块两个阶段分开并且使用不同的算法是在区块链共识中值得学习的地方。 通过这三种算法,DC可以说在一定程度上高效的实现了DC上区块链的共识算法。 —- 编译者/作者:DC中文社区 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
一文读懂DC的三种共识
2021-02-26 DC中文社区 来源:区块链网络
LOADING...
相关阅读:
- 比特币重回5万美元美股区块链股上车好机会?2021-02-26
- 最新消息|科技部:支持深圳强化关键核心技术攻关集中突破区块链等技2021-02-26
- 风云解币|最近都在跌跌跌比特币依旧处于高位后市可期2021-02-26
- 比特币价格暴跌至45,500美元以上,再次在市场上引发了恐惧。2021-02-26
- Robinhood在2021年记录了600万首次加密货币投资者2021-02-26