本文来自Polkadot Wiki的基础部分。
为什么我们需要共识
共识是对一个共同国家达成一致意见的一种方式。区块链状态要继续创建并向前移动,网络中所有节点必须达成一致并达成一致。这就是去中心化网络中的节点之间保持同步的方式。如果去中心化区块链中的节点之间没有一致意见,就不能保证一个节点认为其他节点共享的真实状态。达成共识的目的是让参与者有自己的共识。主观的观点;提供有关网络状态的信息。客观的观点。。这些节点通过这个过程进行通信和协商,并产生新的块。
什么是PoW和PoS?
工作负载证明(PoW)和兴趣证明(PoS)现在被用作区块链机制的速记,但这并不能说明全部情况。PoW是对区块生产者达成一致的一种方法,是完整的中本共识(Nakamoto Consensus)的一部分,其中还包括链选择算法(比特币中最长的链机制)。类似地,PoS是一组用于选择和验证人类节点的规则。它并不是专门指链的选择规则,或链如何达到最终性。通常在节点之间,PoS算法与拜占庭协议算法相结合。例如,Tendermint是一种实用的拜占庭容错算法,它使用PoS作为验证节点选择方法。
为什么不POW?
虽然使用中本共识在达成去中心化共识方面简单而有效,但事实证明,使用中本共识的工作量是一个巨大的资源消耗者,没有经济或可证明的最终性,也缺乏**垄断联盟的有效措施。
概率的结局与可证明的结局
纯粹的中本共识区块链运行PoW只能实现概率最终性的概念,从而达到最终的共识。概率终结性是指在网络和参与者的一定假设下,如果我们看到在一个给定块上创建了几个块,我们就可以估计块结束的概率。最终的一致意见意味着在未来的某个时候,所有节点将对一组数据的真实性达成一致。最终达成一致意见可能需要很长时间,而且不可能预先确定需要多长时间。然而,最终文书,如爷爷的Casper FFG或以太坊,旨在为区块的最终性提供更有力和更快的保证,特别是在拜占庭协议中发生某些程序后,它们再也无法恢复。不可逆共识的概念被称为可证明的最终性。
在爷爷文件中,描述如下:
如果协议中的预言机 A在一段未指定的时间之后向所有参与者返回相同的值,则称其最终是一致的。
什么是爷爷/宝贝机制?
混合的共识
当我们谈论波卡共识协议时,我们经常看到这两个首字母缩略词。爷爷和宝贝。我们两者都提到是因为波卡使用混合共识。混合共识将最终工具与区块生产机制分开。
这是在Polkadot中获得概率终结性(总是生成新块的能力)并演示终结性的好处(在没有逆转机会的规范链上的一般一致性)的一种方法。它还避免了每种机制的缺点:概率性结局不知不觉地跟随假分叉的可能性,以及可证明的结局的可能性。暂停AMPL在;无法生成新块。通过结合这两种机制,Polkadot可以快速生成块,而较慢的终结机制可以在单独的进程中运行来完成块,而没有事务处理较慢或暂停的风险。
过去,人们对此事的看法褒贬不一。值得注意的是,在ETHereum改进方案EIP 1011中,指定了Casper FFG,混合的共识被提议作为ETHereum向PoS的过渡的一部分。
宝贝
BABE(区块链扩展的盲分配)是一种块生成机制,它在验证节点之间运行,并识别新的块生成器。BABE作为一种算法可以与Ouroboros Praos进行比较,在链选择规则和槽(验证人类槽)时间调优方面有一些关键的区别。BABE根据赌注和使用Polkadot随机循环机制将块产生的槽分配给验证器。
Polkadot中的验证器为每个槽进行抽奖,这告诉验证器它是否是槽块生成的候选对象。时隙是一个不连续的时间单位,通常为6秒。由于这种随机机制,同一个槽的多个验证器可能是候选的。其他时候,一个槽可能是空的,导致块时间不一致。
一个槽有多个验证器
当多个验证器在一个给定槽中是块生成的候选对象时,所有验证器都会生成一个块并将其广播到网络。这是一场游戏。**到达网络大部分区域的验证器获胜。根据网络拓扑和延迟,两个链将继续产生块,直到确定最终的启动和分叉被切断。见下文;分岔的选择;理解它是如何工作的。
槽中没有验证器
当随机抽取滚到足够低时,一个槽可能没有槽,这个人没有批量生产的认证。我们通过在后台运行二次循环验证器选择算法来避免这种情况。由算法选择来生成块的验证器总是可以生成块,但是如果从VRF选择的验证器也生成了相同的槽,那么子块将被忽略。因此,一个插槽可以有一个主块或一个辅助块,并且没有插槽被跳过。
VRF:https://wiki.polkadot.net work/docs/en/learn -随机性
有关BABE的更多细节,请参见研究草案文档。
https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html
**的**工具
GRANDPA(基于GHOST的递归派生前缀协议)是Polkadot中继链的**一个小工具。
它在部分同步的网络模中工作,只要三分之二的节点是真实的,并且可以在异步设置中处理五分之一的拜占庭节点。
一个显著的区别是,即使在长时间的网络分区或其他网络故障之后,外公在链上的协议,而不是在块上的协议,显著加快了最终确定的过程。
换句话说,只要超过三分之二的验证器证明一个链包含一个块,所有指向该块的块将立即完成。
协议
有关该协议的详细描述,请参阅论文标题的第3节。
https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf
的实现
锈是基质骨架的一部分。
https://github.com/paritytech/substrate/blob/master/frame/grandpa/src/lib.rs
更多详情,请参阅W3F学习页面上的爷爷。
https://research.web3.foundation/en/latest/polkadot/GRANDPA.html
Y选择
有了婴儿和爷爷混合机制,Poca的分歧选择变得清晰起来。宝贝必须建立在爷爷的**锁链上。BABE提供了概率的结局通过建立链条与最主要的块,当有分叉后,最终定稿。
在上图中,黑色方块已经完成。一个是主要区块,两个是次要区块。即使最上面的链是最近的最终化块上最长的链,它也不符合条件,因为它在计算中比下面的更少得到青睐。
对比 Satoshi Nakamoto共识
中本共识(Nakamoto consensus)包含了最长的链式法则,使用工作量证书作为防止女巫袭击和领导人选举的机制。
中本共识只给了我们概率性的结局。概率最终性表明,过去的块的安全程度仅与它拥有的确认数量或在其上构建的块数量相同。随着越来越多的块构建在工作负载证明链中的特定块上,该链也会消耗更多的计算资源。然而,包含该块的链并不总是公认的链,因为拥有无限资源的参与者可能构建竞争链,并花费足够的计算资源来创建不包含特定块的链。在这种情况下,比特币和其他PoW链使用的最长链规则将转移到这条新链上,使其成为主链。
PBFT / Tendermint共识
请参阅这篇文章与《宇宙》进行比较。
https://wiki.polkadot.network/docs/en/learn-comparisons-coos#consensus
Casper FFG
外公和Casper FFG(友好的Finality Gadget)的两个主要区别是:
在《爷爷》中,不同的选民可以同时投票给不同高度的街区
祖父层仅依赖于**的区块来影响下区块生产机制的分岔选择规则
Casper CBC
“快到了!
资源
祖父的论文:对祖父**的性工具的学术描述。包含算法的形式证明。
https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf
铁锈实现:参考文档和配套的基板模块。
https://github.com/paritytech/finality-grandpa
原:https://wiki.polkadot.network/docs/en/learn-consensus
翻译:PolkaWorld
欢迎来到学习基板:
https://substrate.de/
关注基质进度:
https://github.com/paritytech/substrate
遵循圆点花纹的进展:
https://github.com/paritytech/polkadot
文章标题:博卡同意了什么?
文章链接:https://www.btchangqing.cn/34392.html
更新时间:2020年06月08日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。