摘要

针对在联盟链中实用拜占庭容错(practical Byzantine fault tolerance, PBFT)算法所存在的通信开销过大、节点信誉度无法保证、算法无法动态地增删节点等问题,提出了基于决策树改进的PBFT(decision tree Byzantine fault tolerance, DTBFT)算法。首先,针对联盟链的应用场景,简化了PBFT算法的一致性协议,降低了通信开销;其次,考虑到系统安全性的问题,引入信誉积分机制,增加决策树分类算法,在每轮共识完成后,统计节点行为,对节点分类,使得系统可以动态地剔除拜占庭节点,提高系统的安全性;最后,为了防止拜占庭节点当选主节点,视图频繁切换,导致系统运行效率低的问题,改进了视图切换协议,将主节点的选取范围缩小到节点信誉好的高级节点,保证主节点的可信度。实验表明,DTBFT算法在吞吐量、算法安全性等方面较PBFT算法具有一定的提升。