基础课程第十四课 共识机制

上节课给大家讲了共识和挖矿,随着数字货币价格的逐步攀升,竞争也越来越激烈,挖矿也越来越专业化。而各种数字货币不同的共识机制,也是了解如何开始挖矿的前提,下面我就对目前市面上主流的共识机制逐一与大家进行探讨。

常见的共识机制有工作量证明机制(POW, Proof Of Work)、权益证明机制(POS, Proof Of Stake)、委任权益证明机制(DPOS:Delegated Proof of Stake)、瑞波共识算法(Ripple Consensus)、实用拜占庭容错算法(PBFT:Practical Byzantine Fault Tolerance)、Pool验证池。

不过请注意的是:每种共识机制都各有特点和适合的场景,没有优劣之分。

1

工作量证明机制(POW, Proof Of Work)

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

优点:

1)算法简单,容易实现;

2)节点间无需交换额外的信息即可达成共识;

3)破坏系统需要投入极大的成本;

4)完全去中心化,节点自由进出;

缺点:

1)浪费能源;

2)共识达成的周期较长,区块的确认时间难以缩短;

3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;

4)容易产生分叉,需要等待多个确认;

5)比特币吸引了全球大部分算力,其他再使用POW机制的区块链应用很难获得相同算力来保障自身的安全;

6)随着比特币对算力的要求越来越高,算力集中在几个大型矿池中,反而容易遭受“51%算力攻击”;

全球比特币的算力越来越集中到几个大的矿池中,具体请参见下图:

基础课程第十四课 共识机制

2

权益证明机制(POS, Proof Of Stake)

类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相对应的利息。

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

它将POW中的算力改为系统权益,拥有权益越大则成为下一个记账人的概率越大。

优点:

1)在一定程度上缩短了共识达成的时间;

2)不再需要像POW机制那样大量消耗能源去挖矿;

缺点:

1)没有专业化,拥有权益的参与者未必希望参与记账;

2)容易产生分叉,需要等待多个确认;

3)容易陷入“富者越来越富有,穷人越来越贫穷”的怪圈,最后成为有钱人的游戏

4)容易遭受恶意非盈利攻击;

Casper(投注共识)是以太坊下一代的共识机制,属于PoS。Casper的共识是按块达成的而不是像PoS那样按链达成的。Casper与传统的PoS不同的是Casper有惩罚机制,这样非法节点通过恶意攻击网络不仅得不到交易费,而且还面临着保证金被没收的风险。有人把Casper这样的挖矿机制称为“虚拟挖矿”,比特币的矿工要参与挖矿需要先购买矿机,Casper则要先抵押以太币到系统中;比特币的矿工如果不按规则挖矿,则会损失电费以及可能的挖矿收益,而Casper中,不守规则的惩罚更为严重,除了失去挖矿收益,还要销毁“矿机”:抵押的以太币会被系统没收!

3

委任权益证明机制(DPOS:Delegated Proof of Stake)

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

缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的

4

瑞波共识算法(Ripple Consensus)

这是瑞波币(Ripple)独有的共识算法,使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51% 的该俱乐部会员投票通过。共识遵循这些核心成员的51% 权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。

优点:容易达成共识

缺点:是中心化的,所以共识机制意义不大

5

PBFT机制

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

是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

优点:

1)专业化的记账人;

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

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

4)算法的可靠性有严格的数学证明;

缺点:

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

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

以上总结来说,PBFT机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。

基础课程第十四课 共识机制

6

Pool验证池

Pool验证池,基于传统的分布式一致性技术以及数据验证机制;是目前私有链大范围在使用的共识机制。

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

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

目前区块链主流的就是这六种共识机制。前四种是公有链使用,后两种是针对联盟链和私有链。其中POW的使用范围最广,也是目前被验证最可靠的共识机制,比特币采用的是这种机制,而其他大部分代币也是采用这种方式。以太坊本来预计使用POS方式,不过由于觉得不太靠谱,后改用POW+POS模式,不过请注意只有1%是POS机制。PBFT机制和Pool验证池主要是针对于联盟链和私有链,不太适合公有链。

这一节课,我主要给大家介绍了六种共识机制算法,基本上涵盖了现阶段常用的共识机制算法,下一节课,我将给大家介绍一下挖矿的具体实现方式。


分享到:


相關文章: