
共识机制:
整个区块链系统的运行,核心就是要做到信息的"去中心化",也就是常说的信息"点对点"运输。而实现点对点通信,最首要解决的也是最基本的困难,就是"拜占庭将军问题(Byzantine failures)"。

拜占庭将军问题:拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。
从中可以看出几个问题:
如何保证所有将军都收到了消息?
若将军中有叛徒,传递了假消息,其他将军怎么知道谁说的是真?
将军们不在同一个地方,如何保证在极短的时间内消息传达到所有将军手中?
想要解决上述问题,做到信息的点对点成功传输,在差不多的时间内需要所有的节点(即"将军")达成一致共识,这就是区块链中的"共识机制"。

共识机制的种类:
POW
( Proof of Work)工作量证明
此一概念最早由Cynthia Dwork和Moni Naor于1993年的学术论文提出,而工作量证明一词则是在1999年由Markus Jakobsson与Ari Juels.所发表。
POW是目前区块链中最简单、应用最广泛的共识算法,也就是常说的"挖矿"。矿工们为了获取记账权从而获得奖励,要不断的进行哈希计算。在这个过程中,矿工的计算量和获得记账权的概率成正比,矿工的算力越高,进行哈希计算的时间越长,工作量越大,获得记账权的可能性就越高。目前主流的虚拟货币,含比特币、莱特币在内的大部分币种都采用的这种模式。
优点:
1.简单。
2.安全。(攻破成本巨大,需投入超过总体运算量的50%以上才能破坏共识,也就是说,整个系统节点越多,运算量越高,越不易被攻破)
3.公平。(矿工付出的越多,拿到奖励的可能性越大)
缺点:
1.耗费资源。(全网算力投入参与挖矿,极耗费能源)
2.耗时。(需要等待多个节点确认)
3.容易产生分叉。
4.新币种容易产生算力攻击。(比特币吸引了大部分算力,新币种容易遭到比特币的算力攻击)
POS
(Proof of Stake)权益证明
2012年8月,一个化名Sunny King的极客推出了Peercoin(PPC),前期采用工作量证明(PoW)机制发行新币,后期采用权益证明(PoS)维护网络安全。
POS是POW的升级。矿工们持有代币的的数量越多、持有时间越长,越容易获得记账权。POS引入了一个"币龄"的概念,节点持有的代币越多、时间越长,币龄越大,获得记账权的概率也就越大。一旦一个节点获得了一个区块的记账权,币龄就会被清空归零,必须等待一顿时间后才能签署另一个区块。另外,被清空的币龄越多,所获利息就越高,可以联想成持有股票,获得分红。应用了这种算法的币种有:点点币PPCoin、新星币NVC、雅币YaCoin、宇宙币CosmosCoin。
优点:
1.节约能源。(相比于POW,POS不需要比拼算力)
2.安全。(破坏共识需要投入50%以上的币)
3.省时间。(相比于POW而言,达成共识时间缩短)
缺点:
1.易产生分叉。
2.获得记账权的节点或许并不想记账。
3.对矿工激励有限。
DPOS
(Delegate Proof of Stake) 股份授权证明机制
BitShares社区首先提出了DPoS机制。DPOS是POS的升级版,与POS运作原理基本相同。所有持币者投票选出若干个代理节点,由这若干个代理节点轮流进行验证记账。
优点:
1.耗时短。
2.不会分叉。
缺点:
1.做不到完全的"去中心化"。(选出若干个代理节点是另一种意义上的"中心化")
2.依赖代币。
PBFT
(Practical Byzantine Fault Tolerance)实用拜占庭容错
PBFT是BFT(Byzantine Fault Tolerance,拜占庭容错算法)中最典型的一种算法,BFT从上世纪80年代开始被研究,目前已经是一个被研究得比较透彻的理论,PBFT是由Miguel Castro和Barbara Liskov于1999年提出。
PBFT的核心是:N =3f+1。其中,N是系统中的总节点数,f是系统中可以出现故障的节点数。也就是如果整个系统中有f个节点出现故障,那么系统中至少要有N个节点,才能保证系统无误的正确运行。
PBFT至少需要4个参与者(f=1)。举例来解释PBFT:如果系统中有abcd四个节点,a发出一条消息,b节点出现故障而无法正确确认信息,但cd两个节点确认正确,那么系统就会忽略b这个故障节点记录的信息,从而实现整个系统的正确记录。(2个节点正确确认 1个节点错误确认)
优点:
1.不依赖代币。
2.耗时短。
3.效率高。
缺点:
1.不安全。(需要保证2/3的节点正常无误的记账,即故障节点不能超过1/3,相比POW和POS的50%容错性低很多)
2.可能会出现分叉。
dBFT
delegated BFT(授权拜占庭容错机制)
小蚁区块链采用的共识算法,是NEO在PBFT上进行改进后的产物。dBFT由权益来选出记账人,然后记账人之间通过拜占庭容错算法(BFT)来达成共识。
优点:
1.防止分叉。(批准区块链新版本需通过2/3节点的审批)
2. 算法可靠。(有严格的数学证明)
3.能够认证记账节点的真实身份。(引入了数字证书)
缺点:
1.不安全。(同PBFT)
除上述典型的共识算法外,还有Paxos(一致性算法)、Raft算法、RDPOS、Pool(联营)验证池、Ripple共识、投注共识,活动证明(Proof of activity,PoA),燃烧证明(proof of burn,PoB),能力证明(proof of capacity, PoC),消逝时间证明(Proof of elapsed time)等算法。随着区块链不断发展,未来将会衍生出更多种类的共识算法。
添加新手交流群:币种分析、每日早晚盘分析
添加助理微信,一对一亲自指导:YoYo8abc