共识机制:区块链事务达成分布式共识的算法。

区块链是一种去中心化的分布式账本系统,它可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。

由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。

目前主要有几大类共识机制:Pow、Pos、DPos、Pool、PBFT
1、Pow工作量证明,就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
优点:完全去中心化,节点自由进出;
缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用

2、Pos权益证明,Pow的一种升级共识机制;根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。
优点:在一定程度上缩短了共识达成的时间
缺点:还是需要挖矿,本质上没有解决商业应用的痛点

3、DPos股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的

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

5、PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法。
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。
在使用共识机制,保证数据一致性时的巨大优势(共识机制则是Ripple首先提出的,数据正确性优先的网络交易同步机制,在共识网络中,无论软件代码怎么变动,无法取得共识就无法进入网络,更不要提分叉了)。
——————————————————
虽然共识机制绝对能确保任何时候都不会产生硬分叉。但是,这种机制的缺点也比较明显,那就是要取得与其他节点的共识,明显要比当前Bitcoin网络漫长的多。极端情况下,在Ripple共识机制网络中掉线的后果也是很恐怖的。

有可能你家停电一天,第二天整个系统就再也无法与其它Rippled节点取得共识了(共识机制事实上需要超过80%的节点承认了你的数据,你的提交才会被其它节点接受,否则就会被排它的拒绝连接),甚至只能清空自己全部500多GB数据重新同步才能连上其它Ripple节点。

所以目前来说,现有的Rippled端并不适合民用(商用的话影响就比较小,比如RL自己的Rippled节点托管在亚马逊云数据中心,长时间无响应是可以高额索赔的,而且那种地方除了大型灾害几乎不会断),这也是RL一直想改进的方面之一。


POW:Proof of Work,工作证明。

比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。

POS:Proof of Stake,股权证明。

POS:也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。
简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息 = 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。

DPOS:Delegated Proof of Stake,委任权益证明

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

PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法。见前文拜占庭容错算法介绍。
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

以上主要是目前主流的共识算法。
从时间上来看,这个顺序也是按该共识算法从诞生到热门的顺序来定。
对于POW,直接让比特币成为了现实,并投入使用。而POS的存在主要是从经济学上的考虑和创新。而最终由于专业矿工和矿机的存在,让社区对这个标榜去中心化的算法有了实质性的中心化担忧,即传闻60%~70%的算力集中在中国。因此后来又出现DPOS,这种不需要消耗太多额外的算力来进行矿池产出物的分配权益方式。但要说能起到替代作用,DPOS来单独替代POW,POS或者POW+POS也不太可能,毕竟存在即合理。每种算法都在特定的时间段中有各自的考虑和意义,无论是技术上,还是业务上。

如果跳出技术者的角度,更多结合政治与经济的思考方式在里面,或许还会跳出更多的共识算法,如结合类似PPP概念的共识方式,不仅能达到对恶意者的惩罚性质,还能达到最高效节约算力的目的也说不定。

至于说算法的选择,这里引用万达季总的这一段话作为结束:

一言以蔽之,共识最好的设计是模块化,例如Notary,共识算法的选择与应用场景高度相关,可信环境使用paxos 或者raft,带许可的联盟可使用pbft ,非许可链可以是pow,pos,ripple共识等,根据对手方信任度分级,自由选择共识机制,这样才是真的最优。

区块链目前的几大共识算法相关推荐

  1. 区块链知识拼图:共识算法(简介)

    很多接触或者了解区块链过区块链的人,对"共识"两个字一定不陌生.今天,便借一个系列的分享,和大家一起学习"共识"算法的一些点滴.可能不全,但希望对大家有所帮助. ...

  2. 区块链:3、共识算法 拜占庭将军问题

    区块链:3.共识算法 拜占庭将军问题 区块链系统采用分布式共识算法在无中心节点控制,又可能存在破坏节点的环境下确立系统状态,从而建立信任.区块链因此也被称为信任机器. 共识算法因不同的应用场景而有所不 ...

  3. 区块链入门系列之共识算法

    区块链入门系列文章 区块链基本概念和名词解释 P2P 共识算法 梅克尔-帕特里夏树 从零开始搭建区块链 这里写自定义目录标题 区块链入门系列文章 前言 POW POS PBFT Raft 其他共识算法 ...

  4. poc白皮书通证经济体系_区块链中的PoC共识算法是什么意思?

    共识算法是区块链技术的核心要素, 由于区块链的快速发展,共识已得到各界关注,它将人类带入数学领域的信任时代,因为有共识的存在,人类可以展开无信用抵押的大规模协作,它不仅重构了生产关系,塑造了价值网络, ...

  5. 区块链常见的几大共识机制

    区块链技术被广泛应用于许多领域,其中共识机制是构成区块链系统的核心部分.共识机制是指用来维护区块链数据一致性.安全性和可靠性的机制. 常见的区块链共识机制有以下几种: 1.工作量证明(Proof of ...

  6. 区块链核心技术:拜占庭共识算法之PBFT全面理解

    PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法.该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫 ...

  7. 超级账本、微众银行与迅雷链同台论链 区块链将从技术共识走向应用共识

    文丨互链脉搏编辑部 未经授权,不得转载! 9月6日下午,由工信部电子五所指导,互链脉搏联合超级账本.FISCO BCOS开源社区.迅雷链.重庆区块链测试中心主办的2019全球开源区块链技术论坛在深圳举 ...

  8. 主流链分片技术和共识算法

    前言 设计到的链:Harmony.Elrond.Cosmos.ETH 2.0.Polkadot.Near Protocol 一. 主流链所用的分片技术对比 1.0 Harmony Harmony 是一 ...

  9. 区块链知识系列 - PBFT 共识

    了解 BFT 拜占庭容错(Byzantine Fault Tolerance), 是算法的属性 共识协议要解决的核心问题是在网络中有节点作恶时如何能够达成共识. 要解决这个困难,首先需要了解" ...

最新文章

  1. 在Windows下,用Hexo搭建博客
  2. AI伪装目标检测:让变色龙现出原形!
  3. Subversion For Windows的安装与使用
  4. Unity3D ShaderLab 物体相交
  5. IDEA 解决Tomcat控制台输出乱码问题
  6. 【ios】Storyboard教程
  7. 【Spring学习】spring动态配置多数据源
  8. 【转】SQLServer数据库还原数据库后因孤立用户问题导致无法登陆的处理
  9. smarty foreach 最全用法
  10. 关于结构体的浅拷贝和深拷贝
  11. android:获取当前应用的版本
  12. PN512使用的一些小技巧
  13. 基于51单片机GPS定位系统GSM短信上报设计方案原理图
  14. MIDIPLUS STUDIO M S 2 4声卡安装调试教程
  15. java工作流flowable
  16. 苹果手机人脸识别不了是什么原因_苹果:iPhone人脸识别能秒了所有安卓手机!...
  17. 单机游戏修改游戏数据(你自己就是一个外挂,看完这篇,你一定有不小的收获)
  18. 支付宝相关服务申请入口
  19. 部署论坛代码(linux)
  20. cta 音频测试_CTA测试介绍.pdf

热门文章

  1. ElasticSearch自定义分析器(custom analyzer)
  2. Bootstrap响应式Web开发(一)
  3. java商场满减活动_Java使用策略模式解决商场促销商品问题示例
  4. Mingw + msys编译libmono.so
  5. 经典快速制作套打证书模板(doc)大全
  6. Python中的array[:]表示什么意思?记录一个幺蛾子
  7. MMX的数据结构 MMX指令集
  8. Table Compression Characteristics
  9. 第一章 回归模型分析
  10. vhs预设_如何在Linux中数字化VHS磁带