论文部分内容阅读
区块链随着比特币的诞生而出现在人们的视野中。随着以比特币为代表的数字货币风靡全球,区块链作为比特币的底层技术而受到全球各大组织以及经济体的研究以及关注。区块链技术因其具备去中心化、信息的不可篡改和不可伪造性以及开放性等特征,在金融、物流、征信以及知识产权等领域有着非常广泛的应用场景。共识算法作为区块链最核心的技术之一,共识效率的高低直接影响着区块链系统的性能。但是自2008年区块链技术出现以来,公有区块链中使用的主流共识算法还是PoW、PoS以及DPoS。针对资源消耗、出块时间以及记账权益的分配等性能指标,这些传统的共识算法已经无法在某一方面或者某几个方面上达到要求。本文通过深入分析PoW、PoS以及DPoS共识算法的工作原理,将PoW算力竞争的思想引入到DPoS中,设计了一个带有升降级机制的共识算法,将其命名为带有升降级机制的委托权益证明机制(Delegated Proof of Stake with downgrade,dDPoS)。算法的主要思想如下:(1)将共识过程分为两个步骤,将个人权益与记账权力分割开来。第一步,采用PoW算力竞争的思想在全网节点中“筛选”一定数量的共识节点,然后采用DPoS授权机制的思想通过投票,并按照得票数的多少从共识节点中选举出见证人节点集合和备选节点集合;第二步,见证人节点依次轮流打包系统中的交易形成区块,并将其广播至所有共识节点中进行共识,若超过50%的共识节点认同该区块,则将其加入到区块链中;若超过50%的共识节点不认同该区块链,则判定该节点为恶意节点,开始进入见证人节点集合和备选节点集合的升降级机制中。(2)升降级机制就是引入类似现代体育联赛中的升降级制度对恶意节点进行快速替换:当见证人节点被判定为恶意节点时,该见证人节点掉出见证人节点集合,并被标记成为恶意节点,排名在该见证人节点之后所有见证人节点的序号减1。备选节点集合中序号为1的节点升至见证人节点集合中,并排名最后,备选节点集合中从序号为2的节点开始,每个节点的序号减1。最后再将恶意节点降至备选节点,并排序最后。最后,用Java语言模拟区块链节点,运行基于dDPoS机制的区块链系统,测试其性能,并对实验结果做出分析。实验结果发现:dDPoS共识算法的出块效率大约为每9秒产生一个区块,这远远高于PoW和PoS共识算法;并且在出块权益的分配问题上,dDPoS共识算法的性能也要高于DPoS共识算法;本文引入的升降级机制也能很准确的发现恶意节点,并进行恶意节点的升降级替换,以保证区块链系统的正常运行。