论文部分内容阅读
区块链以比特币底层技术的身份出现,经过近年来的发展已经被各个领域进行了深入的研究。作为一个典型的去中心化的分布式数据存储系统,区块链系统中所有参与者之间达成的共识需要共识机制来实现。为使得区块链能够适用于不同的应用场景,不同的共识机制被提出,随着区块链应用的进一步发展,共识机制的相关研究也越来越多。但是,现有的一些共识机制仍在各种方面存在着一些问题。在本文的工作当中,首先分析总结了区块链技术中经典的分布式共识机制,重点研究分析了PBFT共识机制及其相关的改进方案及PBFT现存的问题。以此为基础,提出了两种不同的改进方案。首先,针对PBFT缺乏动态性的问题,提出了基于投票机制的拜占庭容错共识机制(Votingbased Practical Byzantine Fault Tolerance,VPBFT)。在VPBFT中引入了投票机制,将系统中的节点划分为具有不同职责的4种类型,并赋予节点之间的数量关系,当节点数目发生变化时,可自行根据数量关系计算,保证有动态性。同时,使用“两阶段”共识模式代替PBFT“三阶段”,降低网络带宽的消耗。另外,通过实验和仿真对比分析了VPBFT与PBFT及其改进方案能耗、容错性、时延等性能,得出改进方案VPBFT具有动态性、可靠性和安全性,同时在能耗、容错性、时延等方面比PBFT及其改进共识机制更优。其次,针对PBFT缺乏动态性、因节点增多导致通信次数大量增加等问题,提出了基于机器学习的拜占庭容错共识机制(Machine learning-based Practical Byzantine Fault Tolerance,MLPBFT)。MLPBFT利用K-means聚类算法完成节点的初始划分,在完成以此共识后自动调整K-means聚类算法,当节点数目发生变化时,调整后的K-means聚类算法自动启动,将变化后的节点集合划分为包括恶意节点和3类进行共识过程的节点等4种类型,使其具有动态性。其共识过程采用“两阶段”模式,降低了共识耗时和通信次数。另外,客户节点在等待共识结果的时间内,充分利用本身的资源运行逻辑回归算法对此次共识结果进行预测,并根据预测概率提前生产数据区块暂存。经过实验测试和仿真分析,MLPBFT在具有动态性和安全性的同时,在共识耗时、能耗、吞吐量、容错性、通信次数等方面均优于PBFT。