免责声明:凤梨财经作为开放的信息发布平台,所提供的所有内容与凤梨财经观点和立场无关,且不构成任何投资理财建议。投资有风险,入市需谨慎。

原创 |科普系列一:区块链共识机制

2019-08-05 阅读量 955
摘要:共识机制,是指在一个时间段内对事物的前后顺序达成共识的一种算法,是区块链技术应用的核心,能够解决如何维护全网


共识机制,是指在一个时间段内对事物的前后顺序达成共识的一种算法,是区块链技术应用的核心,能够解决如何维护全网数据一致性的问题。本文从共识机制的评价标准入手,着重对几种主流共识机制的基本原理及其优缺点进行分析和探讨。



01

共识机制的评价标准


区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。区块链上采用不同的共识机制,在满足一致性和有效性的同时,会对系统整体性能产生不同影响。通常主要从以下四个角度评价各共识机制:

1安全性,即是否可以防止二次支付、自私挖矿等攻击,是否有良好的容错能力。

2扩展性,即是否支持网络节点扩展。

3性能效率,即从交易达成共识被记录在区块链中至被最终确认的时间延迟,也即系统每秒可处理确认的交易数量。

4资源消耗,即在达成共识的过程中,系统所要耗费的计算资源大小,包括CPU、内存等。



02

主流共识机制


目前,主流的共识机制有PoWPoSDPoSPBFT等。


1. PoW 


PoW,全称Proof of Work,即工作量证明机制,是第一个区块链共识机制,最早由BTC采用。其主要依赖机器进行数学运算,通过计算随机哈希散列的数值解来获取记账权。目前,采用该机制的有:BTC、BCH、LTC等


PoW的优点在于:(1完全的去中心化,节点可以自由进出;(2算法简单,容易实现;(3)节点间无需交换额外的信息即可达成共识;(4安全性高,破坏系统需要投入极大的成本,即要求全网50%节点出错。


缺点在于:(1)挖矿造成大量的资源浪费,资源消耗大;(2)区块的确认时间较难缩短,且达成共识的周期较长,每次达成共识,都需全网共同参与运算,不适合商用;(3所需算力较大,新的区块链必须找到一种不同的散列算法,否则将会面临比特币的算力攻击;(4)难以达成最终一致性,容易产生分叉,需要等待多个确认


举例说明:向阳一班采用记账的方式将班级发生的大小事件记录在账本上(相当于区块链),该账本由很多个小本子串联而成,且每个小本子的启用需要进行一个数学运算。为鼓励同学们积极记录班级发生的大小事件,班级规定最先计算出数学题、开启小本子并记录的同学,将获得相应的奖励币(相当于代币)。具体而言,即若A同学最先计算出第n个小本子的数学题,开启一个新的小本子,并记录下B同学获得物理竞赛一等奖的消息,A同学则获得相应的奖励币,班集体也开始用新的小本子记账。此时,若C同学想要修改小本子记录的B同学获奖的消息,则需要重新计算出第n个小本子的数学题,并对B同学获奖的消息进行修改。但由于C同学计算第n个小本子数学题的时间落后于A同学,导致C同学在计算第n个小本子的数学题时,D同学可能已经计算出第n+1个小本子的数学题了,除非C同学能够说服50%以上的同学,否则已经记录B同学获奖的消息将不会被改变,这就是PoW的运作原理。


2. PoS  


PoS,全称Proof of Stake,即权益证明机制,亦称之为股权证明机制,是PoW 的一种升级共识机制,主要解决了 PoW 工作量计算浪费的问题。其本质是采用权益证明来代替PoW中的基于哈希算力的工作量证明,由系统中具有最高权益而非最高算力的节点获得区块记账权。具体而言,即PoS以特定数量的币与其最后一次交易的时间长度的乘积为币龄,每次交易都将消耗一定币龄,消耗币龄越多,挖矿难度越低,累计消耗币龄最多的区块将被加入主链,获得记账权。目前,采用该机制的有:ADA、ONT、ATOM等


PoS的优点在于:(1避免挖矿造成大量的资源浪费;(2缩短了各个节点之间达成共识的时间


缺点在于:(1仍需要挖矿;(2)基于哈希运算竞争获取记账权的方式,可监管性弱


举例说明:向阳一班在前述记账方式的前提下,对记账权的取得进行一些调整。班级规定,每次月考前,持有奖励币最多且持有时间最长(其乘积相当于币龄)的同学,可以在账本上记录班级发生的大小事件,并获得相应的奖励币。具体而言,即若A同学在4月份的月考前,持有奖励币最多,为100个,且持有时间最长,达20天,则A同学获得记账权,可以将C同学获得化学竞赛特等奖的消息记录在账本上,并获得相应的奖励币(假设记录后的奖励为年5%,则奖励币=100*20*5%/365=0.27),这就是PoS的运作原理。


3. DPoS  


DPoS,全称Delegated Proof of Stake,即委托权益证明机制,是PoS的一个演化版本,最初由Bit Shares社区提出。其类似于董事会投票,首先通过 PoS 选出代表,进而从代表中选出区块生成者并获得收益。简单而言,即赋予每一个持币人以投票权,通过投票产生一定数量的代表(也即超级节点),而后由这些被选出来的超级节点来代理持币人进行验证和记账,这些超级节点便能获得节点奖励。目前,采用该机制的有:EOS、TRX等


DPoS的优点在于:大幅减少了参与验证和记账的节点数量,可以达到秒级的共识验证。


缺点在于:整个共识机制还是依赖于代币,而很多商业应用并不需要代币模式。


举例说明:向阳一班最新的记账方式运行正常,但由于部分同学将要参加其他学校组织的为期两个月的交流会,为保障记账的顺利进行,班级规定可以投票选择留在学校的同学代为记账,代为记账的同学可获得相应的奖励。具体而言,即若A同学、B同学等均要参加交流会,遂投票选择C同学、D同学等代为记账,C同学、D同学一旦获得记账权并记录下班级发生的大小事件,则可获得相应的奖励,这就是DPoS的运作原理。


4. PBFT  


PBFT,全称Practical Byzantine Fault Tolerance,即实用拜占庭容错机制,其主要研究在分布式系统中,如何在有错误节点的情况下,实现系统中所有正确节点对某个输入值达成一致。具体而言,即首先由主节点发布包含待验证记录的预准备消息,各个节点收到预准备消息后进入准备阶段;其后,主节点向所有节点发送包含待验证记录的准备消息,各个节点收到准备信息后,需验证其正确性,并将正确记录保存后发送给其他节点;最后,待某一节点收到 2f(f为失效节点) 个不同节点发送的与其收到的预准备消息一致的正确记录时,该节点有权向其他节点广播确认消息并进入确认阶段,直至每个节点收到 2f+1个确认消息,协议终止,各节点对该记录达成一致


PBFT的优点在于:(1)系统运转可以脱离币的存在,共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证;(2)共识的时延为2~5秒,基本达到商用实时处理的要求;(3共识效率高,可满足高频交易量的需求


缺点在于:(1)当有1/3或以上记账人停止工作后,系统将无法提供服务;(2)当有1/3或以上记账人联合作恶,且其他所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉


举例说明:PBFT算法要求至少要4个参与者,一个是总机长,其它3个机长分别负责飞行任务。总机长接到总部命令:向前飞行1000公里,总机长就会给3个机长发命令向前飞行1000公里。3个机长收到消息后会执行命令,并汇报结果。A机长说:“我在首都以东1000公里”,B机长说:“我在首都以东1000公里”,C机长说:“我在首都以东800公里”。总机长总结3个机长的汇报,发现首都以东1000公里占多数(2>1票),所以就会忽略C机长的汇报结果,给总部汇报:现在飞行队是在首都以东1000公里,这就是PBFT算法。


总之,良好的共识机制,可以提高系统性能,有利于区块链技术在理论和实践中的应用与发展。主流共识机制都有各自的特点和适用领域,需要进行不断地完善和创新


附:共识机制对比表

共识机制

PoW

PoS

DPoS

PBFT

安全性

容错率

50%

50%

50%

33%

安全威胁

算力集中

候选人作弊

候选人作弊

主节点故障

扩展性

良好

良好

性能效率

较高

资源消耗

参考文献:

[1] 吕志宽,李韶华,马振军.对话区块链[M].清华大学出版社,2018.

[2] 刘童桐.区块链共识机制研究与分析[J].信息通信技术与政策,2018(07):26-33.

[3] 韩璇,刘亚敏.区块链技术中的共识机制研究[J].信息网络安全,2017(09):147-152.



小编:马珂、钱佳炜、熊逸伦

原创声明:本文为中伦文德互联网金融律师团队原创文章,如需转载请联系后台,我们保留追究法律责任的权利。










声明:本文观点仅代表作者本人,不代表凤梨财经赞同或证实其观点描述。如若侵权,请联系我们删除文章。