论文部分内容阅读
随着数字货币的兴起,区块链技术也得到了飞速的发展,大量的学者和金融科技公司开始研究区块链技术。区块链也因去中心化,不可篡改,安全可信等诸多特性被应用于金融,溯源,物联网,电子公证等诸多领域。共识机制作为区块链技术的核心,直接关系到系统的吞吐量、交易的延迟、容错性和应用场景。因此如何设计一个安全、高性能的共识机制成了区块链发展的难点。本文对目前主流的几种共识算法进行了系统的分析,发现RAFT和PAXOS算法吞吐量高,时延低,但他们都是基于非拜占庭错误设计的,不适合区块链环境;POW和POS算法的安全基础是大量的算力和较长的时延,这就决定了这两个算法必然是高能耗,高延迟的;DPOS算法依赖权益保证安全,因此它必须发币创造权益,而在实际应用中发币非但不必要,甚至会引起一些金融攻击;PBFT算法性能优越、安全性高,但是该算法直接应用于区块链会出现一些问题(1)扩展性差,节点想要加入或退出网络必须重启系统。(2)算法的通信复杂度高。本文在系统地分析了上述共识算法的原理后,对PBFT算法进行了改进,提出了适用于联盟链环境的共识算法,IPBFT。针对PBFT算法中通信复杂度高的问题,在IPBFT中,我们引入了协调节点,将原来两节点之间互换消息变为了节点先将消息发给协调节点进行验证,协调节点验证通过后再发给其他节点,从而减少了通信量;针对原来算法扩展性差的问题,新算法引入了节点加入、退出、恢复协议,使得节点可以自由地出入网络;针对原来算法中错误节点反复作恶的情况,新算法还增加了错误节点清除协议和信誉积分机制,以及时剔除错误节点,提高系统稳定性。因此,相对于PBFT,改进的算法有以下优势:(a)扩展性好,通过对节点加入或退出进行共识验证,使得节点可以动态地参与到网络中。(b)通信复杂度低,在每轮共识中,随机选择一个协调节点参与到共识中,通过主节点与协调节点的配合,可将通信复杂度大大降低。(c)系统稳定性高,新算法引入了信誉积分机制和错误节点清除协议,适时的清除了错误节点,避免了错误节点二次作恶。最后,本文设计了简易的区块链系统,并对IPBFT算法的性能和功能进行了测试。实验结果表明,IPBFT算法在通信复杂度,延迟等方面都优于PBFT算法,也更适合区块链环境。