论文部分内容阅读
区块链技术作为数字货币的底层技术,融合了分布式系统、密码学、网络协议等多个技术领域的研究成果。降低了商业领域信用成本,会计成本,在金融、征信、电子商务等领域有着广阔的市场前景。本文通过分析目前在联盟链中广泛应用的实用拜占庭容错算法实现方法和技术特点,认为当前PBFT共识算法具有吞吐量低、高时延等缺陷,无法有效满足区块链系统性能需求,因此将研究重点放在共识算法的性能提升上。提出了一种基于信用机制的高效的CPBFT(credit-based PBFT consensus algorithm)共识算法,主要改进内容包括以下几个方面:(1)将区块链网络架构由传统的C/S架构更改为P2P拓扑结构,使之更适用于当前区块链技术特征;(2)将传统PBFT共识算法的五个步骤改为两个步骤,降低通信复杂度,提升系统性能;(3)去掉PBFT算法中的客户端角色,将由全网所有节点共同参与投票选举主节点,为了降低由此带来的安全隐患,提出信用等级和信用系数,根据节点历史表现,将节点分为多个信用等级,并赋予不同的信用系数,将节点所获得的票数和信用系数加权计算得出节点最终票数,对票数进行排序,由此得出可靠性高的主节点;(4)为了增强节点投票的自主性,提高低信用等级节点的投票积极性,引入保证金和投票权机制,每个节点所拥有的投票数,将结合其信用等级和保证金数量计算得出,保证金数量越多的节点将拥有更多的投票权;(5)设计数据同步和验证机制,完成主节点和从节点之间数据同步的操作。最后对采用以上方案改进并通过Java来实现的区块链系统进行性能测试,测试结果得出,经过改进的区块链系统在吞吐量、时延和通信复杂度都有明显的性能提升,可以满足大部分应用场景下区块链的性能需求。