区块链-共识机制(POWPOSDPOSPBFTPOIPOPPOOL)

Posted better_hui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链-共识机制(POWPOSDPOSPBFTPOIPOPPOOL)相关的知识,希望对你有一定的参考价值。

文章目录: https://blog.csdn.net/u012391423/article/details/116136906

 

目录

 

 

 

一、什么是共识机制

二、CAP定理和FLP不可能性定理

1、CAP定理

2、FLP不可能定理

三、去中心化

1、去中心化分层

四、共识机制分类

1、POW

2、POS

    3、DPOS

  3.1、DPOS选举机制

   4、PBFT   拜占庭容错算法        

5、POI

6、POP 

7、POOL验证池

五、总结


 

 

一、什么是共识机制

每一个了解学习区块链的童鞋,都应该或多或少的了解过"拜占庭将军"的问题,这也是我们叩开区块链大门的第一块砖。

其源自于图灵奖得主 莱斯利·兰波特 在其论文中提出的关于分布式对等网络中通讯容错的问题:在分布式的网络中,不同的计算机通过通讯交换信息达到共识一致,按照同一套策略执行,但是有时候,网络中的计算机会因为某种原因发送错误信息,发送通讯的网络也可能使消息发生损坏,使网络中关于共同策略得出不同的结论,从而破坏系统的一致性。

这也是区块链共识机制产生的根源,所谓共识就是在一个多方对等系统中,在某一时刻对某一个值达成一致。换句话说,任何系统的共识机制都要回答以下几个问题:

1、一个区块应该包含哪些信息(订单)

2、一个新区块何时产生

3、一个新区块由谁负责生产

4、如何升级共识机制

5、如何解决历史订单竞争的问题(分叉的问题)

共识机制就是要解决以上的问题,以保证系统的健壮性,防止攻击者试图获取网络的控制权,而获取了网络控制权,亦即是获取了对链上信息的审阅及编辑权限。

二、CAP定理和FLP不可能性定理

分布式系统中有两个已经明确的定理,CAP定理 && FLP不可能定理

1、CAP定理

     在一个分布式系统中,Consistency(一致性)、Availability(可用性)、ParTITIon tolerance(容错性),三者只能取二,无法三者共存

    一致性,要求系统中所有数据,在同一时刻达到一致。

    可用性,要求系统在部分节点出现故障后,整个系统不会瘫痪,而您能正常运行

    容错性,如果在一定时限内,系统内数据无法达成一致,那么需要在一致性和可用性之间斟酌一个平衡

2、FLP不可能定理

在允许节点故障的前提下,纯粹异步的系统,无法在有限时间内达成一致。

FLP定理,明确在异步系统中,在有限时间内,无法达成一致;而CAP定理则要求我们在设计算法时,选择一个平衡点,是采用CP(高一致性)或者是采用AP(高可用性);

共识算法本身可以描述为在一个步骤中,让所有节点对某一个值达成一致,即使存在故障节点,整个系统也可以忽略这些噪音、或者将噪音的影响降到最低,以保证系统顺畅运行。

三、去中心化

     在一个中心化的系统中,共识是有中心点决定的,系统只需要接收中心的命令即可,这也是中心化系统高效的原因

     而去中心化的系统中,所有节点都是对等的,当节点发生分歧时,就需要我们设计巧妙的共识机制或者算法,来保证系统的运行

     我们无法确认一个系统是去中心化的,我们只能量化其去中心化程度。

     比特币系统,被认为是去中心化的极致,但是事实是这样吗?

1、去中心化分层

   1、系统部署的去中心化,在现实世界中,基于docker等虚拟技术或应用此技术的云平台,以下三个问题是我们需要明确的:系统中有多少节点、部署在多少台物理机、分散在多少地区;我们部署去中心化的目的,就是为了减少同一时间发生故障的节点数量,就是为了分担风险,这和我们买保险是一样的。

   2、系统逻辑上的去中心化,一个系统中有一种角色还是多种角色;由一台设备还是多种不同种类的设备构成。

   3、系统治理的去中心化,针对一个区块链项目,有两个重要的权限控制:系统修改权限和系统数据权限

四、共识机制分类

1、POW

   工作量证明机制 proof of work 

   基本原理,这是第一代的共识机制。是比特币的基础,借鉴了很多hashCash思想,理解起来非常简单 —— 按劳分配 , 多劳多得;在比特币的世界里,我们的劳务付出 , 就是算力 * 时长 , 我们提供这种服务的过程,俗称 "挖矿" 。   

   在pow系统中,有两种角色:工作者、验证者
   
 对于生产者:

          1、完成工作,必须有一定的工作量,这个量的大小由验证者给出  

          2、工作者不能自己创造工作,必须有验证者发布  

          3、工作者没有捷径可走
   
对于验证者:

          1、可以迅速的验证工作量是否达标   

 

优点:

          1、去中心化,将记账权公平的分派到其他节点

          2、安全性高,破坏系统需要投入几大的成本

          3、以挖矿的方式发行新币,把新币分发给个人,实现先对公平

   缺点:

          1、能源消耗过大,造成资源浪费

          2、算力集中化,挖矿有CPU / GPU / ASIC /矿场矿池 , 算力越来越集中,比特币系统也趋于中心化

          3、网络性能低,比特币出块的时间是10分钟,交易确认需要经过6个块的累加,大概1小时左右

2、POS

   股权证明机制 (Proof of Stake)

         1、源于点点币(PPC)的创新,去掉了挖矿的过程,摒除了比特币能源消耗的问题。在创世区块写明股权分配的机制,之后通过转让、交易(IPO)分散到用户手里;以利息的方式发行新币,实现对节点的奖励

         2、简单来讲根据持有币的数量 、 持有币的时间 ,来发行新币的共识机制。就像现实生活中的股票或者银行存款,我们存款的金额越多、时间越长,获得利息(发行的新币奖励)也就越多

    点点币、ADA爱达币、Nxt未来币、Qtum量子链、ETH 是pow和pos的综合应用   

优点:

         1、节能,不要挖矿,减少了能源损耗

         2、去中心化程度更高。首先明确,去中心化是相对的。相对比特币,pow的算法,pos的共识机制,对硬件的要求更低,人人都可以持有币,获取利息。而不用担心算力集中的问题

         3、避免紧缩的问题。比特币因为奖励减半的设计、用户的流失,有紧缩的风险。以利息方式的发行新币,假定 "利率" 恒定的情况下 , 货币的增量 , 也会保持一定的增速,符合经济的发展

   缺点:

        1、纯PoS机制的加密货币,只能通过IPO的方式发行,这就导致“少数人”(通常是开发者)获得大量成本极低的加密货币,在利益面前,很难保证他们不会大量抛售。

        2、PoS机制的加密货币,信用基础不够牢固。

        3、为解决这个问题,很多采用PoW+PoS的双重机制,通过PoW挖矿发行加密货币,使用PoS维护网络稳定。或者采用DPoS机制,通过社区选举的方式,增强信任。

    
3、DPOS


 Delegated proof of stake  授权股权证明机制
 无人控制的网络系统,发行利润,并将利润分配给股东,具体规则硬编码到软件中,类似现实世界中的公司股份制,代表币种EOS

 
 3.1、DPOS选举机制

 在dpos系统中,网络的正常运转依赖于受托人(Delegates),受托人的职责:
         1、保证节点正常运行
         2、打包、验证交易,出块
         3、接收广播区块,将其他节点验证的区块,添加到自己的数据库
         4、带领并促进区块链项目的发展
 
 Dpos系统,算法要求系统的三件事:
         1、随机指定生产者出场顺序,任何节点不能预生产区块
         2、不按顺序生产的区块无效
         3、每过一个大周期,重新排定顺序
 
 
 优点: 
        1、能耗更低 , dpos机制将全节点减少至101个,在保证网络安全的前提下,能耗更低 
        2、更加去中心化,随着矿机及矿业的发展,pow机制的比特币,算力集中在几个大的矿场手中;pos机制的未来比,要求客户一直开着客户端,这是不显示的,结果和比特币类似,真正的网络节点由几个股东把持;dpos机制,选择101个代理节点,更加的去中心化;
        3、更快的确认速度,dpos的记账权是不需要竞争的,而是根据一定规则的轮换,所以有更快的区块生成速度,一个块的时间是10秒,一笔交易在6个块后得到永久的确认,大概一分钟的时间,101个节点的大循环,也仅仅需要16分钟。
        
        
缺点:
 
        1、投票的积极性比较低。投票需要时间、精力及技能的投入,针对大部分投资者,是不现实的。
        2、对于坏节点,社区的选举不能实时的有效阻止,造成网络的安全隐患
        
     

   
4、PBFT   拜占庭容错算法        

拜占庭容错算法,以计算为基础,没有代币奖励,当网络节点稍微1/3的反对时,系统达成共识
优点:算法的可靠性有严格的证明,具备n-1/3的容错性
缺点:当系统大于等于1/3的节点,停止工作后,整个网络瘫痪

 

5、POI


proof of importance 重要性证明。根据账户的重要性评分来分配记账权的概率

 

6、POP 


proof of Participation ,参与度证明,POI与DPOS的思想结合
这是标准链CZR的创新,基于账户参与数的算法,来分配记账权的概率。
低功耗、速度快,更加安全


7、POOL验证池


基于传统的分布式一致性技术,加上数据验证机制。
优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。

五、总结

没有完美的共识机制,只有适合业务使用场景的最合适的共识机制

 POW :按劳分配,实现相对公平
 POS :类似于银行存款,获取利息。持有股权越多权利越大
 DPOS :类似于董事会或者人民代表大会
 PBFT :基于消息传递的一致性算法,经过与准备、准备、确认一致三个阶段
 POI :POS变种 ,但是重要性来分配记账权,要了解的是 重要性和贡献度是两个概念
 POP :依照参与度分配记账权。出块的速度可控,又能避免首富作恶的问题。小节点可以通过提升算力来获取更多的记账权
 POOL : 国产的验证池,

以上是关于区块链-共识机制(POWPOSDPOSPBFTPOIPOPPOOL)的主要内容,如果未能解决你的问题,请参考以下文章

区块链科普:一文详解4种共识机制

区块链的共识机制,区块链的UTXO

区块链的共识机制,区块链的UTXO

区块链为什么有共识机制?

[老k说区块链]区块链中的共识— 免信任的共识机制

区块链共识机制及其迭代