GRAND:科普:波卡的共识是什么?

编者按:本文来自PolkaWorld,Odaily星球日报经授权转载。本文来自波卡百科的部分。为什么我们需要共识

共识是对一种共同的状态达成一致的方法。为了使区块链的状态继续创建并向前推进,网络中的所有节点都必须一致并达成共识。这是去中心化网络中的节点能够保持彼此同步的方式。如果一个去中心化的区块链中节点没有共识,就无法确保一个节点相信的真实状态被其他节点所共享。共识的目的是在参与者都有自己“主观观点”的网络中,提供关于状态的“客观观点”。它是这些节点进行通信并达成一致的过程,并且能够生产出新的块。什么是PoW和PoS?

现在工作量证明和权益证明已经被用于表示区块链机制的一种简写,但这并不能说明全部情况。PoW是一种对区块生产者达成一致的方法,也是完全的中本聪共识的一部分,该共识还包括链选择算法。类似地,PoS是一组用于选择验证人节点的规则,它并不是特指一个链的选择规则,或者一个链如何达到最终性。通常在节点之间,PoS算法与拜占庭协议算法是互相结合的。例如,Tendermint是一个实用的拜占庭容错算法,它使用PoS作为其验证人节点的选择方法。为什么不选择PoW?

尽管在达成去中心化共识方面简单而有效,但使用中本聪共识的工作量证明消耗了海量资源,而且还没有经济性或可证明的最终性,而且缺乏有效的措施来抵制垄断联盟。概率最终性vs可证明最终性

运行PoW的纯中本聪共识区块链只能实现概率最终性的概念,然后去达成最终的共识。概率最终性是指在网络和参与者的某些假设下,如果我们看到创建在给定区块上的几个区块,就可以估计该区块终结的概率。最终的共识意味着,在未来的某个时刻,所有节点都将同意一组数据的真实性。这一最终共识可能需要很长时间,也无法提前确定需要多长时间。然而,诸如GRANDPA或Ethereum的CasperFFG这样的最终性工具的设计是为了对区块的最终性提供更有力和更快的保证,特别是,在拜占庭协议的某些过程发生后,它们永远无法恢复。不可逆共识的概念就被称为可证明的最终性。在GRANDPA文档中,它被这样表述:如果协议中的oracleA在一段未指明的时间后向所有参与者返回相同的值,那么我们称它是最终一致的。什么是GRANDPA/BABE机制?

混合共识当我们谈到Polkadot的共识协议时,大家经常看到两个缩略词,GRANDPA和BABE。我们同时提到了这两个词是因为Polkadot使用的是混合共识。混合共识可以将最终性工具从区块生产机制中分离出来。这是一种在Polkadot中获得概率最终性和可证明最终性好处的方法。它还避免了每种机制的缺点:概率最终性中不知不觉地遵循错误分叉的可能,以及可证明最终性中“暂停”的问题。通过结合这两种机制,Polkadot可以快速地生成区块,而较慢的最终性机制则可以在单独的进程中运行以完成区块,而不必承担交易处理较慢或暂停的风险。混合共识在过去也曾被提起过。值得注意的是,在以太坊改进建议EIP1011中,曾提议将混合共识作为以太坊向的PoS过渡的一步,该建议指定了CasperFFG。BABEBABE是在验证节点之间运行并确定新块生产者的区块生成机制。BABE作为一种算法可以与OuroborosPraos相比较,在链选择规则和slot时间调整方面有一些关键的区别。BABE根据stake和使用Polkadot随机循环机制将区块生产的slot分配给验证人。Polkadot中的验证人将参与每个slot的抽签,通过这个抽签告诉验证人是否是该slot的区块生成候选人。Slot是不连续的时间单位,通常为6秒。由于这种随机机制,多个验证人可能是同一个slot的候选者。其他时候,一个slot可能是空的,从而导致区块时间不一致。一个slot有多个验证人当在一个给定slot中有多个验证人是区块生成候选者时,所有验证人都要生成一个区块并将其广播到网络中。此时这是一场比赛。区块最先到达大部分网络的验证人会获胜。根据网络拓扑和延迟,这两个链将继续生产区块,直到最终确定启动并切断分叉。请参阅下面的“分叉选择”了解其工作原理。Slot中没有验证人当随机抽签滚到足够低的位置,没有验证人获得区块生产的资格时,一个slot可能没有区块。我们通过在后台运行二级循环式验证人选择算法来避免这种情况。通过该算法选择生成块的验证人总是可以生成区块,但如果同一slot也从VRF选择的验证人生成主区块,则忽略这些副区块。因此,一个slot可以有一个主区块或一个副区块,并且不会跳过任何slot。VRF:https://wiki.polkadot.network/有关BABE的更多细节,请参阅研究草案文档。GRANDPA:最终性工具GRANDPA(GHOST-basedRecursiveANcestorDerivingPrefixAgreement)是为Polkadot中继链实现的最终性小工具。它在一个部分同步的网络模型中工作,只要2/3的节点是诚实的,并且能够在异步设置中处理1/5的拜占庭节点。一个显著的区别是,GRANDPA在链上而不是区块上达成协议,大大加快了最终确定过程,即使在长期的网络分区或其他网络故障之后也是如此。换句话说,只要超过2/3的验证人证明一个包含某个块的链,所有指向该块的块都将立即完成。协议有关协议的完整说明,请参阅论文的标题3部分。https://github.com/实施Rust是Substrate框架的一部分。有关更多详细信息,请参阅W3F研究页上的GRANDPA。分叉选择带着BABE和GRANDPA混合机制,波卡的分叉选择变得清晰起来。BABE一定要建立在GRANDPA最终确定的链上。当在最终确定之后有分叉时,BABE通过构建具有最主要区块的链来提供概率最终性。

在上面的图像中,黑色块是已终结的。一个是主区块,两个是副区块。即使最上面的链是最新终结块上最长的链,但它不合格,因为它在评估时获得首选的次数比下面那条少。对比

中本聪共识中本聪共识由最长链规则组成,使用工作量证明作为其防止女巫攻击和领导人选举的机制。中本聪共识只给了我们概率最终性。概率最终性表明,过去的某个区块的安全程度,仅取决于它拥有的确认数量,或在该区块上构建的区块数量。随着工作量证明链中构建在某特定区块上的区块越来越多,这条链也会花费更多计算资源。然而,包含了该区块的链不一定总是被认可的链,因为某位具有无限资源的参与者可能构建竞争链,并花费足够的计算资源来创建不包含特定块的链。在这种情况下,比特币和其他PoW链使用的最长链规则将转移到这条新的链,让新链成为主链。PBFT/Tendermint共识请参阅与Cosmos对比文章中的相关内容。https://wiki.polkadot.network/docs/en/learn-comparisons-cosmos#consensusCasperFFGGRANDPA和CasperFFG的两个主要区别是:在GRANDPA中,不同的投票者可以同时为不同高度的块投票GRANDPA只依赖最终的块来影响底层块生产机制的分叉选择规则CasperCBCComingsoon!资源

GRANDPA论文:GRANDP最终性工具的学术描述。包含算法的形式化证明。Rust实现:一个参考文档和附带的Substrate模块。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-6:473ms