精华内容
下载资源
问答
  • 共识机制

    千次阅读 2018-06-26 18:41:21
    区块链技术的核心是在没有中心控制的情况下,在互相没有信任基础的个体之间就交易的合法性等达成共识的共识机制 提起共识那么非常有名的拜占庭将军问题使我们应该首先应该了解1.拜占庭将军问题本文不讲故事,请移步...

        区块链技术的核心是在没有中心控制的情况下,在互相没有信任基础的个体之间就交易的合法性等达成共识的共识机制

        提起共识那么非常有名的拜占庭将军问题使我们应该首先应该了解

    1.拜占庭将军问题

    本文不讲故事,请移步http://baijiahao.baidu.com/s?id=1591728006111720793&wfr=spider&for=pc

    我们在这里讨论拜占庭的2种情况

    1.1.非拜占庭故障:

        因为宕机、网络拥塞等原因产生故障的进程。 特点,仅停止服务,不主动作恶。例: Quorum,Paxos,Raft系统。

    1.2.拜占庭故障:

        进程被攻击者完全控制,可以进行任意行为。特点:进程的行为是不可预测的,常见有:停机、发送任意消息、篡改转发
    的消息、合谋等。例: PBFT系统。

    1.3.说明:

        拜占庭故障是最严重缺陷或故障。可能的原因例如遭黑客入侵、管理员背叛等等。

    2.共识机制

    2.1.poW:

        poW(工作量证明),也就像比特币的挖矿机制,矿工通过把网络尚未记录的现有交易打包到一个区块,然后不断遍历尝试来寻找一个随机数,使得新区块加上随机数的哈希值满足一定的难度条件,例如前面10位为0.找到满足条件的随机数,就相当于确定了区块链最新的一个区块,也就相当于获得了区块链的本轮记账权.矿工把满足挖矿难度条件的区块在网络中广播出去,全网的其他节点在验证该区块满足挖矿的难度条件,同时区块里的交易数据符合协议规范后,将各自把该区块连接到自己版本的区块链上,从而在全网形成对当前网络状态的共识

        优点:完全去中心化,节点自由进出,避免了建立和维护中心化信用机构的成本.只要网络破坏者的算力不超过网络总算力的50%,网络的交易状态就能达成一致.

        缺点:资源浪费,挖矿激励造成矿池算力的高度集中,背离了中心化的特征.更大的问题poW机制的共识达成时间较长,最多每秒7笔,不适合做商业应用.

    2.2.poS:

        poS权益证明,要求节点提供拥有一定数量的代币证明来获取竞争区块链记账权的一种分布式共识机制.如果单纯依靠代币余额来决定记账者必然使得富有者胜出,导致记账权的中心化,降低共识的公平性,因此不同的PoS机制在权益证明的基础上,采用不同的方式来增加记账权的随机性来避免中心化.例如点点币(peerCoin)PoS机制中,拥有最长链龄的比特币获得记账权的概率就很大.NXT和Blockcoin则采用一个共识来预测下一个记账节点.拥有多的代币被选为记账节点的概率就很大.未来以太坊也会从目前的poW机制转换的poS机制,从目前看到的资料来看,以太坊的poS机制将采用节点下赌注来赌下一个区块,赌中者有额外的以太币奖励,赌不中者会被扣以太币的方式来达成下一个区块共识

        优点:在一定程度上缩短了达成共识的时间,降低了poW机制的资源浪费

        缺点:破坏者对网络的攻击成本很低,网络安全性有待验证.另外拥有代币数量大的节点获得记账权的概率会更大,会使得网络共识受少数富裕账户支配,从而失去公正性

    2.3.DPoS

        DPoS(股份授权证明)机制,类似于董事会投票.比特股(bitshares)采用的PoS机制是持股者投票选出一定数量的见证人,每个见证人按序有两秒钟的权限时间生成区块,若见证人在给定的时间片不能生成区块,区块生成权限交给下一个时间片对应的见证人.持股人可以随时通过投票更换这些见证人.DPoS的这种设计使得区块的生成更为快速,也更加节能.

        优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证.

        缺点:选举固定数量的见证人作为记账候选人有可能不适合于完全去中心化的场景.另外在网络节点很少的场景,选举的见证人的代表性也不强.

    2.4.分布式一致性算法

        分布式一致性算法是基于传统的分布式一致性技术.其中有分为解决拜占庭将军问题的拜占庭容错算法,如PBFT.另外解决非拜占庭问题的分布式一致性算法(Paxos.Raft).该类算法目前是联盟链和私有链场景中常用的共识机制

        优点:实现秒级的共识机制,保证一致性.适合多方参与的多中心商业模式.

        缺点:去中心化程度不如公有链上的共识机制

    2.4.1拜占庭容错系统   

    这里讨论2种情况

    拜占庭问题:节点中有可能出现被入侵后叛变的风险,乱发消息.

    PBFT协议:

        PBFT是一类状态机拜占庭系统。 

        每个独立进程共同维护一个状态,执行客户端发出的操作.

        所有节点采取的行动一致,操作后达成的状态也是一致的。(顺序一致性)

        为了方便讨论,假设client也是“好的”

                    

                        

    这是一个简单的PBFT通信协议模型其中C为客户端,0-3代表服务节点,0为主节点,3为故障节点.

        1)客户端发送请求,激活主节点的服务操作.

        2)当主节点接受请求后,启动三阶段的协议以向各从节点广播请求.

            2.1:序号分配阶段,主节点给请求赋值一个序号n,广播序号分配消息和客户端的请求m,并将构造的pre-prepare消息给各从节点

            2.2:交互阶段,从节点接收pre-prepare消息,向其他服务节点广播prepare消息.

            2.3:序号确认阶段,各个节点对视图内的请求和次序进行验证后,广播commit消息,执行收到的客户端的请求并给客户端响应

        3)客户端等待来自不同节点的响应,若有m+1个相同,则该响应即为运算的结果

    PBFT应用场景很多如:IBM主导的超级账本种,PBFT是一个可选的共识机制

    以上就是解决所有拜占庭问题的共识机制

    非拜占庭问题:节点中基本安全可靠,只是处理一般的死机故障.

    RAFT协议

    zookeeper也使用类似协议

    看动画了解协议

    http://thesecretlivesofdata.com/raft/


    总结:



    展开全文
  • 区块链共识机制

    千次阅读 2019-01-13 16:50:45
    更多关于区块链技术和投资的文章,请关注...什么是共识机制 共识机制的起源 共识机制的原理  POW  POS  DPOS  BFT 共识机制总结  共识机制的评价指标  共识机制对比  共识机制展望   什么是共...

    更多关于区块链技术和投资的文章,请关注公众号“币梭”

    https://mp.weixin.qq.com/s/RkdSrkzBDWmpL9iUNCyBlg

     

    什么是共识机制

    共识机制的起源

    共识机制的原理

        POW

        POS

        DPOS

        BFT

    共识机制总结

        共识机制的评价指标

        共识机制对比

        共识机制展望

     

    什么是共识机制

        

        区块链技术是去中心化分布式的P2P系统,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作的顺序和公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者,这个制度就是共识机制。

     

    共识机制的起源

     

        共识机制起源于拜占庭将军问题,拜占庭将军问题大概如下:

        拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

        在拜占庭问题里,各邻国最重要的事情是:所有将军如何能过达成共识去攻打拜占庭帝国。每个城邦向其他九个城邦派出九名信使,那么任何时间总计有90次信息传输,并且每个城市分别收到9条信息,可能每一条都写着不同的进攻时间,除此之外,信息传递的过程中,如果叛徒想破坏原有的进攻时间,就会自己修改相关信息,然后发给其他城邦亿混淆视听,这样结果是,部分城市收到结果后,会遵循一个或多个城市已经修改了的进攻时间,然后他们又会把错误的信息广播给其他城市,这样整个信息链中就充满了错误的信息,变成了一个相互矛盾的纠结体。

        针对这个问题,人们提出了两种解决方法

     

    方案一:口头信息

    口头信息即使将军们派人用口信传达消息,口头传达消息隐含了下面前提条件:

    • 每个被发送的消息都能够被正确投递

    • 信息接受者知道消息是谁发的

    • 沉默(不发消息)可以被检测

        口头协议的算法很简单,如果其中一个节点,比如1发布消息出去,其他九个节点接受到1的消息,然后分别转告给其他的节点,每个节点都是信息的转达者,一轮下来,每个节点手上都会有10个信息(进攻或者撤退),有叛徒的话,那信息可能有进攻或者不进攻的不一致消息。每个人相当于手里有一本消息的账本,该怎么决策呢?如果有一半以上的人说进攻,那么采取进攻行动就是能成功的,所以这时即便有叛徒,只要听大部分人的,少数服从多数来行动即是有利的。

     

    举例:四位将军A、B、C、D,其中一位是叛徒

    1)D是叛徒。

    • 信息有A发送出去,A是忠诚将军,发送都是正确的信息v

    • B接收到A信息后,B是忠诚将军,转发正确信息v给C

    • D接收到D信息后,D是叛徒,转发错误信息x给C

    • C接受的信息集为{v, v, x},因为正确信息占大多数,所以会选择正确信息v作为执行的行动

    同理,B也是选择正确信息v作为执行的行动

     

    2)A是叛徒

    • A是叛徒,为了防止B、C、D三位达成一致,分别发送了信息x、y、z

    • B、C、D都是忠诚的将军,互相转发信息

    • B、C、D最终信息集都是{x, y, z}。因为信息集是一样的,所以B、C、D三位的执行的动作也是一致的。

    这种口头协议的算法也存在明显的缺点:口头协议并不会告知消息的上一个来源是谁,也就是消息不可追根溯源,出现信息不一致也很难找到叛徒在哪。

     

    方案二:书面协议

    书面协议相比口头协议,实际添加了下面两个隐含条件:

    • 将军们能够使用签名技术,签名不可伪造,一旦篡改即可发现。

    • 同时任何人都可以验证签名的可靠性。

    书面协议相比口头协议,所有的消息都是有记录的,解决了追根溯源的问题。

     

    方案三:比特币

        区块链技术是去中心化分布式的P2P网络系统,同样也存在拜占庭将军问题,比特币作为第一个区块链项目,通过过下面几个措施,完美解决拜占庭将军问题。

        措施一,发送信息成本。如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致谁都可以发起进攻的信息,为此,中本聪巧妙地在个系统加入了工作量证明法,工作量证明法需要花费计算机的算力去寻找合适的哈希值,谁是第一个寻找到哈希值,谁就可以传播消息,一段时间内只有一个节点可以传播信息。这样就解决信息混乱无序的问题。

        措施二,时间戳。如果不同的将军先后解出了题,各自先后向这个网络发布消息,于是各个节点都会收到来自不同节点发起的进攻或者不进攻的消息。中本聪设计了时间戳,为每个将军在解好题的时间盖上时间印章。最早解出题目的信息才是有效的。

        措施三,奖励机制。将军们凭什么要一起做工作量证明呢?中本聪设置一个奖励机制,谁是第一个计算出哈希值的,就奖励一定了比特币给谁,同样,拜占庭将军问题的奖励机制可以是瓜分拜占庭获得的利益。

        措施四,加密技术。对于信息的加密,中本聪引用了非对称加密。非对称加密算法的加密和解密使用来"公开密钥"和"私有密钥"两个密钥,这两个密钥成对出现,如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密; 同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密.比如,将军A想给将军B发送消息,为防止消息泄露,将军A只需要使用B的公钥对信息加密,而B的公钥是公开的,B只需要用只有他自己只的私钥解密即可。非对称加密技术完美解决消息传送的私密性、身份确认和签名的不可伪造、篡改等问题。

        措施五,共同账本。如果其中有叛徒了,怎么办呢?在这个分布式网络里,每个将军都有一份实时与其他将军同步的消息账本,账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军,尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

        由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情,比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识。比特币因此完美解决了拜占庭将军问题。

     

    共识机制的原理

     

    下图是目前共识机制,本文只介绍POW、POS、DPOS和BFT共识机制

     

    POW

        POW,Proof Of Work,即工作量证明。最初是由中本聪提出来用于比特币系统,其核心思想是通过算力竞争来保证数据一致性和共识的安全性。比特币系统中,各节点(即矿工)基于各自的计算机算力相互竞争来公共同求解一个复杂但容易验证的SHA256数学难题,最快解决该难题的节点获得区块的记账权和系统自动生成的比特币奖励。

     

    比特币交易记账过程

          在比特币平台中,中本聪就是运用的pow工作量证明来使全网节点达到51%及以上的共识记账,以下将介绍pow工作量证明共识是如何记账的

    • 客户端产生新的交易,向全网广播

    • 每个节点收到请求,将交易纳入区块中

    • 每个进行POW共识算法,寻找合适的目标哈希值

    • 当某个节点找到了合适的目标哈希值,向全网广播

    • 当且仅当该区块的交易是有效的且在之前中未存在的,其他节点才认同该区块的有效性

    • 接受该区块且在该区块的末尾制造新的区块

     

    pow三要素

     1)工作量证明函数

         在比特币中使用的是SHA256算法函数,是密码哈希函数家族中输出值为256位的哈希算法。

      2)区块

        比特币的区块结构

    3)难度值

    关于难度值,如公式:

    • 新难度值=旧难度值*(过去2016个区块花费时长/20160分钟)

    • 目标值=最大目标值/难度值

            新难度值,撇开旧难度值,按比特币理想情况每10分钟出块的速度,过去2016个块的总花费接近20160分钟,这样,这个值永远趋近于1。

        目标值,最大目标值为一个固定数,若过去2016个区块花费时长少于20160分,那么这个系数会小,目标值将会被调大些,反之,目标值会被调小,因此,比特币的难度和出块速度将成反比例适当调整出块速度。

     

    pow算法流程

        从流程图中看出,pow工作量证明的流程主要经历三步:

    1)生成Merkle根哈希

        节点自己生成一笔交易,并且与其他所有即将打包的交易通过Merkle树算法生成Merkle根哈希

    2)组装区块头

        区块头将被作为计算出工作量证明输出的一个输入参数,因此第一步计算出来的Merkle根哈希和区块头的其他组成部分组装成区块头

    3)计算出工作量证明的输出

               i. 工作量证明的输出=SHA256(SHA256(区块头))

               ii. if(工作量证明的输出<目标值),证明工作量完成

               iii.if(工作量证明的输出>=目标值),变更随机数,递归i的逻辑,继续与目标值比对。

     

    优点

    完全去中心化,节点自由进出,避免建立和维护中心机构的成本

     

    缺点

    POW共识机制会导致大量资源浪费,并且挖矿的矿池出现高度集中趋势,有违去中心化的初心。更大的问题是POW共识达成时间比较长,比特币每秒最多只能7笔,不适合商用。

     

    POS

        POS,Proof Of Stake,即权益证明。2012年,PPCoin最先运用权益证明共识机制于区块链中。以太坊前三阶段均采用pow共识机制。第四阶段开始以太坊将采取权益证明机制。

        由于工作量证明消耗大量资源且计算资源越来越中心化,权益证明日益受到重视。如果工作量证明是将计算机的算力作为投票的份额,那么权益证明就是将与系统相关的权益作为投票的份额。PPCoin采用的POS的权益因子是币龄,所谓的币龄,就是根据钱包里面代币的数量和代币的时间来合成,比如你持有一百个币,总共持有了30天。那么此时你的币龄为3000。根据币龄计算挖矿难度,币龄越高,获得记账权的概率就越大。如果你发布了一个POS区块,你的币龄就会被清空。假如每被清空365个币龄,你将会从区块中获得0:05个币的。那么你将获得3000×5%÷365等于0.41个币作为奖励。

        假设网络同步性较高,系统以轮作为单位运行,每一轮开始,节点验证自己是否可以通过权益证明被选为代表,只有代表可以提出新的区块。代表在收到的最长的有效区块链后,提出新的待定区块,并将自己生成的新的区块广播出去,等待确认。下一轮开始时,重新选取代表,对上一轮的结果进行确认。诚实的代表会在最长的有效的区块链后面继续工作。如此循环,共同维护区块链。

     

    优缺点

        POS权益证明机制在一定程度上解决了工作量证明机制消耗能量大的问题,缩短了共识达成的时间,提高系统的效率。权益证明每一轮产生多个通过验证的代表,也就是产生多个区块,在网络同步性很差的时候,系统很容易产生分叉,影响一致性。若恶意节点成为代表,就会通过控制网络通信,形成网络分区。向不同的网络分区发送不同待定区块,就造成了网络分叉,从而可进行二次支付攻击,严重影响系统安全。恶意敌手也可以通过对诚实代表进行贿赂,破坏一致性。权益证明的关键在于如何选择恰当的权益,构造相应的算法,以保证系统的一致性和公平性,不当的权益会影响系统公平性。比如,PPCoin,采用币龄作为权益因子,若部分节点在进入系统初期就保持一部分小额交易不用支付,则币龄足够大,该节点更容易被选为代表,影响系统公平性。

        POS容易遭受无利害攻击。假设系统中出现两个分链,那么对于持有币的“挖矿者”来讲,矿工的最佳策略就是同时在两个分支上进行挖矿,这样无论哪个分支胜出,对于持币者来讲,都会获得利益,而不会有利益损失,这导致的问题是,只要系统存在分叉,"矿工们"都会同时在这几个分支上挖矿;因此在某种情况下,发起攻击的分叉链极可能成功,因为所有也也可能都在这个分叉链上形成了共识,而且甚至不用持有51%的权益,就可以成功发起分叉攻击。

     

    改良

        PoSV,针对PoS的币龄是时间的线性函数这一问题进行改进,致力于消除货币持有者的囤币现象。PoSV将POS中时间线性函数改为指数式的衰减函数,也就是,币龄的增长率随时间逐渐减少最后趋于零,因此新币的币龄比老币的币龄增长更快,直到达到上限阈值,这样在一定程度上缓和了货币持有者囤币现象。

        POA意为行动证明,也是POS的一种改良方案。它的本质是通过奖励参与度高的货币持有者而不是惩罚消极参与者来维护系统安全。主要思想是将挖矿生成币一部分以抽奖的方式分发给所有活跃节点,而节点拥有的股份与抽中的的概率成正比。

        Casper,是以太方后期使用权益证明共识机制,有来两个候选方案,分别是FFG和CBC。

        FFG,又名“Vitalik's Casper” ,是一种混合 PoW/PoS 的共识机制,它是以太坊第一个 PoS 权益证明的候选方法。具体地说,FFG 在工作量证明(如以太的 ethash PoW 链)的基础上,使用了权益证明。块链继续用 ethash PoW 算法增加区块,但是每50个块有一个 PoS “检查点”,通过网络验证者来评估区块的最终有效性。

        CBC,又称“Vlad's Casper”,与传统协议设计的方式不同:协议在开始阶段是部分确定的,其余部分 协议以证明能够满足所需/必需属性的方式得到。在这种情况下,得出完整协议的一种方法是实现所预计的安全性 (一个理想的对手) ,或者提出合理估计的错误的例外,或列举潜在的未来错误估计。更具体地说,Vlad 的工作侧重于设计协议,扩展单个节点对安全性估计的局限视角,以实现共识安全性。

     

    DPOS

        为了进一步加快交易速度,同时解决PoS中节点离线也能累积币龄的安全问题,Daniel Larimer于2014月提出DPoS。

        股份授权证明(DPoS)共识机制的基本思路类似“董事会决策”,即系统中每个股东节点可以将其持有的股份权益作为选票授予一个代表,获得票数最多且愿意为代表的前101个节点将进入“董事会”,按照既定的时间表轮流对交易进行打包结算并且签署(即生产)一个新区块,每个区块被签署之前必须缴纳一定量的保证金,其金额相当于生产一个区块的收入的100倍,授权代表节点必须对其他股东节点负责,如果其错过了签署相对应的区块,股东将会收回选票,从而将该节点“投出”董事会,因此授权节点通常必须保证99%以上的在线时间以实现盈利目标。

        DPOS目前用的项目有 BTS、EOS和ASCH,其中EOS的比较典型有名气。EOS系统中共有21个超级节点和100设备节点,超级节点和备用节点由EOS权益持有者选举产生。区块的生产按照21个区块为一轮。在每轮开始的时候会选出21个区块生产者,前20名区块生产者由系统根据网络持币用户的投票数自动生成,最后一名区块生产者根据其得票数概率生成。所选择的生产者会根据从区块时间导出伪随机数轮流生产区块。

     

    DPOS安全证明

        假设有3个区块生产者A、B、C。分六种场景证明DPOS的安全性。

    1)天下太平的正常情况:生产者按系统排序生产区块。

    2)少数人的小分叉。

        由于生产者顺位由系统安排,所以少数人在出块速度上注定比多数人慢,恶意的少数节点产一个块时,正常的多数节点至少产两个。于是,诚实的2/3多数节点产的链永远比少数节点长。

    3)断网:网络碎片化

        断网会导致任何分叉上都没有绝对多数的生成者。此时,最长的链将倒向最大的那个少数群体。但当网络恢复时,较小的少数群体会切换到最长的那条链,以恢复并修正共识。

        可能存在这样三个分叉:其中两个最长的分叉长度相同。在这种情况下,第3个(较小)分叉的块生产者重新加入网络时会打破平局。只要块生产者总数为奇数,不可能长时间保持平局。另外,生产者的顺位会被系统“洗牌”,这使得出块顺序随机化,从而确保即使是生产者数目相同的两个分叉也会以不同的步长增长,最终导致一个分叉超过另一个。

    4)双重生产:少数人多产两个块

        少数节点B在其时间段内产生了两个或更多可供选择的块。下一个计划生产者C可以选择跟在B产生的任何一个区块后构建链条。一旦如此,这个选择就成为最长的链,而所有选择B1的节点都将切换分叉。所以,少数恶意节点企图广播再多的替代块也无关紧要,它们当最长链的光景永远不会超过一轮。

    5)最后不可逆的区块

        在网络碎片化的情况下,多个分叉都可能持续变长。长远来看,最长的链终将获胜,但观察者需要一种确切的手段来判定一个块是否绝对处于增长最快的那条链。DPOS告诉观察者,应该视2/3多数块生产者的确认来决定。下图中,区块B已被C和A所确认,这代表了2/3多数确认,由此我们可以断定,只要恶意节点数量低于1/3,A-B-C-A这条链始终最长。

        这一规则类似于比特币的6块确认。但是,一些聪明人总能搞点事情出来,使得两个交易出现在不同的、且最后不可逆的区块上。这种边缘攻击要求攻击者能完全控制通信延迟,并且在几分钟内两次使用该控制。但即便这真的发生,那么“最长链胜出”的长期规则依然适用。所以,这种攻击的可能性无限接近0,并且经济后果无关紧要。

    6)多数生产者舞弊

        多数生产者一旦腐败,他们就可以产生无限数量的分叉,每个分叉都看起来以2/3多数确认向前走,最后不可逆块算法蜕变为最长链算法。最长链就是为最大多数所批准的那条链,而这将由少数剩下的诚实节点决定。但这种行为不会持续,因为利益相关方最终会投票替换生产者。

    所以,不管分叉多凌乱,只要利益相关方出手投票,链总能保持诚实。

     

    优点

    1)能耗更低:DPoS机制将节点数量进一步减少,在保证网络安全的前提下,整个网络的能耗进一步降低,网络运行成本最低。

    2)更快的确认速度:每个区块的时间为10秒,一笔交易(在得到6-10个确认后)大概1分钟。

     

    缺点

    1)投票的积极性并不高:绝大多数持股人从未参与投票。这是因为投票需要时间、精力以及技能,而这恰恰是大多数投资者所缺乏的。

    2)垄断性高:PoW下几乎没有门槛,任何人都可以投入算力,通过竞争获得区块奖励。而DPoS延续了PoS的弊端,只有持币者才可以获得区块链奖励,其实这就带来了一种制度性门槛,最终导致DPoS币的流动性大大减少,穷者越穷,富者越富。

    3)牺牲了中心化的概念,选举固定数量的见证人作为记账候选人有可能不适合完全去中心化概念。

     

    风险

    1、对于坏节点的处理存在诸多困难:社区选举不能及时有效的阻止一些破坏节点的出现,给网络造成安全隐患。

    2、超级节点易遭破坏:如果被选举出的超级节点没有强大的算力保护自身,很容易被DDOS(分布式拒绝服务攻击),这将会严重影响网络稳定。

     

    BFT

        拜占庭将军问题提出以后,有很多算法提出来用于解决这个问题,下面主要介绍区块链中使用的PBFT和DBFT两种算法。

     

    PBFT

        实用拜占庭容错算法PBFT是比较常用的解决拜占庭将军问题的算法,该算法主要是用来解决原来拜占庭算法效率不高的问题,将算法的复杂度从节点的指数级别降到节点的平方级别,是拜占庭算法在实际的应用中可行。

    PBFT算法主要用于节点比较少的联盟链,或者像DPOS这样具有代理机制的公链中,比如EOS,只有21个超级节点,就可以使用PBFT。超级账本就是使用PBFT算法

     

    PBFT的算法流程

        PBFT算法流程主要分为五个阶段:request、pre-prepare、prepare、commit和reply

        PBFT算法前提,采用密码学算法保证节点之间的消息传送是不可篡改的,PBFT容忍无效或者恶意节点数:f,为了保障整个系统可以正常运转,需要有2f+1个正常节点,系统的总节点数为:|R| = 3f + 1。也就是说,PBFT算法可以容忍小于1/3个无效或者恶意节点。

    PBFT是一种状态机副本复制算法,所有的副本在一个视图(view)轮换的过程中操作,主节点通过视图编号以及节点数集合来确定,即:主节点 p = v mod |R|。v:视图编号,|R|节点个数,p:主节点编号。

    PBFT算法主体实现流程图如下:

    1) REQUEST:

        客户端c向主节点p发送<REQUEST, o, t, c>请求。o: 请求的具体操作,t: 请求时客户端追加的时间戳,c:客户端标识。REQUEST: 包含消息内容m,以及消息摘要d(m)。客户端对请求进行签名。

    2)PRE-PREPARE:

        主节点收到客户端的请求,需要进行以下交验:

    • 客户端请求消息签名是否正确。

    非法请求丢弃。正确请求,分配一个编号n,编号n主要用于对客户端的请求进行排序。然后广播一条<<PRE-PREPARE, v, n, d>,  m>消息给其他副本节点。v:视图编号,d客户端消息摘要,m消息内容。<PRE-PREPARE, v, n, d>进行主节点签名。n是要在某一个范围区间内的[h, H]。

    3)PREPARE:

    副本节点i收到主节点的PRE-PREPARE消息,需要进行以下交验:

    • 主节点PRE-PREPARE消息签名是否正确。

    • 当前副本节点是否已经收到了一条在同一v下并且编号也是n,但是签名不同的PRE-PREPARE信息。

    • d与m的摘要是否一致。

    • n是否在区间[h, H]内。

    非法请求丢弃。正确请求,副本节点i向其他节点包括主节点发送一条<PREPARE, v, n, d, i>消息, v, n, d, m与上述PRE-PREPARE消息内容相同,i是当前副本节点编号。<PREPARE, v, n, d, i>进行副本节点i的签名。记录PRE-PREPARE和PREPARE消息到log中,用于View Change过程中恢复未完成的请求操作。

    4)COMMIT:

    主节点和副本节点收到PREPARE消息,需要进行以下交验:

    • 副本节点PREPARE消息签名是否正确。

    • 当前副本节点是否已经收到了同一视图v下的n。

    • n是否在区间[h, H]内。

    • d是否和当前已收到PRE-PPREPARE中的d相同

    非法请求丢弃。如果副本节点i收到了2f+1个验证通过的PREPARE消息,则向其他节点包括主节点发送一条<COMMIT, v, n, d, i>消息,v, n, d,  i与上述PREPARE消息内容相同。<COMMIT, v, n, d, i>进行副本节点i的签名。记录COMMIT消息到日志中,用于View Change过程中恢复未完成的请求操作。记录其他副本节点发送的PREPARE消息到log中。

    5)REPLY:

    主节点和副本节点收到COMMIT消息,需要进行以下交验:

    • 副本节点COMMIT消息签名是否正确。

    • 当前副本节点是否已经收到了同一视图v下的n。

    • d与m的摘要是否一致。

    • n是否在区间[h, H]内。

    非法请求丢弃。如果副本节点i收到了2f+1个验证通过的COMMIT消息,说明当前网络中的大部分节点已经达成共识,运行客户端的请求操作o,并返回<REPLY, v, t, c, i, r>给客户端,r:是请求操作结果,客户端如果收到f+1个相同的REPLY消息,说明客户端发起的请求已经达成全网共识,否则客户端需要判断是否重新发送请求给主节点。记录其他副本节点发送的COMMIT消息到log中。

    PBFT的View Change协议

        如果主节点作恶,它可能会给不同的请求编上相同的序号,或者不去分配序号,或者让相邻的序号不连续。备份节点应当有职责来主动检查这些序号的合法性。如果主节点掉线或者作恶不广播客户端的请求,客户端设置超时机制,超时的话,向所有副本节点广播请求消息。副本节点检测出主节点作恶或者下线,发起View Change协议。

        副本节点向其他节点广播<VIEW-CHANGE, v+1, n, C, P, i>消息。n是最新的stable checkpoint的编号,C是2f+1验证过的CheckPoint消息集合,P是当前副本节点未完成的请求的PRE-PREPARE和PREPARE消息集合。

        当主节点p = v + 1 mod |R|收到2f个有效的VIEW-CHANGE消息后,向其他节点广播<NEW-VIEW, v+1, V, O>消息。V是有效的VIEW-CHANGE消息集合。O是主节点重新发起的未经完成的PRE-PREPARE消息集合。PRE-PREPARE消息集合的选取规则:

    • 选取V中最小的stable checkpoint编号min-s,选取V中prepare消息的最大编号max-s。

    • 在min-s和max-s之间,如果存在P消息集合,则创建<<PRE-PREPARE, v+1, n, d>, m>消息。否则创建一个空的PRE-PREPARE消息,即:<<PRE-PREPARE, v+1, n, d(null)>, m(null)>, m(null)空消息,d(null)空消息摘要。

        副本节点收到主节点的NEW-VIEW消息,验证有效性,有效的话,进入v+1状态,并且开始O中的PRE-PREPARE消息处理流程。

     

    DBFT

        PBF主要用于联盟链,并不能单独使用于公链中,NEO改进了PBFT共识算法,提出代理拜占庭容错算法DBFT。它和EOS的DPos共识机制一样,由权益持有者投票选举代理人记账人,又代理人验证和产生区块。

    为了便于在区块链开放系统中应用,NEO的DBFT将PBFT的C/S构架的请求响应模式,改进为适合P2P网络的对等节点模式,并将静态的共识参与节点改为可动态进入、退出的动态共识参与节点,使其适合区块链的开放节点环境。

        DBFT的算法中,参与记账的是超级节点,普通节点可以 看到共识过程,并同步账本信息,但不参与记账。总共n个超级节点,分为一个议长和n-1个议员,议长会轮流当选。每次记账时,先有议长发起区块提案,一旦至少(2n+1)/3个记账节点同意这个提案,那么这个提案就成为最终发布的区块,并且该区块是不可逆的,所有里面的交易都是百分之百确认的,区块不会分叉。

     

    共识机制总结

    共识机制的评价指标

        区块链上采用不同的共识机制,在满足区块链数据一致性和有效性的同时会对系统整体性能产生不同的影响。综合考虑各个共识机制的特点,可以从一下5个维度作为共识机制的选择标准。

    安全性

        指共识机制防攻击、防欺诈的能力,即是否可以防止双重支付(即双花)、自私挖矿等攻击,是否有良好的容错能力。以金融交易为驱动的区块链系统在实现一致性的过程中,最主要的安全问题就是如何防止和检测双重支付行为。另外,自私挖矿通过采用适当的策略发布自己的区块,可以获得更高的相对收益,也是一种威胁比特币系统安全和公平性的攻击方法

    扩展性

        指区块链是否支持网络节点扩展,扩展性是区块链设计要考虑的关键因素之一。根据对象不同,扩展性又分为系统成员数量的增加和待确认交易数量增加两部分。扩展性主要考虑当系统成员数量、待确认交易数量增加时,随之带来的系统负载和网络通信量的变化。

    性能效率

        指区块链交易达成共识被确认的效率。即从交易达成共识被区块链中至被最终确认的时间延迟,也可以理解为系统每秒处理确认的交易数量。

    资源消耗

        指达成共识的过程中,系统所要耗费的资源大小,包括共识过程中耗费的CPU、网络输入输出、存储等计算机资源。区块链共识机制借助计算机资源或者网络通信资源达成共识,以比特币系统为例,基于工作量证明的共识机制需要消耗大量计算资源进行挖矿来提供信任证明完成共识

    共识机制对比

        巴比特创始人提出了区块链“不可能三角”理念:去中心化、安全、环保构成一个不可能三角形,设计一个符合其中特别特性的数字货币,则必然会使得第三个特性无法达成。

        对于共识机制而言,去中心化、效率与降低能耗和安全性三个方面,也不可能面面俱到,想要完全去中心化,则会牺牲一定的效率与降低能耗和性能,想要达到很高的可扩展,也必然面临着去中心化的危险,在这两者之外,还要权衡系统的安全性,就目前的共识机制来看,都无法完美实现三者的融合。如下图所示:

        上图常见4种共识机制PoW、PoS和PBFT,在去中心化、安全性和效能与降低能耗上面都有自己的不足。

        比如比特币和以太坊采用的POW共识算法,造成大量资源浪费,同时PoW共识算法的网络性能太低,需要等待多个确认,容易产生分叉,区块的确认共识达成的周期较长,现在每秒交易量的上限是7笔,不适合商用

        比如PoS虽然在效率和去中心化达到了较好的效果,但是在安全性上偏弱。主要是PoS容易遭受无利害关系攻击和远程攻击等。

        比如EOS采用DPOS共识算法,虽然在可扩展性、效率等方面大大提高,但是这是以牺牲去中心化作为前提的。

     

    共识机制展望

        共识机制作为区块链技术中至关重要的一个组成部分,备受学术界和企业界关注。良好的共识机制有益于区块链技术在理论和实践上的推广。

        在达成一致性的前提下,平衡去中心化、效率和资源是共识机制的痛点。比特币采用完全区中心,但是效率低下,EOS效率提高了,但是却牺牲了去中心化,未来应该在因地制宜,结合实际应用场景,设计最佳共识机制。另外可以借鉴各个共识机制的优缺点,尝试将不同的共识机制结合起来,形成一种新的共识机制,比如将PoW和PoS结合,将PoS和BFT结合。

        对于现存区块链的一些问题,要结合加密算法和底层存储技术的改进,共识机制才能发挥最大效果,比如零知识证明、环签名、闪电网络、DAG、HashGraph。随着全球对区块链的关注,越来越多人投入其中研究开发,未来会有更多工作高效设计巧妙的共识机制被设计出来。

        目前区块链的匿名性与弱中心化架构,与现有的监管体系存在某种程度的天然冲突,所以,比特币才会被用于暗网黑市交易、跨国境洗钱等场景。未来,区块链技术最终必然演化为"监管融入技术"的模式。区块链的难以篡改、共享账本、分布式的特性,更易与监管的接入,获得更加全面实时的监管数据。让监管机构本身也参与到技术中去,通过技术本身实现对技术的监管,将最终化解区块链与监管的冲突。

     

    更多关于区块链技术和投资的文章,请关注公众号“币梭”

    展开全文
  • DPOS共识机制

    千次阅读 2019-04-01 10:59:00
    EOS在第一版白皮书中使用的DPOS共识机制,而在新一版的白书中,对共识机制进行了改进,使用BFT+DPOS混合共识机制。使出块速度从原来的3秒变为0.5秒,tps显著提高,达到测试3590次/秒。 EOS第一版共识机制DPOS EOS...
    想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
    链客,有问必答!
    

    EOS在第一版白皮书中使用的DPOS共识机制,而在新一版的白书中,对共识机制进行了改进,使用BFT+DPOS混合共识机制。使出块速度从原来的3秒变为0.5秒,tps显著提高,达到测试3590次/秒。

    EOS第一版共识机制DPOS
    EOS现在系统运行的链用的共识机制是第一版白皮书的,也就是纯DPOS共识机制。
    DPOS即授权权益证明共识机制。相比于比特币的POW机制,DPOS不用浪费算力资源去争夺记账权,而是通过赋予EOS通证持有人的投票选举,选出21个超级节点担任记账人的角色,保证整个网络的正常运行。值得一提的是,人们的投票所占的比重取决于他们持有多少token。这意味着拥有更多token的人将比拥有极少token的人更多地影响网络。这其实很好理解,因为持有网络的运行的好坏会对持有更多token的人的利益产生更大的影响,这使得他们的投票更谨慎。
    21个超级节点轮流负责记账。每轮都会随机打乱他们的出块顺序,每个超级节点作为出块节点时,只负责出一个块。每一个区块产生后会按照顺序传递给下一个超级节点中。第二个超级节点要负责打包新的区块,同时还要确认上一个区块的内容。当某一个区块被超过2/3的超级节点确认后,则该区块将成为不可逆转区块,即上链区块。

    该算法有些地方明显需要改良。比如容易出现漏块现象。21个超级节点分布世界各地,如果随机打乱顺序,导致总是依次顺序的节点相距地理位置很远,如中国和美国,这两国的网络传输单向时间是300毫秒,一来一回总共600毫秒。那么中国这边出块,然后经过其他20个节点确认后返回,假设时间总共是4秒;而接下来美国出块,反馈回来的时间是3秒,比中国快1秒,肯定是先上链的,结果中国出的块就被丢弃掉了。当前目前设的出块时间是3秒,理论上能够解决这种漏块现象,但想提高eos的性能,这块肯定是要改进的。

    EOS最新版共识机制BFT-DPOS
    BFT即拜占庭容错算法。EOS引入这个算法,主要是赋予出块节点更大的权力,加快出块速度,解决节点出的块都被漏掉的问题。

    EOS共识算法的升级,势必需要超级节点们更新代码,使用新的程序,然后在当前链上继续运行。但如果超过1/3的节点拒绝更新代码,可能会出现硬分叉问题。所以如何很好地做好过渡是EOS最大难题。

    我们一起分析下改进后的共识机制是如何工作的。

    EOS使用BFT+DPOS共识机制后,不再按照出块顺序让超级节点一个个验证区块内容,而是让出块节点成为主节点。出块后,同时向其他20个超级节点进行广播该区块,并获得他们的验证。如果超过2/3的节点验证通过后,则该区块将成为不可逆转区块。

    BFT可以使EOS出块速度显著增加。目前使用BFT+DPOS共识机制的EOS,可以实现0.5秒的出块速度,1秒实现区块的不可逆转。为避免因出块速度过快而漏块,EOS的超级节点按照其他的地理位置依次轮流成为主节点,尽可能减少超级节点的网络延迟。比如超级节点有中国、美国、加拿大、日本,那么成为主节点的顺序是中国>日本>美国>加拿大或者反过来,总之保证相邻最近的超级节点要依次交接主节点角色。

    同时规定每个主节点连续生产6个区块,至少保证6个区块的前几个能确认完成,不存在整个超级节点被跳过的现象。可以看出每轮记账节点的出块总时间还是3秒钟,在这3秒里,因为他对他自己出的块是信任的,所以可以持续出块。一边出块一边广播,3秒之内率先广播的区块肯定能够得到确认,在网络通畅的情况下,6个区块都会可能得到确认。

    EOS共识处理分叉问题非常简单,和比特币一样,节点只会认可最长的链作为合法链。假如某个节点开始作恶,自己出块并生成自己的链,也就是每次轮到它就产生6个块。但是超级节点总共21个,每轮产生理论126个块。根据选择最长链作为主链原则,肯定作恶的链得不到认可。所以EOS不会发生分叉问题。

    在这里插入图片描述

    展开全文
  • 上文深入比特币、以太坊源码带你解读POW共识机制我们学习探讨了POW共识机制,看完得童鞋们应该就知道POW是有几大缺点的:出块慢,共识时间长、开销大等等,那么有没有其它的共识机制能够解决这些问题呢?答案当然是...

    序言

            上文深入比特币、以太坊源码带你解读POW共识机制我们学习探讨了POW共识机制,看完得童鞋们应该就知道POW是有几大缺点的:出块慢,共识时间长、开销大等等,那么有没有其它的共识机制能够解决这些问题呢?答案当然是:有,它就是POS共识机制。下面我们一起来看看它是怎么做到的。

    概念

           全称为Proof Of Stake,又叫权益证明。POS是指矿工节点通过自己持有的代币,竞争区块签名机会,持有的代币越多,签名成功出块的概率就越高。出块成功之后,根据各个矿工签名时的代币数量进行奖励分配,简单来说就是付出成本越高,收益越高。

    原理

    讲原理之前,先给大家普及两个概念:难度值、nonce和币龄

    难度值和nonce

            难度值和nonce在上文深入比特币、以太坊源码带你解读POW共识机制有对该名词的详细解释,这里就不再赘述了。

    币龄(coinage)

            币龄,顾名思义,就是代币的年龄。那么它是怎么计算出来的呢?它有什么用呢?我们先看下它是怎么计算出来的:
    coinage = 币的个数*持有时间
            看到这大家应该就懂了,币龄就是你持有可用币的时间,你的币越多,或者你持有时间越长,你拥有的币龄就越大。你的币龄越大,参与签名出块成功率就越高,因为更容易达到51%嘛。值得一提的是,当你使用币参与签名出块,无论你出块成功还是失败,你此次使用的币龄都将被清空,需要重新从0开始累计。

    币龄举例

            比如你有10个币,持有了10天未发生签名投票出块,那么产生的币龄就是100;如果这时候你这10个币参与了签名投票出块,那么你拥有的这100个币龄就被花掉了,你的币数量虽然还是10个,但是币龄要被重置,变更为0。币龄在数据链上就可以取到,任何人都可以验证。

    币龄/收益转换

    收益计算公式:
    收益 = 币龄 * 年利率 / 365
            打个比方说,你如果拥有3650的币龄,持币利率为1%,那么可获得的收益为 3650*0.01/365 = 0.1。说明该矿工此次挖矿成功可获得0.1的代币奖励。

    原理

    我们先看下它的有效hash计算方式:
    hash (block_header) < target * coinage
            其实POS的原理和POW比较类似,系统设定好挖矿目标值target,然后矿工开始工作出块,矿工每次出块都是nonce从1开始递增进行寻找可用的nonce值,直到找到符合规则、可用的hash为止,最先找到的矿工可获得挖矿奖励。
            但是,从上面的就可以看出,coinage这个变量会造成每个矿工获得有效hash的集合大小不一样,矿工的币龄越大,也就意味着它获得有效hash越容易。且矿工参与签名的币越多,就越容易满足51%的成功出块条件,更容易获得奖励。

    举例

    例如当前target是4369,完整的哈希长度假设是16位.
      A矿工的币龄是15,那么A矿工的目标值为65535,换算成十六进制就是0x000000000000FFFF。即
    hash( block_header ) < 0x000000000000FFFF
      而B矿工比较有钱,他的币龄是240,那么B矿工的目标值就是1,048,560,换算成十六进制就是0x00000000000FFFFF。即:
    hash( block_header ) < 0x00000000000FFFFF
      B矿工的可用hash集合更大,所以B矿工获得记账权的概率肯定要比A高。

    优点

    破解了51%攻击
            如果挖矿者发起51%攻击,就需要拥有全网51%的币或币龄,这几乎不可能办到,即使你成功地实施了51%攻击,那么也意味着作为全网最大的持币大户的你,损失也会最大。
    相比POW,效率更高
            可用更快的达成共识,出块更快。
    能耗低
            挖矿不依赖于大量资源的消耗。通过持币利息进行通胀。
    安全性
            规则上限制了必须持币30天以上才能参与区块签名,加大了作恶成本。

    缺点

    趋于中心化
            POS基于权益证明机制,若代币趋向集中的化,去中心化也变相的趋向于中心化了
    效率不高
            虽然相比于POW,POS的效率有显著的提升,但是还是无法满足用户的需求。

    思考

    币发行问题
            我们从pos的实现算法公式去看,币龄的计算公式中,假如一开始挖矿,只有创始区块中有币,也就是说其他矿机是没法参与挖矿的,因为币的个数这个值对他们来说永远是零,这也就是pos机制的缺陷之一币无法发行的问题。
    币龄积攒问题
             同样是从pos的实现算法公式可以分析到,币龄其实就是时间,一旦挖矿者囤积一定的币,很久很久之后发起攻击,这样他也将很容易拿到记账权,所以我们得给每个币设计一个时间上限。
    弱流通性
            设计时间上限后,虽然解决掉了部分挖矿者囤积币的缺陷,从公式中仍然看到还会面临一个问题,也就是币的数量这个因素还是会影响我们拿到记账权,很多挖矿者还会囤积代币,持币者长期不参与出块,想着长时间持币获得利息,给代币造成流通上的缺陷。目前有些平台引入币龄按时间衰弱的方案来解决这一缺陷(例如:瑞迪币)。
    矿工离线攻击
            接下来让我们来看看pos共识机制还有哪方面的不足,即使上面的各种缺陷都多少有些解决方案,但例如挖矿者挖一段时间后离线,此时,时间将不纳入币龄减弱计算,这样,挖矿者通过离线时间长来囤积挖矿,同样面临灾难。
    Nothing at Stake
            Nothing at Stake,又叫无成本利益问题。意思在PoS系统中做任何事几乎没有成本,比如在PoS系统上挖矿几乎没有成本,这也就意味着分叉非常方便。方便到什么程度呢,每个诚实矿工在产生孤块的时候都可以继续挖下去,反正也没什么成本,反正分叉链和主链都可以同时挖,也就是任何持币较少的用户都可以尝试分叉,并且把分叉链广播出去。这个时候如果其他诚实矿工看到了,第一反应也是没有成本,那么咱们也来挖吧,说不定什么时候就值钱了,意思就是说任何逐利的矿工并不会使这个系统变得更强壮稳定,而是更加的混乱,可能会出现分叉链长度超过主链长度

    POS我们就介绍到这里了,大家有什么不同的见解欢迎留言讨论哦

    展开全文
  • 对于一个公链来说,是否足够安全,是否更有效率,共识机制是关键。 共识机制设计好了,一是能够保证网络的安全,保证记账的安全,免于遭受恶意攻击。二是能够让社区有效的运转,特别是在如何激励方面,是否有好的...
  • 然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识机制共识机制的目标 区块链作为一种按时间...
  • 什么是共识机制

    万次阅读 2019-05-15 18:35:43
    区块链是比特币的底层技术,类似于一个数据库账本,由分布在不同区域的节点共同参与决策,并记载所有的交易记录,而这些决策规则的核心就是共识机制。 所谓共识机制就是用来决定按照哪个参与节点记账,以及确保交易...
  • 区块链之共识机制

    2020-04-03 23:25:01
    网络中节点之间的共识,机器与机器之间的共识。...共识机制 解决存储数据的问题和通过数据的问题 各个节点达成一致的策略和方法。区块链的核心。 不同的共识机制适用于不同的场景 常见的共识机制 pow p...
  • 原创 | 本体社区成员@风吹一池皱 ...inviter=m7kp&VNK=9eac334b ----------------------...今天主要是和大家聊一聊本体的的共识机制。 在现实社会里几乎所有的环节都是中心化运作的结果,参与者只需要遵守中...
  • 区块链的共识机制

    2019-09-16 17:54:12
    在区块链系统中没有像银行一样的中心化机构,所以在进行传输信息、价值转移时,共识机制解决并保证每一笔交易在所有记帐节点上的一致性和正确性问题。区块链的这种新的共识机制使其在不依靠中心化组织的情况下,依然...
  • 然而在实际运行中,怎么解决因为去中心化后,保证整个系统能有效运行,各个节点诚实记账,在没有所谓的中心的情况下,互相不信任的个体之间就交易的合法性达成共识的共识机制共识机制的目标 区块链作为一种按时间...
  • 区块链共识机制浅谈

    千次阅读 2018-02-28 08:56:34
    区块链解决了在不可信信道上传输可信信息、价值转移的问题,而共识机制解决了区块链如何在分布式场景下达成一致性的问题。所以我认为区块链的伟大之处就是它的共识机制在去中心化的思想上解决了节点间互相信任的问题...
  • 区块链共识机制有哪些

    万次阅读 2019-05-17 21:16:32
    作者:李爱林 ...来源:知乎 ...首先,没有一种共识机制是完美无缺的,各共识机制都有其优缺点,有些共识机制是为解决一些特定的问题而生。 1.pow( Proof of Work)工作量证明 一句话介绍:干的越多,...
  • 由于区块链是去中心化分散网络,所以必须设计一套维护系统的运作顺序和公平性的机制,即共识机制,用来决定谁取得区块链的记账权并获得系统新币奖励。比特币的POW共识机制是一种多劳多得的模式,其优点是算法简单,...
  • 共识机制

    万次阅读 2019-05-14 09:13:33
    实现并执行共识是加密货币得以存在的核心。那么共识是什么,又是如何实现的呢?让我们从字典上的定义开始。 共识:名词,指普遍认可的协议。 这看起来很简单。我们可以将共识理解为普遍的或全局的协议。达成共识...
  • POW共识机制

    2019-02-28 21:57:24
    因为记账有一定的奖励和手续费,所以自然会有竞争,POW (Proof of Work) 工作量证明共识机制就是用来在“谁有权记账”这一问题上达成共识。 简单来说,就是争夺记账权的多方通过付出计算资源解决一个数学难题,谁先...
  • 浅谈POW共识机制

    千次阅读 2018-10-30 09:34:09
    浅谈POW共识机制 前言 近些年炒得极其火热的比特币,由于采用了POW共识机制,越来越多的人采取投资购买矿机来形成矿池,进而以此来寻找新的块,通过这种途径来获取找到新的块的比特币的奖励,以及拥有块的记账权...
  • 共识机制是什么意思?

    千次阅读 2018-08-29 15:24:56
    共识机制是什么意思?   在区块链的世界当中,我们应该经常听到一个词叫做共识机制,很多人都说,“尽管密码学占了区块链的半壁江山,但是共识机制却是整个区块链的灵魂。“那么共识机制究竟是什么呢?   首先...
  • PBTF共识机制

    千次阅读 2018-05-09 09:23:41
    简介实用拜占庭容错 (Practical Byzantine Fault Tolerance, PBFT) 算法是Miguel Castro和Barbara Liskov...PBFT描述了一种解决拜占庭容错问题的副本复制算法,解决了原始拜占庭容错算法效率不高的问题,将算法复...
  • 区块链共识机制解析

    2018-08-09 16:40:09
    共识机制是区块链网络运转的核心,区块链上不同节点的副本要保持一致,都需要通过共识算法来达成。但是为了保证安全和去中心化,目前区块链技术很难实现性能、安全和去中心化同时兼得。 不同的算法都有各自优势和...
  • 区块链的共识机制(序)

    千次阅读 2017-07-12 16:26:52
    一、前言 本文是一篇针对的是区块链的共识机制的序言,也可以说是“杂烩”。之后,还会详细地针对...区块链解决了在不可信信道上传输可信信息、价值转移的问题,而共识机制解决了区块链如何在分布式场景下达成一致性的
  • 区块链共识机制有哪些?

    千次阅读 2018-05-16 18:07:16
    共识机制作为区块链技术的核心,很大程度上决定了整个区块链系统节点间的相互信任,是不是很多小伙伴对于区块链技术有哪些共识机制还不是很了解呢,下面就将区块链共识机制为大家做了整理。POW机制POW的全称为Proof ...
  • 小蚁共识机制

    2018-04-11 17:04:53
    小蚁是基于区块链技术,将实体世界的资产和权益进行数字化,通过点对点网络进行登记发行,转让交易,清算交割等金融业务的去中心化网络协议,小蚁可以被用于股权众筹,P2P网贷,智能合约等领域 小蚁共识机制使得...
  • 从比特币诞生以来,POW的设计理念成为数字货币和区块链的主流共识机制,但是由于其对能源的消耗巨大,2013年点点币(Peercoin)系统中提出并实现了另一种共识机制——权益证明。目前点点币和量子链等都采用POS共识...
  • 共识机制就是在一个群体中的个体通过某种方式达成一致性的一种机制,比如在一个团队、或者一个公司里的个体意见不一致时,就需要有一个领导,由领导来做决定,保证团队达成共识。 目前的共识算法,主要有基于算力的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,047
精华内容 12,018
关键字:

共识机制解决的问题