上海品茶

您的当前位置: 上海品茶 > 三个皮匠报告百科 > 共识机制

共识机制

目录

共识机制是什么

区块链是一种去中心化的组织,没有一个中心化的机构对正在进行交易信息、价值转移进行管控。所有的节点都维护着一个共同的“账本”,解决并保证每一笔交易在所有记帐节点上的一致性和正确性问题。所有的节点都是依靠一个机制达成共识,这种机制称之为共识机制。

区块链本质上是一种分布式账本,系统中的每个节点都需要保留同一份账本。在区块链的无中心环境下,需要解决的首要问题就是账本的一致性问题,也就是在每个节点都有系统中完整账本的情况下,如何保障每个节点所拥有数据账本是一样的。在这种情况下,就需要借鉴分布式系统中选择记账节点的机制,以此来保障账本数据在全网中的一致性。共识是指相互独立的多个参与方对某一问题达成一致的过程。共识是合作的前提,合作是共赢的基础。只有在对某一问题达成一致的前提下,各个参与方才能进行更加有效的协作,从而保证自身的利益最大化。共识机制是区块链生态中非常重要的组成部分。在区块链中,共识是指在开放的分布式区块链环境中各节点确认某一区块数据的一致性与有效性,保证诚实节点所存储的节点信息完全一致并且自身发布的信息能够被其他所有诚实节点记录。

共识机制的架构

在区块链系统中,并不存在固定的中心化实体,系统的监督、验证和决策以及数据的生 成与维护是由系统中的每个节点参与的,而且节点之间不需要建立信任基础。因此,在达成 共识方面,共识机制始终是必不可少且迫切需要的。  共识机制达成共识的过程其实是保证系 统中节点对数据进行验证和更新的一个过程,经过此过程后,将对外部展现出一个统一的共 识结果。共识机制主要包括一致性和共识性两个部分,一致性主要是指区块链中节点数据是否一 致,共识性是指区块链中的节点在数据一致的前提下达成共识的一种方式方法

共识机制

共识机制分类

常见的共识机制有PoW(Proof of Work),PoS (Proof of Stake),PBFT,Raft,Paxos,Kafka等,这些共识机制可分为三类:一类是以PoW和PoS为代表的基于奖励机制的共识协议,比如PoW,即工作量证明,要求网络节点竞争参与记账过程,各自完成一个工作量证明,这个过程称为挖矿,挖矿成功者获得记账权和一定奖励;第二类是以PBFT为代表的拜占庭容错共识协议,能够容忍少于1/3的恶意节点;第三类是以Kafka、Raft为代表的CFT(Crash-failure Fault Tolerance)类共识协议,该类共识只能容错部分节点的崩溃-停止失效,支持2f+l集群(其中f为失效节点数目),但是不能容错拜占庭故障。

共识机制有哪些

区块链根据共识机制使其在不依靠中心化组织的情况下,依然大规模高效协作完成运转。

1.PoW工作量证明机制

目前比特币系统采用的共识机制就是工作量证明机制(PoW,Proof of Work),其工作机制描述如下:

(1)区块将交易数据收集之后生成Merkle树。

(2)各个节点(俗称为矿工)必须进行一个SHA256的负责数学运算来得到一个随机数(俗称挖矿),当某个节点得到的随机数满足要求,并在全网广播,得到全网所有其它节点的认可,获得了当前区块的记账权,同时系统给予该节点一定数量的比特币奖励。

(3)当前“挖矿”结束,下一阶段的“挖矿”开始。由于比特币的数量有限,所以越来越“挖矿”将浪费算力及电力。值得一提的是当一个“矿工”得到比特币的时候,其它的“矿工”所做出的努力都将是“浪费”。

2. PoS股权证明机制

股权证明机制PoS(Proof of Stake)的出现是为了解决PoW的问题,PoW的一个很大的缺点就是根据节点得到的结果来给予比特币等虚拟货币的奖励,即运算能力强大的节点将拥有一个极大的概率来获得区块的记账权及比特币奖励,而运算能力低下的节点几乎都是在“浪费”资源与精力。这会造成运算能力越强的节点越来越强,运算能力低下的节点“破产”,这种机制对同样付出大量运算的节点极其不公平。

股权证明机制PoS的设计如下:矿工手中的货币数量和持有时间进行乘积认定为权益数。同样,所有的矿工进行哈希运算寻找目标值,获得相应的奖励。相对于PoW,PoS机制当中寻找目标数的难度有所降低,减少了计算开销及算力的浪费。但是缺点也很明显:矿工手中持有的权益数跟后续“挖矿”成功的几率成正比,新加入的矿工在后续的挖矿中依然无法胜过权益数多的矿工,依然存在在不公平性。

3. DPoS代理权益共识机制

为了有效地解决PoS的一些问题,DPoS(Delegated Proof of Stake)代理权益共识机制将节点定义成两种角色:用户节点和代理节点,用户节点选取若干数量的节点作为证明人节点,之后节点获得投票数最多的节点被选举出来拥有这个区块的记账权成为代理节点。DPOS机制中,不需要算力解决数学难题,而是由持币者选出谁说生产者,如果生产者不称职,就有随时有可能被投票出局,这也就解决了POS的性能问题,该机制参与共识的节点也减少了,且不需要消耗大量算力,有效地提高了该机制的性能。但是缺点也有:DPoS取消了大量节点的共识,代理节点集中到了一些权益最高的节点手中,故该共识机制容易中心化,易出现不公平的现象。

4.实用拜占庭容错(PBFT)共识机制

PBFT主要是为了解决拜占庭容错问题。该共识机制解决了系统存在着恶意节点的前提条件下,其他可靠节点如何达成一致性的问题。PBFT一般分为以下几个过程:发送请求、预准备阶段、准备阶段、提交、回复阶段

1)Request:从整个体系的所有节点中选出一个主节点负责区块生成。2)Pre-Prepare:客户端发出的交易在全网广播,主节点0将从网络收集交易进行打包,并向全网广播,也就是扩散至节点123。3)Prepare:每个节点在接收到广播信息之后,对这些交易信息进行模拟执行。根据执行结果计算新区块的哈希,并向全网广播,1->;023,2->;013,3因为宕机无法广播。4)Commit:当系统中的某一个节点收到2f(f是拜占庭节容错节点数)个区块哈希值和自己相等时,就向全网广播一条commit消息。5)Reply:当某一节点收到2f+1条commit消息,即可完成该区块的上链过程。

共识机制

5.Raft共识机制

Raft是实现分布式共识的一种算法,主要用来管理日志复制的一致性。它和Paxos的功能是一样,但是相比于Paxos,Raft算法更容易理解、也更容易应用到实际的系统当中。而Raft算法也是联盟链采用比较多的共识算法Raft的三种状态(角色):Follower(群众):被动接收Leader发送的请求。所有的节点刚开始的时候是处于Follower状态。Candidate(候选人):由Follower向Leader转换的中间状态。Leader(领导):负责和客户端交互以及日志复制(日志复制是单向的,即Leader发送给Follower),同一时刻最多只有1个Leader存在。Raft的工作原理即复制节点的日志,选举出一个Leader,让其保持日志的一致性从而保证共识一致性。工作流程如下:(1)所有的节点参与投片选举Leader和Candidate。(2)日志复制过程:Leader在一个周期内进行日志的复制,并且负责与其它节点进行消息的传达。(3)在一个周期内,Leader发送更新消息(AppendEntries)给Follower,如在一个周期内没有发布消息,由Candidate节点转成Leader节点,成为新的Leader节点

共识机制

评价共识机制的优劣

安全性:能否有效防止二次支付,私自挖矿

扩展性:当系统成员和待确认交易数量增加时,所带来的系统负载和网络通信量的变化,通常以网络吞吐量来衡量

性能效率:每秒可以处理的交易数量

资源消耗:达成共识过程中,所要消耗的CPU、内存等计算资源

分享到微信 分享到微博 分享到QQ空间
上一篇:医联体(医疗联合体)
下一篇:工业4.0

相关百科

会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部