• 区块链共识机制分类


    什么是共识机制

    区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆,提供一个最坚实且去中心化的系统。
    
    区块链分布式记账的方式使得每个人手上都有一本完整的账本,全网共有。但是随着节点的不断增多,数据越多,账本也越安全,难以摧毁。除此之外,任意一个或者部分节点的账本被篡改,都不可能被全网认同,除非你能控制51%的节点,即51%攻击,但是这耗能巨大,几乎是不可能的。
    
    同时随着节点不断增加,谁来记账,如何选择合适的人来记账成为一个问题,而制定一个记账人的选择方式以及规定,让大家来遵守这个规定,达成共识,这就是区块链里面的共识机制。
    
    共识机制是区块链节点就区块信息达成全网一致共识的机制,说得更直白一些就是对于如何选择记账人达成共识。共识机制可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。
    
    比特币作为区块链的第一个应用,它的共识机制PoW共识机制曾经一枝独秀,但是随着区块链技术的不断发展,各类不同的共识机制开始不断涌现,各有千秋,各有拥趸。
    

    共识机制分类

    PoW( Proof of Work)工作量证明——多劳多得

    PoW机制中根据矿工的工作量来执行货币的分配和记账权的确定。算力竞争的胜者将获得相应区块记账权和比特币奖励。因此,矿机芯片的算力越高,挖矿的时间更长,就可以获得更多的数字货币。
    
    优点:算法简单,容易实现;节点间无需交换额外的信息即可达成共识;破坏系统需要投入极大的成本。
    
    缺点:浪费能源;区块的确认时间难以缩短;新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;容易产生分叉,需要等待多个确认;永远没有最终性,需要检查点机制来弥补最终性。
    
    目前基于PoW共识机制的数字货币有很多,比特币、莱特币、狗狗币、达士币、门罗币等初期的数字货币大多都是PoW共识机制。
    
    PoS(Proof of Stake)股权证明算法——持有越多,获得越多
    POS 机制采用类似股权证明与投票的机制,选出记帐人,由它来创建区块。持有股权愈多则有较大的特权,且需负担更多的责任来产生区块,同时也获得更多收益的权力。
    
    POS 机制中一般用币龄来计算记账权,每个币持有一天算一个币龄,比如 持有 100 个币,总共持有了 30 天,那么此时的币龄就为 3000。在 POS 机制下,如果记账人发现一个 POS 区块, 他的币龄就会被清空为 0,每被清空 365 币龄,将会从区块中获得 0.05 个币的利息(可理解为年利率 5%)。
    
    优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。
    
    缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。
    
    最先开始运用权益证明共识机制的区块链项目是2012年诞生的PeerCoin,以太坊前三阶段均采用PoW共识机制,在第四阶段开始以太坊将采用权益证明机制,此外,量子链和Blackcoin都采用POS共识机制。
    

    DPOS(Delegated Proof-of-Stake)股份授权证明

    DPOS 是在 POS 基础之上发展起来的。与PoS的主要区别在于持币者投出一定数量的节点,代理他们进行验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。
    
    DPoS的工作原理为:每个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。其挑战是通过及时而高效的方法达到51%批准。为达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬。DPoS的投票模式可以每30秒产生一个新区块。
    
    优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
    
    缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。
    
    比特股(BitShares)社区首先提出了股份授权证明机制,和比特股一父同胞同出于大神BM之手的EOS以及Steem也是基于此共识机制,LBTC、BCX 、Lisk等也都采用了该共识机制,DPoS的支持者众多,影响力广泛,后来者居上。
    

    DAG(Directed acyclic graph)有向无环图——无区块链概念

    DAG最初出现就是为了解决区块链的效率问题。其通过改变区块的链式存储结构,通过DAG的拓扑结构来存储区块。在区块打包时间不变的情况下,网络中可以并行的打包N个区块,网络中的交易就可以容纳N倍。
    
    之后DAG发展成为脱离区块链,提出了blockless无区块的概念。新交易发起时,只需要选择网络中已经存在的并且比较新的交易作为链接确认,这一做法解决了网络宽度问题,大大加快了交易速度。
    
    优点:交易速度快;无需挖矿;极低的手续费。
    
    缺点:网络规模不大,导致极易成为中心化;安全性低于PoW机制。
    
    目前采用这个技术有IOTA、byteball两个币,前段时间国内首个基于DAG的物联网区块链项目ITC万物链币价也取得了不小的涨幅。
    

    PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错——分布式一致性算法

    实用拜占庭容错在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。而拜占庭问题的可能解决方法为:在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。
    
    优点:系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证;共识的时延大约在2~5秒钟,基本达到商用实时处理的要求;共识效率高,可满足高频交易量的需求。
    
    缺点:当有1/3或以上记账人停止工作后,系统将无法提供服务;当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;去中心化程度不如公有链上的共识机制;更适合多方参与的多中心商业模式。
    
    实用拜占庭容错主要应用于央行的数字货币以及布萌区块链。
    

    Pool验证池——私有链专用

    Pool验证池,基于传统的分布式一致性技术,加上数据验证机制;之前曾是行业链大范围在使用的共识机制,但是随着私有链项目的逐渐减少渐渐开始势微。
    
    优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
    
    缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。
    

    自定义共识机制以及混合共识机制——私人订制

    小蚁——dBFT(delegated BFT)授权拜占庭容错算法
    
    小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。dBFT和PBFT的关系类似于 PoS和DPoS的关系。
    
    dBFT在PBFT的基础上做出了多出改进:将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。
    
    特点:专业化的记账人;可以容忍任何类型的错误;记账由多人协同完成,每一个区块都有最终性,不会分叉;算法的可靠性有严格的数学证明;当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据。
    

    唯链——PoA(Proof-of-Authority)

    PoA共识机制,这种共识机制能达到的TPS,相较于比特币的PoW和以太坊即将采用的PoS,在TPS上都要高出很多。唯链创世团队曾经披露唯链研发团队测试能达到10000TPS,10000TPS足够满足很长一段时间内的性能要求。
    
    PoA与PoS类似,但是POS是基于持币加时间的模式,所以同样会造成利益分配的不均衡和大节点的产生,在PoA中,验证者不需要在网络中持有股份,但是必须具有已知的和经过验证的身份,这意味着验证者不会有动机为自己的利益行事,由这些验证者来验证和治理DAPP的投票。如此,让PoA的网络变得更加安全和便宜。
    
    除了唯链以外,欧链Oracles采用的也是PoA共识机制。
    

    Ripple——RPCA(Ripple Protocol consensus algorithm)

    瑞波共识机制RPCA是一个类似PBFT的共识机制,属于节点投票的共识机制。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。与比特币及点点币一样,瑞波系统将股东们与其投票权隔开,并因此比其他系统更中心化。
    
    Stellar的共识机制SCP(Stellar Consensus Protocol)就是在“Ripple共识算法”的基础上演化而来的。
    

    Hcash——PoW+PoS共识机制

    Hcash采用混合共识机制后,有Hcash的用户与矿工均可以参与到投票中,共同参与Hcash社区的重大决定;Hcash的PoS还为不合格的矿工提供了一个制衡机制;通过PoS+PoW公平的按持币数量与工作量分配投票权重,可以实现社区自治;通过PoW,使得Hcash有挖矿的硬性成本作为币价的保证,又制约了单独PoS机制里数字货币过于集中的问题;PoS让中小投资者着眼于项目的中长期的发展,中小户更倾向于把币放在钱包里进行PoS而不是放在交易所随时准备交易使得Hcash生态更加健康,人们会将注意力更多的放在Hcash技术与落地应用上,而不是仅仅关注短期的价格波动;在安全性上,由于PoW必须通过PoS的验证才可生效,PoW矿工不能自行决定并改变网络规则,这有效的抵挡了51%攻击。
    

    共识机制发展

    迄今为止,没有任何一种共识机制完美地解决了所有问题,每个共识机制都存在各自的短板。数字货币市场在不断扩大,毫无疑问共识机制也在不断地自我更新。
    
    从PoW到PoS,PoS到DPoS,以及DAG的无区块链概念,无疑不是对效率的不断追求。但是共识越集中(参与度越低),效率越高,也越容易出现安全和独裁腐败现象(和去中心化的初衷背道而驰)。只有做到各方面的平衡,通过之后的发展以及不断的更迭,数字货币以及区块链未来可期。
    
  • 相关阅读:
    HDU 1102 Constructing Roads
    HDU 1285 确定比赛名次。
    最小生成树 HDU 各种畅通工程的题,prim和kru的模板题
    HDU Jungle Roads 1301 最小生成树、
    并查集小结(转)
    HDU hdu 2094 产生冠军 拓扑排序 判定环
    模运算(转)
    拓扑排序(主要是确定环和加法) HDU 2647 Reward
    HDU 1372 Knight Moves 简单BFS
    用计算机模型浅析人与人之间沟通方式 (一)如何谈话
  • 原文地址:https://www.cnblogs.com/liujitao79/p/8446219.html
Copyright © 2020-2023  润新知