美文网首页
【区块链学习笔记】区块链共识机制,PoW、DPoS、PBFT··

【区块链学习笔记】区块链共识机制,PoW、DPoS、PBFT··

作者: 不出局007 | 来源:发表于2018-06-28 10:55 被阅读0次

    什么是共识机制?共识机制的区块链的核心基石之一,是区块链的安全保障,我们也经常看到区块链文章里pow,pos等,但是这些英文缩写是什么鬼?今天小编就给大家科普一下,今天本文主要给大家讲PoW、DPoS、PBFT···


    我们大部分人都知道,区块链就是一个去中心化分布式公共账本,任何人都可以对这个公共账本进行核查,公开账本历史数据不可篡改,只允许往后添加区块,每个节点都具有相同的权限,那么问题来了:公开账本每个新区块由谁来负责写入?所有节点都一样,如果所有节点同时一起写入账本数据,那么数据可能会不一致。如何选出写入账本数据的节点,这就是共识机制要解决的问题。

    在比特币白皮书里,中本聪提出“工作量证明”机制,就是POW机制。工作量证明(Proof Of Work,简称POW),简单理解就是一份证明,用来确认你做过一定量的工作。比特币中的工作量证明:比特币网络中任何一个节点,如果想生成一个新的区块并写入区块链,必须解出比特币网络出的工作量证明的迷题。这道题关键的三个要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块决定了这道题的输入数据,难度值决定了这道题的所需要的计算量。通俗讲:比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作,接下来关于共识机制的干货知识点来了。


    POW(工作量证明Proof of Work):

    简单讲就是多劳多得,谁能最快的猜出随机数,谁就能做记账人。特点是去中心化最彻底,可靠安全,但共识时间长,耗能大,需要大量的计算资源去运转。代表:比特币。比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。

    工作量证明代表:比特币 Btc。

    POS—(权益证明(Proofof Stake):

    也叫“股权证明算法”,类似于财产储存在银行,因为POW的越来越中心化,大家就开始心怀忌惮,于是虚拟货币爱好者开始研究另一种共识机制POS。这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 = 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。特点是共识时间短,耗能小,但容易造成利益分配的不均衡和大节点的产生。

    代表币种:未来币以及转型之后的以太坊 ETH。


    DPOS —(Delegated Proof of Stake委任权益证明):

    中文名叫做股份授权证明机制(又称受托人机制)类似于董事会或者人大代表机制,它的原理是让每一个持有比特股的人进行投票,由此产生101位代表 , 我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心其币的人身上,类似黄牛大量囤票而不关心演唱会的内容。为了激励更多人参与竞选,系统会生成少量代币作为奖励。特点是出块时间超短,效率超高,几乎不会分叉。

    代表:柚子币 EOS。


    POA—(权威证明Proof of Authority):

    验证者不需要很强的的算力和大量的token,但必须具有已知的和经过验证的身份,通过放置这个身份来获得担保网络的权利,从而换取区块奖励。比如,小明是一个被大家信任的人,可以为某笔交易做担保,通过我来做担保便可实现快速交易,交易成功后我会获得一定数量的token奖励。那如果哪天我变坏了怎么办?想对交易使坏而使自己获利,没关系,其他担保人的一双双眼睛都在盯着我呢,一使坏我就会被踢出局。

    代表币种:POA币,VeChain唯链


    pbft算法:实用拜占庭容错算法

    2008年图灵奖的获得者Loskov在1999年提出了一个新的算法PBFT,这个算法解决了拜占庭将军问题中容错率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。这个算法在保证安全性的情况下提高了计算机应用的容错性,减少了每次验证的错误几率。

    代表币种:初链 、afc、央行的数字货币、 布萌区块链


    raft算法:

    因为网上已经有大量文章对raft算法进行过详细的介绍,因此这部分只会简单的阐述算法的基本原理和流程。raft 算法包含三种角色,分别是:跟随者( follower ),候选人( candidate )和领导者( leader )。集群中的一个节点在某一时刻只能是这三种状态的其中一种,这三种角色是可以随着时间和条件的变化而互相转换的。

    raft 算法主要有两个过程:一个过程是领导者选举,另一个过程是日志复制,其中日志复制过程会分记录日志和提交数据两个阶段。raft 算法支持最大的容错故障节点是(N-1)/2,其中 N 为 集群中总的节点数量。

    有一个动画介绍raft算法介绍的很透彻,链接地址为:http://thesecretlivesofdata.com/raft/。这个动画主要包含三部分内容,第一部分介绍简单版的领导者选举和日志复制的过程,第二部分内容介绍详细版的领导者选举和日志复制的过程,第三部分内容介绍的是如果遇到网络分区(脑裂),raft 算法是如何恢复网络一致的。有兴趣的朋友可以结合这个动画来更好的理解raft算法。

    代表币种:CWV

    除了PoW、PoS、DPoS、PBFT之外,还有VBFT、PoA、PoE、PoI······哪些是你比较感兴趣的呢?


    参考文献

    李启雷,《区块链核心技术:拜占庭共识算法之PBFT》

    梁敏鸿:《剖析区块链的共识算法 Raft & PBFT》

    相关文章

      网友评论

          本文标题:【区块链学习笔记】区块链共识机制,PoW、DPoS、PBFT··

          本文链接:https://www.haomeiwen.com/subject/rhiwyftx.html