基于HK聚类的区块链DPOS共识机制改进方法

文档序号:26759966发布日期:2021-09-25 05:32阅读:172来源:国知局
基于HK聚类的区块链DPOS共识机制改进方法
基于hk聚类的区块链dpos共识机制改进方法
技术领域
1.本发明涉及区块链技术领域,特别涉及一种基于hk聚类的区块链dpos共识机制改进方法。


背景技术:

2.近些年来,区块链(blockchain)技术被越来越多的人熟知和研究。区块链技术可以简单理解为分布式存储、点对点传输、密码学原理、哈希算法、共识机制等技术组成的一种全新的分布式基础架构与计算范式。区块链自2008年在中本聪的比特币白皮书中被提出后逐渐开始飞速发展,其具有的去中心化和不可篡改的特性可以向第三方证明计算过程的真实可信,从而实现业务逻辑的自证清白,为世界带来可以计算的信任。比特币是区块链1.0的应用,而随着以太坊的出现和发展,区块链已经进入2.0时代。以太坊的应用架构允许人们通过智能合约开发各种区块链架构和dapp。未来设想的区块链3.0时代,该技术将应用于社会生活的方方面面,利用区块链的特性服务于未来社会。
3.目前,区块链技术已经在金融、能源、医疗、教育、物联网等众多领域取得了一定的研究成果。现阶段区块链技术的研究热点之一是共识机制。共识机制是实现区块链去中心化特性的关键,是区块链的核心技术。目前主流的共识机制包括工作量证明(pow)、权益证明(pos)、授权股份证明(dpos)和实用拜占庭容错(pbft)算法等。中本聪提出的pow工作量证明机制具有运行效率低、浪费资源和算力的缺点,据统计,比特币挖矿的年耗电量与许多中小型国家相当。为了解决上述问题,学者们开始研究新的共识算法。pos根据内部币龄来改变难度,从而竞争记账权益达成共识,其在一定程度上减少了pow共识算力和资源的浪费,并且缩短达成共识的时间,但它股份式的币龄机制很容易形成权益集中的现象,而且没有改变挖矿的本质。dpos共识算法在pos的基础上提出的,它采用股份制公司投票的做法,先由各个节点投票选举出可信度较高的代理节点,再由代理节点来完成区块链的产生和验证。完全摒弃挖矿的做法使得dpos算法能够真正实现区块的秒级验证,是目前公认最快、最有效、最实用和最具商业价值的共识机制。目前,dpos共识机制已经取得一些应用如著名的eos项目。但由于目前区块链技术仍然处在发展的初期,dpos共识机制也存在很多问题,有待进一步的研究与改进,以适应各个领域对区块链技术的要求。
4.dpos共识机制的具体流程如下:首先,在一轮共识开始前,任何一个用户都可以申请成为候选人节点,然后用户可以将自己手中的权益数(即票数)投给候选人节点,通常来说只能投给一个或有限个候选人。之后,根据获得的总权益数的大小,选取获得权益数最高的节点当选为代理人节点,一般代理人节点不超过101个并且需要交纳一定的保证金。最后,代理人节点依次生产区块,进行区块链的维护,直到下一轮共识开始。如果该期间代理人节点行为均正常,则将收获系统发放的奖励,而普通节点只在该期间进行监督作用且没有任何奖励,dpos共识机制的具体工作过程如图1所示。
5.dpos共识机制通过投票选取代理节点生产区块并进行共识来维护区块链网络的方式,在一定程度上弱化了区块链网络的去中心化程度,并且可以快速地完成共识验证,提
升系统性能,但其任然存在一些问题有待解决,主要包括积极性问题、中心化问题,恶意节点处理问题等。其中以投票积极性问题尤为严重。投票积极性问题是指选举代理见证人节点时,由于投票需要耗费时间精力、投票繁琐等原因,导致普通节点投票积极性普遍不高,以eos为例,eos上线5天后才使得投票率达到主网启动要求的15%,可见用户投票的积极性很低,而用户的投票是dpos机制运转和维护的基础。同时用户投票不积极也会导致公平性问题,因为dpos算法期望通过用户积极投票行使权力来分散中心化影响,但却没有考虑如何提高积极性,用户的消极投票会使中心化问题进一步加剧。所以目前急需提升dpos算法的用户投票积极性。
6.针对dpos算法的缺陷,国内外学者对进行了众多改进研究。但目前针对dpos算法的改进主要集中在如何处理恶意节点及减少合谋贿赂等方面,而针对提高节点积极性的研究相对较少。例如,谈森鹏(谈森鹏,杨超.区块链dpos共识机制的研究与改进[j].现代计算机(专业版),2019(06):11

14.)和付瑶瑶(付瑶瑶,李盛恩.授权股份证明共识机制的改进方案[j].计算机工程与应用,2020,56(19):48

54.)均采用由见证人节点对投票给自己的节点分红的方式给予奖励,由此激励普通节点参与投票,但是这样做会进一步增大节点的贿赂勾结概率,并且由于要投对见证人节点才能有奖励,普通节点获得奖励的期望较低,同时会进一步加剧dpos的弱中心化特性,使得奖励往往集中在少部分节点手中。虽然这种奖励分配算法减少了“财富”集中问题,但其他缺点并没有得到改善。因此,如何针对dpos机制的用户投票积极性问题进行改进,需要进一步的研究。


技术实现要素:

[0007]
针对上述dpos机制中存在的问题,本发明的目的在于提供一种基于hk聚类的区块链dpos共识机制改进方法,建立投票激励机制,给与投票节点适当的奖励,奖励只与用户行为相关,通过引入一种hk聚类算法对节点进行分类,积极性高的类别给予更高的奖励,积极性低的类别几乎不给予奖励,从而激励用户节点积极参与投票,维护dpos共识机制的运行。
[0008]
本发明的实施例提供如下方案:
[0009]
一种基于hk聚类的区块链dpos共识机制改进方法,包括以下步骤:
[0010]
选取投票积极性因素指标,根据所述投票积极性因素指标建立节点积极性评价模型;
[0011]
建立所述节点积极性评价模型后,引入基于观点动力学的hk模型聚类算法对节点进行聚类分类;
[0012]
对节点进行聚类分类后,根据不同的类别对不同节点给予不同的投票奖励,从而激励节点投票。
[0013]
优选地,所述投票积极性因素指标包括:
[0014]
历史积极指标,指节点的历史投票记录,包括节点投票的轮次占共识总轮次的比例,对于新节点和近几轮积极投票的节点,也归入积极投票节点;
[0015]
当前轮次积极指标,指每一轮的投票表现,包括投票时间和投票方式,越早投票,节点积极性越高,对于将投票权交给系统代理投票的节点,不计入投票节点。
[0016]
优选地,设历史积极指标为p1,当前轮次积极指标为p2,建立单个节点积极性评价模型:
[0017][0018]
其中,vtr和tr分别是近期投票次数和选取的近期轮次,votes和turns是总的投票轮次和总共识轮次,t0和t是每轮的投票初时刻和终时刻,getx和vx是当选的代理节点和投票节点票数。
[0019]
优选地,基于观点动力学的hk模型演化规则如下:
[0020]
假设有一组节点v={1,2,

,n},其观点x
i
(t)均简化为一维的意见,且x
i
(r)∈[0,1],观点更新规则为:
[0021][0022]
n
i
(x(t))={j∈v:|x
i
(t)

x
j
(t)|≤ε}
[0023]
式中,ε∈(0,1]是置信边界,置信域内的节点即为邻居节点;在基于观点动力学的hk模型中,每一次观点更新时刻,每名个体将以所有邻居观点的平均值作为自己下一时刻的新观点;观点会随着时间推移不断收敛,最终形成几个分裂的观点集群,实现hk聚类模型;观点数量只与观点的初始意见分布以及置信域有关;ε越小,则集群数越多,反之则越少。
[0024]
优选地,对节点进行聚类分类后,根据综合积极系数p发放投票奖励,发放的投票奖励与综合积极系数p成一定函数关系;其中综合积极系数:
[0025]
p=b
×
(a
×
p1+(1

a)
×
p2)
[0026]
式中,a、b都是系数且满足a∈(0,1),通过聚类结果计算出参数p。
[0027]
优选地,设定函数关系为幂函数f(x)=cx2(0<x<1),其中c为系数;同时对于有作恶记录的节点,不发放奖励;作恶记录包括没有在规定时间内完成区块记录的代理节点行为,贿赂勾结节点行为和投票给错误节点的行为。
[0028]
本发明实施例提供的技术方案带来的有益效果至少包括:
[0029]
本发明实施例中,通过引入基于hk聚类的区块链dpos激励机制,使得节点只要投票就能获得奖励收益,从而激励节点积极参与投票。同时,本发明的节点投票收益并非随机给定,而是通过建立积极性模型和hk聚类算法对节点进行分类,并对不同类别给予不同的奖励。hk聚类算法相较于传统k

means聚类算法更加适合于本发明的需求。最终使得积极性高的节点投票获得的奖励较高,而积极性低的节点在一轮投票中能获得的奖励很低,从而进一步促进节点参与投票的积极性,维护dpos共识机制的运行。
附图说明
[0030]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]
图1是dpos共识机制的具体工作过程示意图;
[0032]
图2是本发明实施例提供的基于hk聚类的区块链dpos共识机制改进方法的流程图;
[0033]
图3a

图3b是hk聚类算法的聚类效果和k

means聚类算法的聚类效果的对比示意图;
[0034]
图4是本发明实施例中激励机制的奖励分配算法的具体工作过程示意图;
[0035]
图5是本发明实施例提供的基于聚类改进的区块链dpos共识机制总体流程示意图;
[0036]
图6a

图6b是设定不同属性的节点投票概率和投票时刻验证激励机制作用的结果示意图。
具体实施方式
[0037]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0038]
本发明的实施例提供了一种基于hk聚类的区块链dpos共识机制改进方法,如图2所示,所述方法包括以下步骤:
[0039]
(1)选取投票积极性因素指标,根据所述投票积极性因素指标建立节点积极性评价模型。
[0040]
对于当前轮次的所有完成投票的节点来说,可以从两方面评判该节点的积极性:一种是历史积极指标,指节点的历史投票记录,包括节点投票的轮次占共识总轮次的比例,对于新节点和近几轮积极投票的节点,也归入积极投票节点;另一种是当前轮次积极指标,指每一轮的投票表现,包括投票时间和投票方式,越早投票,节点积极性越高,对于将投票权交给系统代理投票的节点,不计入投票节点。
[0041]
为了防止节点乱投票,投票结果也应计入积极性指标。设历史积极指标为p1,当前轮次积极指标为p2,建立单个节点积极性评价模型:
[0042][0043]
其中,vtr和tr分别是近期投票次数和选取的近期轮次,votes和turns是总的投票轮次和总共识轮次,t0和t是每轮的投票初时刻和终时刻,getx和vx是当选的代理节点和投票节点票数。
[0044]
(2)建立所述节点积极性评价模型后,引入基于观点动力学的hk模型聚类算法对节点进行聚类分类。
[0045]
针对现有奖励机制的问题,需要对节点进行适当分类,对各类节点进行相应的奖励和惩罚,从而激励投票。聚类算法是一种无监督的机器学习,能够根据设定指标对节点进行分类,且分类的结果无法预测,这样使得恶意节点无法预测奖励集合。同时聚类算法是一个动态的分类,能适应共识轮数的增加和投票者行为的不断变化。不同类别的节点赋予不同的奖励和惩罚,能够提高积极节点的奖励期望,从而拉开奖励差距,激励节点竞争,正反
向提高投票积极性。
[0046]
聚类算法通常是以误差平方和准则作为聚类目标,寻找使其达到最小值的最优解。误差平方和准则及其约束如下:
[0047][0048][0049]
式中,c
j
为类别中心,当x
j
属于c
j
对应类别,r
ij
=1,否则为0。k

means算法是最常用的聚类算法之一,它能够满足上述要求,在许多场合已经取得了应用。但是k

means存在以下不足之处:
[0050]
1)算法需要先验分析预先指定聚类类别数j才能进行聚类。
[0051]
2)算法无法约束类间距离,可能会出现相近的类。类心距离约束可在上述误差平方和准则及其约束的基础上表示为:
[0052][0053]
距离约束可以提高算法检测同类聚类的能力,但是该问题传统方法难以解决。
[0054]
3)算法对质心的初始选择有很大的依赖性,常见做法是多次执行算法并选择最佳解决方案。
[0055]
4)算法对异常值非常敏感,通常在执行算法之前需要识别并排除异常值。
[0056]
上述不足之处使得k

means算法无法满足对节点的聚类,因为在dpos共识过程中,节点投票行为具有极大的变化性和偶然性,例如dpos机制运行初期,节点间差距较小,随着投票不断进行,差别也逐渐增大。因此整个共识过程需要实时修改聚类数。同时聚类结果应设置一定约束距离,尽量减少孤立值和初值选取的影响,使得各类节点的奖惩能够清晰分开,而k

means算法无法满足。
[0057]
为了适应奖励分配算法的聚类要求,本发明采用一种基于观点动力学的hk模型聚类算法,该算法可以将大量数据映射成少量数据(即意见聚类),实现动态聚类,从而实现账户节点分类。hk模式的关键思想是观点完全不同的个体不会相互影响,而在观点足够接近的个体之间则会进行某种演化。
[0058]
基于观点动力学的hk模型演化规则如下:
[0059]
假设有一组节点v={1,2,

,n},其观点x
i
(t)均简化为一维的意见,且x
i
(t)∈[0,1],观点更新规则为:
[0060][0061]
n
i
(x(t))={j∈v:|x
i
(t)

x
j
(t)|≤ε}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0062]
式中,ε∈(0,1]是置信边界,置信域内的节点即为邻居节点;在基于观点动力学的hk模型中,每一次观点更新时刻,每名个体将以所有邻居观点的平均值作为自己下一时刻
的新观点;观点会随着时间推移不断收敛,最终形成几个分裂的观点集群,实现hk聚类模型;观点数量只与观点的初始意见分布以及置信域有关;ε越小,则集群数越多,反之则越少。
[0063]
将上述hk观点模型当作“过滤器”使数据最终划分为数个集群,即可实现hk聚类模型。hk聚类算法相较于k

means算法有如下特点:
[0064]
1)观点下一刻x
i
(t+1)总是可解的,所以hk聚类也一定是有解的,但不一定是最优解;而k

means算法可能出现无解的情况。
[0065]
2)该算法不需要用户预先定义聚类参数k,而是根据参数ε大小自动形成合适的聚类;
[0066]
3)若两个观点间距离|x
i
(t)

x
j
(t)|≤ε,则聚类继续演化合并为一类,故hk聚类必定满足类心距离约束要求,距离约束值即为置信边界大小ε。
[0067]
4)该算法会直接将孤立值或异常值独立当成一类,而不影响其他类别,可以根据需求删除基数明显较少的群集来剔除孤立值。
[0068]
hk聚类算法相较于k

means算法能够更好适应聚类奖励分配算法的特点和要求。通过模拟仿真区块链运行全过程,并将聚类奖励算法加入到dpos共识机制中,可以检验hk聚类算法的有效性,本发明将hk聚类算法的聚类效果和k

means进行对比可得结果如图3a和图3b所示。通过对比可以看出,hk算法可以根据节点特征自动形成9类。图3a中星型节点较为孤立,hk聚类可以自动分离孤立节点,单独给予奖励,而k

means算法将孤立节点与积极性较低节点合成一类,使得真正积极投票的节点无法得到较高奖励,这样会打击节点积极性。
[0069]
(3)对节点进行聚类分类后,根据不同的类别对不同节点给予不同的投票奖励,从而激励节点投票。
[0070]
为了提高选民节点投票积极性,本发明根据积极性因素指标p1和p2建立了hk聚类激励机制:首先对当前轮次投票的节点建立积极性模型,然后引入hk聚类算法对节点集进行聚类,分成不同的积极性集合,最后根据综合积极系数p发放投票奖励,发放的投票奖励与综合积极系数p成一定函数关系;其中综合积极系数:
[0071]
p=b
×
(a
×
p1+(1

a)
×
p2)
ꢀꢀꢀꢀ
(7)
[0072]
式中,a、b都是系数且满足a∈(0,1),则通过聚类结果可以计算出参数p。
[0073]
为了激励节点积极参与投票,积极性高的节点收获奖励应该最高,随着积极性下降,收益降低。因此本发明设定函数关系为幂函数f(x)=cx2(0<x<1),其中c为系数。同时为了避免恶意节点获得投票奖励,对于有作恶记录的节点,应不发放奖励。作恶记录包括没有在规定时间内完成区块记录的代理节点行为,贿赂勾结节点行为和投票给错误节点的行为。
[0074]
本发明规定在选取的近期轮次tr轮内,有上述行为的都被归入恶意节点集合e中,则激励机制的奖励分配算法的具体工作过程如图4所示。通过加入hk聚类奖励分配算法,对积极参与投票共识的节点进行分类,并根据分类结果对奖励进行相应的奖惩,从而促使普通用户参与投票行为,维护dpos共识机制的运行。基于聚类改进的区块链dpos共识机制总体流程如图5所示。本发明最终使得节点投票获得的奖励只和节点的行为有关,与拥有的权益数无关。因此节点的积极性指标越高,节点收获的奖励就越高,从而激励节点积极参与投
票。通过上述步骤可以最终实现基于hk聚类的区块链dpos共识机制的改进,设定不同属性的节点投票概率和投票时刻验证激励机制的作用,结果如图6a和图6b所示。
[0075]
与现有技术相比,本发明提供的方法具有以下改进:
[0076]
1)引入hk模型聚类算法对节点进行分类。区块链的节点在一轮投票中的数量较多,要实现对不同类别的节点进行不同的奖惩,首先需要对节点进行分类。分类需要一定的分类指标,本发明通过分析节点投票行为,建立节点的积极性评价模型来作为聚类指标。由于传统的k

means算法具有需要预测聚类数量k和无法处理孤立节点的缺陷,同时也无法约束类间距离,这不符合本发明的激励机制的要求。因此通过引入hk聚类算法来解决上述问题。hk聚类算法能够适应激励机制的需要,自动生成聚类数量,生成孤立类别以及能够达到类心的约束要求。因此hk聚类可以适应对区块链节点进行分类的要求。
[0077]
2)基于hk聚类改进的区块链dpos激励机制设计。dpos机制具有普通用户节点投票积极性差的问题,为了解决上述问题,在dpos机制中加上激励机制。激励机制为当节点完成投票,系统将给予一定的奖励来激励节点参与投票。本发明方法中的投票奖励只与节点的行为挂钩,而不与节点的权益数挂钩,使得奖励的分配具有一定的规律:通过节点分类,给积极性高的节点发放更多奖励,积极性低的节点发放较低奖励,奖励与积极性指标成一定的函数关系。通过对积极性不同的节点发放不同的奖励,进一步促进节点投票的积极性,从而达到对dpos共识机制改进的目的,维护区块链系统的运行。
[0078]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1