当前位置:首页区块链科普| Polkadot的共识是什么?

科普| Polkadot的共识是什么?

本文来自Polkadot Wiki的[Basic Knowledge]部分。原文:https://wiki.polkadot.network/docs/en/learn-consensus翻译:PolkaWorld

为什么我们需要共识

共识是达成共识的一种方法。 为了继续创建和前进区块链的状态,网络中的所有节点必须达成共识并达成共识。这就是去中心化网络中的节点可以彼此保持同步的方式。如果去中心化区块链中没有共识,则无法确保节点的真实状态由其他节点共享。共识的目的是在参与者具有自己的“主观意见”的网络中提供有关状态的“客观意见”这是这些节点进行通信并达成协议并可以产生新块的过程。

什么是PoW和PoS?

现在,工作量证明(PoW)和权益证明(PoS)已被用来代表区块链机制的简写,但这并不能说明全部情况。 PoW是一种与区块生产者达成协议的方法,也是完整的《中本聪共识》的一部分,该协议还包括链选择算法(比特币中最长的链机制)。同样, PoS是用于选择验证者节点的一组规则。它没有专门提及链的选择规则或链如何实现终结性。通常在节点之间,PoS算法和拜占庭协议算法相互结合。例如,Tendermint是一种实用的拜占庭容错算法,它使用PoS作为其验证者节点选择方法。

为什么不选择PoW?

尽管达成去中心化的共识既简单又有效,但使用“中本聪共识”进行的工作证明会消耗大量资源,并且没有经济上或可证明的终结性,也没有有效的措施来抵制垄断联盟。

概率确定性与可证明确定性

运行PoW的纯Nakamoto共识区块链只能实现概率最终性的概念,然后才能达成最终共识 。概率确定性意味着在网络和参与者的某些假设下,如果我们看到在给定块上创建了多个块,则可以估计块结束的概率。最终共识意味着在将来的某个时刻,所有节点都将就一组数据的真实性达成共识。最终达成共识可能需要很长时间,因此无法预先确定需要多长时间。但是,诸如GRANDPA或以太坊的Casper FFG之类的最终性工具旨在为区块的最终性提供更强大,更快速的保证,尤其是在发生拜占庭协议的某些过程之后,它们将永远无法恢复。不可逆共识的概念称为可证明的终结性 。在GRANDPA文档中,其规定如下:如果协议中的预言机 A在未指定的时间后向所有参与者返回相同的值,则我们称其最终一致。

什么是GRANDPA / BABE机制?

混合共识在谈论Polkadot的共识协议时,我们经常看到两个首字母缩写词GRANDPABABE 。因为Polkadot使用混合共识,所以我们同时提到了这两个词。混合共识可以将最终工具与区块生产机制分开。这是一种在Polkadot中获得概率确定性 (始终生成新块的能力)和可证明的确定性 (规范链上具有通用一致性而没有逆转机会)的好处的方法。它还避免了每种机制的缺点:在概率确定性中不知不觉地遵循了错误的分叉,以及在确定性中表现出“暂停”(无法生成新的块)的问题。通过结合这两种机制,Polkadot可以快速生成区块,而慢速终结机制可以在单独的流程中运行以完成区块,而不必承担缓慢的交易处理或暂停的风险。过去也曾提到过混合共识。值得注意的是,在以太坊改进提案EIP 1011中,有人提议使用混合共识作为从以太坊到PoS过渡的步骤(现已无效),该提案指定了Casper FFG。 BABE BABE(块链扩展的盲分配)是一种在验证节点之间运行并确定新块生产者的块生成机制。作为一种算法,可以将BABE与Ouroboros Praos进行比较。链选择规则和插槽(验证器插槽)时间调整之间存在一些关键差异。 BABE使用桩号和使用Polkadot的随机循环机制将块产生的时隙分配给验证程序。 Polkadot中的验证程序将参与每个插槽的抽签,并使用此批次来确定验证程序是否为该插槽的区块生成的候选对象。时段是不连续的时间单位,通常为6秒。由于这种随机机制,多个验证器可能是同一时隙的候选者。在其他时间,插槽可能为空,从而导致块时间不一致。在一个时隙中的多个验证 。当在给定时隙的多个验证器块生成候选,所有验证必须生成一个块,并将其广播到网络。这是此时的游戏。到达大部分网络的第一个验证器将获胜。取决于网络拓扑和延迟,这两个链将继续产生块,直到最终确定开始并切断分支为止。请参阅下面的“货叉选择”以了解其工作方式。 插槽中没有验证器。当随机抽奖滚动到足够低的位置并且没有验证者有资格进行积木生产时,插槽可能没有积木。我们通过在后台运行两级循环验证程序选择算法来避免这种情况。选择通过此算法生成块的验证者始终可以生成块,但是如果同一插槽还从VRF选择的验证器生成主块,则将忽略这些辅助块。因此,插槽可以具有主块或子块,并且不会跳过任何插槽。

VRF:https://wiki.polkadot.network/docs/en/learn-randomness有关BABE的更多详细信息,请参阅研究草案文件。
https://research.web3.foundation/zh-CN/latest/polkadot/BABE/Babe.html
GRANDPA:终极工具
GRANDPA(基于GHOST的递归祖先派生前缀协议)是为Polkadot中继链实现的最终小工具。有关BABE的更多详细信息,请参阅研究草案文件。只要有2/3的节点是诚实的,并且可以在异步设置中处理1/5的拜占庭节点,它就可以在部分同步的网络模中工作。一个重大区别是, GRANDPA在链上而不是在区块链上达成了协议 ,即使在长期的网络分区或其他网络故障之后,这也极大地加快了最终确定过程 。换句话说,只要超过2/3的验证器证明链中包含某个块,那么指向该块的所有块将立即完成
协议有关协议的完整说明,请参阅本文的标题3
https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf
实行

Rust是Substrate框架的一部分。

https://github.com/paritytech/substrate/blob/master/frame/grandpa/src/lib.rs有关更多详细信息,请参阅W3F研究页面上的GRANDPA。
https://research.web3.foundation/zh-CN/latest/polkadot/GRANDPA.html货叉选择
通过BABE和GRANDPA的混合机制,Polka的前叉选择变得很明确。 BABE必须建立在GRANDPA最终确定的链上。最终确定后出现分叉时,BABE通过使用最重要的块构建链来提供概率最终性。
科普| Polkadot的共识是什么?
在上图中,黑色块终止了。一个是主块,两个是子块。即使顶部链是最新端子块上的最长链,它也没有资格,因为它在评估中的优先选择少于下一个链。

比较一下

中智共识

Satoshi共识由最长的链条规则组成,以工作量证明为其防止女巫袭击和领导人选举的机制。中本聪共识中本聪共识只给我们概率确定性。概率终局表示,在过去的某块的安全级别仅取决于确认数量已经或建立了 。随着工作量证明链中特定块上构建的块越来越多,该链还将花费更多的计算资源。但是,包含该区块的链可能并不总是经过批准的链,因为拥有无限资源的参与者可能会构建竞争链,并花费足够的计算资源来创建不包含特定区块的链。在这种情况下,比特币和其他PoW链使用的最长链规则将被转移到该新链,从而使新链成为主链。 PBFT / Tendermint共识
请参考与Cosmos比较的文章中的相关内容。
https://wiki.polkadot.network/docs/zh-TW/learn-comparisons-cosmos#consensus卡斯珀FFG
GRANDPA和Casper FFG(友好结局小工具)之间的两个主要区别是:
  • 在GRANDPA中,不同的选民可以同时投票给不同身高的居民
  • GRANDPA仅依赖最终块来影响基础块生产机制的fork选择规则
卡斯珀CBC快来了!

资源资源

GRANDPA论文:GRANDP最终工具的学术描述。包含算法的形式证明。

https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf

Rust实现:参考文档和随附的Substrate模块。

https://github.com/paritytech/finality-grandpaGRANDPA论文:GRANDP最终性工具的学术描述。包含算法的形式证明。 Rust实现:参考文档和随附的Substrate模块。

温馨提示:

文章标题:科普| Polkadot的共识是什么?

文章链接:https://www.btchangqing.cn/34565.html

更新时间:2020年06月09日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

科普| Polkadot的共识是什么?1
区块链

行业区块链周报丨政府安排预算,自由贸易区政策支持,行业形势良好

2020-6-9 1:36:41

区块链

稳定币开始了新的序幕,区块链激增

2020-6-9 1:39:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索