共识机制是区块链技术体系的核心组件。针对共识机制的研究是区块链研究领域的热点。本文整理共识机制相关的论文。
#区块链共识算法的发展现状与展望-自动化学报-2018
作者:袁勇, 倪晓春, 曾帅, 王飞跃
链接:http://www.cnki.com.cn/Article/CJFDTotal-MOTO20180926000.htm
阅读这篇论文,主要想了解共识机制的分类、区别、发展方向。
这篇文章对PBFT的介绍不是很清晰。
PBFT和POW的区别是什么了?
这篇文章提出了几种分类方法,但是没有细致描述不同分类的区别。
例如, 根据容错类型, 可以将区块链共识算法分为拜占庭容错和非拜占庭容错两类; 根据部署方式, 可以将区块链共识算法分为公有链共识、联盟链共识和私有链共识三类; 根据一致性程度, 还可以将区块链共识算法分为强一致性共识和弱(最终) 一致性共识等.
第一种分类方法:根据容错类型, 可以将区块链共识算法分为拜占庭容错和非拜占庭容错两类。
这种说法的缺陷在于,目前区块链技术采用的大部分共识算法都属于“拜占庭容错”,根据文中介绍,属于“非拜占庭容错”算法的只有raft,vr,paros(几乎没有用在当前的区块链系统中)。因此,这种分类只能用于区分区块链共识和非区块链共识。
第二种分类方法:根据部署方式, 可以将区块链共识算法分为公有链共识、联盟链共识和私有链共识三类。
这种说法的缺陷在于,分类不严谨。虽然POW常用与公链系统,PBFT常用与联盟链系统。但是这并不是绝对的。目前一些联盟链系统也采用了POW+PBFT的机制。公链、联盟链、私有链的区别仅仅是对接入节点的限制不同,并不能够对交互方式起到绝对的影响。
第三种分类方法:根据一致性程度, 还可以将区块链共识算法分为强一致性共识和弱(最终) 一致性共识等。
这种分类相对清晰,但是这篇文章并没有对这个分类进行详细描述。
POW、POS、DAG这些基于链式结构的共识算法属于弱(最终) 一致性共识。这种共识允许存储数据的链式结构出现分叉现象,即网络中不同节点之间的数据不一致。为了达成一致性,此类共识采用了“最长链原则”等类似机制,促使大多数节点的数据保持一致,最终达到整体一致性。这种特点导致采用此类共识的区块链系统在进行交易时存在确认延时。例如,比特币系统通常需要等待6个区块才能大概率确保交易可靠性。
PBFT属于强一致性共识,这种共识机制需要在全部节点中保持一个相同的交易序列,