搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 区块链兄弟 > 区块链的灵魂——共识算法

区块链的灵魂——共识算法

区块链兄弟 2018-06-30

点击蓝字,轻松关注

区块链的灵魂——共识算法

整理:Cynthia

来源:皮蛋投资、海派部落、超级商人

原文链接:http://t.cn/Rrf5M2D

本文约2800字+,阅读(观看)需要16分钟


共识机制


共识机制,在百度百科上的解释是这样的:


区块链的灵魂——共识算法


看上去是不是一头雾水?那么我这里就给大家一个比较能通俗易懂的解释:所谓的共识机制,就好比大家在开一次“会议”,最后达成一个一致,但是达成一致的途径有很多种,这也就是后续区块链的主链有各种各样的共识机制。那么这次“会议”都达成什么共识了呢?比如说有人做好事了,大家都知道了;有人做坏事了,大家也都知道。所以这就是共识机制的最大的好处,就是解决了彼此不认识的人的互相不信任的问题;同时,在这个“会议”里谁不管谁做了什么,大家都是知道的。


那么有人会问,如果这次“会议”的大部分人都叛变了,那岂不是导致会破坏掉这个“会议”,从而破坏掉整个区块链嘛?这种可能性当然是存在的了,但是参加这次“大会”的人都是来自世界各地,且彼此都不认识,想要控制他们是很难的。理论上,只要控制了51%的参加“会议”的人,就可以破坏掉整个网络,但是,如果你有控制51%人的能力,你还愿意去破坏整个区块链么?我觉得正常人都应该是拼命的去维护,所以,这也就是为什么区块链很难受到攻击的一个原因。


区块链的灵魂——共识算法


那么讲到这里,我们把共识机制类比成开“会议”,那么我们知道,如果开会的人多,最后达成结果的时间就比较久,开会的人少,最后达成结果的时间就比较快;放在区块链里,其实也是一样的。参加人数多了,大家就不容易被控制了,那么去中心化程度就越强了,那么达成一致的时间就久了;同理,参加的人数少了。大家就容易被控制,去中心化程度越弱了,但是达成一致的时间可能就会变快了。


大家会发现,共识机制的去中心化强弱是和区块链的速度成反比关系:去中心程度越弱,安全性就越低,区块链的速度就越快;去中心化程度越强,安全性就会越高,区块链的速度就会越慢。当然影响区块链速度的因素还有其他方面,日后我们会再讲。不过,很多媒体拿速度慢来抨击比特币,这就说明很多媒体和项目方是没技术含量的。区块链上的共识机制有多种,但任何一种都不是完美无缺,只能说每种共识机制适用的场景是不一样的。

主流的共识算法



1、Pow工作量证明


就是大家熟悉的挖矿,通过运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储。


优点:完全去中心化,节点自由进出。

缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用。


2、Pos权益证明


根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。


优点:在一定程度上缩短了共识达成的时间。


缺点:与区块链的去中心化相背离。


3、DPos股份授权证明机制


类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。


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


缺点:整个共识机制还是依赖于代币,在某种程度上趋向中心化。


4、Pool验证池


基于传统的分布式一致性技术,加上数据验证机制;是目前行业链大范围在使用的共识机制。


优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。


缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。


5、权威证明PoA(Proofof Authority)


所谓权威证明(PoA),就是使用一组所谓的“权限” 来允许人们在区块链上创建新的节点并确保区块链的安全。


优点:出块时间快,便于高速并发应用落地,可以根据参与方角色分配不同节点、开源系统丰富。


缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。


6、PBFT :Practical Byzantine Fault Tolerance,实用拜占庭容错


在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容错性。


优点:在分布式计算上,不同的计算机透过讯息交换,尝试达成共识。


但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。


缺点:


  • 当有1/3或以上记账人停止工作后,系统将无法提供服务;

  • 当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据。


7.dBFT: delegated BFT 授权拜占庭容错算法


介绍:小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。


此算法在PBFT基础上进行了以下改进:


  • 将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;
    将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;

  • 为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);

  • 在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。


优点:


  • 专业化的记账人;

  • 可以容忍任何类型的错误;

  • 记账由多人协同完成,每一个区块都有最终性,不会分叉;

  • 算法的可靠性有严格的数学证明。

缺点:


  • 当有1/3或以上记账人停止工作后,系统将无法提供服务;

  • 当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据。

现有各种共识机制的问题


A、计算能力浪费


在工作量证明机制POW中,猜数字最快的通常是电脑计算能力强的。超强的计算能级仅用来猜数字,实在是浪费。


B、权益向顶层集中


在权益证明机制POS中,token的余额越多的人获得公示信息的概率越高,公示人会得到一定的token作为奖励,如此持有token多的人会越来越多,少的人越来越少。


C、作恶成本低下


在靠算力与权益的的多少来获得公示信息的权利的模式当中,当算力和权益向少数人集中之后,这些少数人如果想要做一些违反规则的事情是轻而易举的;在PBFT中,由所有人投票,如果一个没有任何token余额的人想要捣乱,那他几乎是完全没有利益损失。


D、对于真正的去中心化构成威胁


在工作量证明机制中,计算能力越强,获得记录权利的概率就越高。如果有人把很多人集中在一起来猜数字,把好多电脑的算力加在一起来用,那这些抱团的人就会更容易获得公示信息的权利,发展到最后可能公示权就直接掌握在这些人手里。


文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。


猜猜你喜欢


看看区块链未来应用的36种场景,有你从事的行业吗?



点击“阅读原文”参与区块链问题讨论

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《区块链的灵魂——共识算法》的版权归原作者「区块链兄弟」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注区块链兄弟微信公众号

区块链兄弟微信公众号:blockchainbrother

区块链兄弟

手机扫描上方二维码即可关注区块链兄弟微信公众号

区块链兄弟最新文章

精品公众号随机推荐