共读《图说区块链》(五)——共识算法

本文由币乎(bihu.com)优质内容计划支持

版权声明

本文首发于币乎

版权所有tuionf

原文链接:https://m.bihu.com/article/73780,请关注点赞
感兴趣的可以点击下面的链接注册,https://zt.bihu.com/?id=117470

计算机的世界中达成共识或者说达成意见一致靠的是共识算法,常见的共识算法有pow、POS 、DPOS、Pool、授权拜占庭容错、实用拜占庭容错机制。

POW工作量证明

pow( Proof of Work)工作量证明,典型案例就是比特币

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

简单点说,就是 计算机需要通过穷举(也就是一个一个尝试的办法)出来一个数x,通过某个函数比如f(x)的输出得到特定的数据。

f(x) = 000000000000000000000.............

在比特币的世界里,这个特定的数据是 前置位都必须是 n 个零,而计算机需要从0 开始尝试,一直到满足条件得出x

PoW依赖机器进行数学运算来获取记账权,资源消耗大、共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。

一句话总结就是:算力的越大,收的越多。

POW的算法的优缺点如下

优点

  1. 完全去中心化
  2. 节点自由进出
  3. 算法比较简单

缺点

  1. 大量的计算资源造成浪费
  2. 比特币获取了大量的算力,其他采用POW算法的数字货币很难获得足够的算力来保障安全

POS 权益证明

POS( Proof of Stake),权益证明

PoS的主要理念是节点记账权的获得难度与节点持有的权益成反比,相比PoW,其在一定程度上减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算,竞争获取记账权的方式,可监管性弱。该共识机制的容错性和PoW相同。它是PoW的一种升级,根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找到随机数的速度。

一句话总结:持有货币越多,获得越多。

PoS的优点:

  1. 在一定程度上缩短了共识达成的时间
  2. 不再需要大量消耗能源去挖矿

PoS缺点

  1. 还是需要挖矿,本质上没有解决商业应用的痛点
  2. 所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响,例如,以太坊的DAO攻击事件造成以太坊硬分叉,而ETC随之出现,事实上证明了此次硬分叉的失败

DPOS股份授权证明

DPOS与POS原理相同,只是选了一些“人大代表”。

BitShares社区首先提出了DPoS机制。

与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账

DPoS的优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
DPoS的缺点:整个共识机制还是依赖于代币,而很多商业应用是不需要代币的

Pool验证池

基于传统的分布式一致性技术以及数据验证机制,Pool(联营)验证池是目前行业内大范
围使用的共识机制。它的优缺点如下。

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

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

实用拜占庭容错

实用拜占庭容错机制是一种采用“许可投票、少数服从多数”来选举领导者并进行记账的共识机制,该共识机制允许拜占庭容错,允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,而且每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错性为33%。由于特别适合联盟链的应用场景,实用拜占庭容错机制及其改进算法为目前使用最多的联盟链共识算法,其改进算法在以下方面进行了调整:修改底层网络拓扑的要求,使用P2P网络;可以动态地调整节点数量;减少协议使用的消息数量

授权拜占庭容错

2016年4月,小蚁公司发布共识算法白皮书,描述了一种通用的共识机制——授权拜占庭容错,提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统。

授权拜占庭容错机制的优点:

  1. 专业化的记账人
  2. 可以容忍任何类型的错误
  3. 记账由多人协同完成
  4. 每一个区块都有最终性,不会分叉
  5. 算法的可靠性有严格的数学证明。

授权拜占庭容错机制的缺点

  1. 当1/3及以上的记账人停止工作后,系统将无法提供服务

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

    总而言之,授权拜占庭容错机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。

你可能感兴趣的:(共读《图说区块链》(五)——共识算法)