请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

干货|盘点区块链共识机制的那些不完美

2018-5-31 10:47| 发布者: 星一姐| 查看: 270| 评论: 0|原作者: 安猫ANMO

摘要: 我们在解释什么是区块链时,可以用一句简洁明了的去中心化分布式分类账来概括,但是在这个账本中,是如何对在几乎相同时间内的产生的事物前后排序的,就涉及到区块链网络的共识机制...... ...

如果说共识是区块链的基础,那共识机制就是区块链的灵魂。

我们在解释什么是区块链时,可以用一句简洁明了的去中心化分布式分类账来概括,但是在这个账本中,是如何对在几乎相同时间内的产生的事物前后排序的,就涉及到区块链网络的共识机制

所以共识机制,就是在一个时间段内对事物的前后顺序达成共识的一种算法。它就像一个国家的法律,维系着区块链世界的正常运转。

干货|盘点区块链共识机制的那些不完美

没有一种共识机制是完美无缺的,各共识机制都有其优缺点,有些共识机制是为解决一些特定的问题而生的。

POW: Proof of Work,工作量证明

工作量证明是通过解决是一个不容易解答但是容易验证的问题来争取记账权以达到共识目的。

例如,在比特币区块链中,是通过枚举法对得到的新字符串进行SHA256哈希运算,找出满足给定数量前导为0的哈希过程。

这里并不仅仅是表面上看前缀有多少个0,还是一个不断缩小取值空间。一旦某个节点找到符合要求的随机数,该节点就获得当前区块的记账权,并获得一定的奖励。

优点:

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

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

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

缺点:

1)浪费能源;

2)区块的确认时间难以缩短;

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

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

5)永远没有最终性,需要检查点机制来弥补最终性;

POS:Proof of Stake,权益证明

权益证明是让网络中拥有越多权益的节点有机会做更多的决定,这种机制的假设前提是权益持有人更倾向于维护网络利益且担心作恶后遭受惩罚。

权益证明的实现方式很多,比较典型的是引入“币龄”概念的方式,即用币龄来计算权益。每个代币持有一天记为一个币天,完成一次记账后清空一定的币天。

例如,在交易中,某人收到10个币,持有10天,则拥有100币天,如果花去5个币,则消耗掉50币天。

优点:

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

缺点:

还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。

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

股份授权证明是基于权益证明(POS)发展而来的。

股份授权证明能够让每个节点首先通过权益选举出n个记账节点,类似于公司中的董事会制度,后续提案由这些被选中的节点轮流处理。

股份授权证明理论上不要求选出的代表个体本身是权益所有人,看起来更民主、更开放。

如果选出的代表不作为(轮到自己记账时不记账),或者作恶,可以把他们踢掉,如有必要则进行惩罚(选民们也有可能被惩罚)。

优点:

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

缺点:

减少记账节点属于弱中心化,整个共识机制还是依赖于代币,但很多商业应用是不需要代币存在的。

PBFT :Practical Byzantine Fault Tolerance,实用拜占庭容错

实用拜占庭容错算法是一种基于消息传递的一致性算法。

该算法经过预准备(Pre-prepare)、准备(Prepare)和确认(Commit)三个阶段达成一致性。这些阶段可能因为失败而重复进行。

实用拜占庭容错算法信息在节点之间互相交换后,各节点列出所有得到的信息最后以大多数的结果作为解决方法。

优点:

1)系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。

2)共识的时延大约在2~5秒钟,基本达到商用实时处理的要求。

3)共识效率高,可满足高频交易量的需求。

缺点:

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

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