◆马超宇
基于贡献机制的奖惩算法
◆马超宇
(辽宁大学 辽宁 110036)
针对区块链中委托权益证明共识机制中恶意节点无法被快速剔除的问题,本文提出一种基于贡献机制的奖惩算法。在该算法中,通过对代理节点计算贡献值并调度反馈系统,实现了对优良节点的奖励和对恶意节点的惩罚,达到了对恶意节点的快速剔除。
区块链;共识机制;贡献机制;反馈系统
比特币[1]和区块链技术是人们关注的热点,无论在计算机、医学还是金融等领域[2],都有着广泛影响。作为比特币的底层架构,区块链技术有着分布式、去中心化和不可篡改等特点[3]。而区块链的核心,共识机制促进了该技术的快速发展。目前,区块链中主要的共识机制有PoW[4]、PoS[5]、PBFT[6]、DPoS[7]等。这些共识机制在不同方面都存在着一些问题,本文便针对DPoS共识机制中存在的恶意节点无法被快速剔除的问题,提出了基于贡献机制的奖惩算法,使得DPoS中的安全性得以保证。
本文通过定义贡献机制等相关概念,提出了基于贡献机制的奖惩算法。该算法通过计算代理节点的贡献值,并调度反馈系统,实现了对优良节点和恶意节点的奖惩。
定义1 贡献等级:系统为代理节点设定的状态标识。贡献等级分为四级,不同等级代表不同代理节点的出块状况、行为和不同的贡献值范围。基于此,本文提出一种划分贡献值范围的方法,其公式如下:
1级:代理节点在区块生产的过程中多次产生有效区块,次数大于累计值(一个常量,由系统设定),其贡献值范围为[0.75, 1];
2级:代理节点在区块生产的过程中没有产生无效区块,其贡献值范围为[0.5, 0.75);
3级:代理节点在区块生产的过程中产生过一些无效区块,但次数小于累计值,其贡献值范围为[0.25, 0.5);
4级:代理节点在区块生产的过程中多次产生过无效区块,次数大于累计值,其贡献值范围为[0, 0.25)。
当代理节点成功产生和验证区块后,系统会奖励其0.05个贡献值;若代理节点产生了无效区块,系统则惩罚其0.1个贡献值。
定义2 贡献等级动态变更:代理节点的贡献等级会根据其产生有效区块的数量和连续性动态变化。代理节点的初始等级都为2级,贡献值都为0.5。贡献等级动态变更图如图1:
图1 贡献等级动态变更图
定义3 贡献值:贡献等级的具体表现方式。贡献值的大小将影响节点最终的代理选举结果,初始值为0.5。基于此,本文提出了计算贡献值的方法,其公式如下:
其中,∆t表示上一区块产生的时间,∆t表示当前区块产生的时间。
定义4 反馈系统:用来对不同贡献等级的代理节点进行奖惩的实施。其具体实现如下:
步骤1:调度反馈系统后,反馈系统会创建两张状态表,用来动态维护黑白名单;
步骤2:根据代理节点的贡献值将代理节点的相关信息记录到相应的名单中去;
步骤3:对不同贡献等级的代理节点进行相应的操作。
通过对比原始DPoS共识机制可以得出,本文提出的算法在对优良节点的平均投票数上较后者的平均投票数高出很多;而对异常节点的平均投票数上较后者降低了很多。并且当某一代理节点的贡献等级降为4级后,本文提出的算法在对恶意节点的剔除效率上较后者提升了很多。
本文提出的算法解决了DPoS共识机制中恶意节点无法被快速剔除的问题。但本文仍有不足,即网络中的节点会大幅减少。在后续的理论研究中,将继续完善本文提出的算法。
[1]Nakamoto. Bitcoin: a peer-to-peer electronic cash system, https://bitcoin.org/bitcoin.pdf.
[2]何蒲,于戈,张岩峰,等. 区块链技术与应用前瞻综述[J].计算机科学, 2017, 44(4):1-7.
[3]袁勇,王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4):481-494.
[4]BitFury Group. Proof of Stake versus Proof of Work,White Paper. https://bitfury.com/content/downloads/ pos-vs-pow-1.0.2.pdf.
[5]Sunny K, Scott N. PPCoin: Peer-to-Peer Crypto Currency with Proof-of-Stake.
[6]M. Castro and B. Liskow. Practical Byzantine Fault Toerance.
[7]BitShares. Delegated Proof of Stake, https://bitshares.org/ technology/delegated-proof-of-stake-consensus.