一种适用于众包系统的基于信誉值分权制衡的共识方法

文档序号:34688037发布日期:2023-07-05 23:30阅读:58来源:国知局
一种适用于众包系统的基于信誉值分权制衡的共识方法与流程

本发明属于区块链领域,涉及一种适用于众包系统的基于信誉值分权制衡的共识方法。


背景技术:

1、众包作为一种新的商业模式,它使得互联网服务行业变得可行。人们通过众包平台可以寻求服务或者提供服务,互联网通信的及时性让这种需求和提供快速建立联系。不过传统的众包应用普遍建立在一种中心化的结构上,这使得众包系统在发展的同时也受限传统中心架构,这主要体现在两个方面:首先是单点故障的问题,众包平台用户的数据依赖一个中心化的数据库,一旦服务器瘫痪或者遭受攻击,一方面会导致用户无法使用众包服务,另一方面也可能造成用户隐私的泄露;其次是公平性,当服务提供商和消费者之间产生争议时,都依赖于众包平台给出的主观仲裁方案,如果仲裁偏向消费者,那么消费者则可以利用这种机制在不付费的情况下,盗取服务提供商的创意,如果仲裁偏向服务提供商的话,那么服务提供商则可以在不提供服务或者提供较次的服务来获取酬金。区块链技术解决了传统众包平台所面临的问题,将众包应用部署在区块链上,把中心化架构改成分布式架构,既能很好解决由于单点故障带了服务瘫痪的问题,又能解决中心化所带来不公平性的问题。

2、现有的研究中,将区块链接技术应用到众包系统的在共识层的措施主要分为2种:

3、一种是以poofoftrust[1]代表的协议,它的特点是将交易的选择权和将交易打包进区块的权利分割开来,由不同的角色来执行,这一类协议利用设计好的信任值模型来计算每个节点的信任值从而区分出不同的角色,通常信任值最高的节点为leader,主要负责打包区块,剩余的为验证者,主要负责验证交易以及验证区块。但这种协议将交易的选择权和验证权交给了开放网络中的节点,且没有任何激励和惩罚措施对这类参与共识的节点进行约束,容易导致交易中涉及的隐私泄露。

4、另一种以zkcrowd[2]为代表的双链结构技术,zkcrowd含有公有链和私有链两条链,私有链上保存用户敏感信息,采用诸如pbft共识协议来产生区块,再由零知识证明的方式上传到公有链,公有链则采用传统的共识方法来确认新区块中所涉及的交易。这种方法通过私有链和小范围的共识节点来减少用户的隐私泄露问题,但双链结构在具体实施过程中,当处理的交易越大时,产生一个区块的耗时较长,不能很好满足众包系统所需要的实时性。


技术实现思路

1、为了解决现有技术存在的不足,本发明的目的是提出了一种适用于众包系统的基于信誉值分权制衡的共识方法,所述方法采用混合区块链架构,即将区块链网络分为开放网络和共识网络。开放网络中的节点从事交易活动,对区块链上的信息只有查阅权限,这类称作普通节点;共识网络的节点负责更新、维护区块链,这类节点称作账本管理节点。开放网络根据服务的供需关系分为服务提供商和消费者两种角色。共识网络的账本管理节点根据信誉值模型划分两种角色,一种是负责交易验证和区块验证的验证者,另一种是负责区块打包以及区块更新的领导者。

2、本发明中提出的所述的基于信誉值分权制衡的共识方法的实现利用了一种基于信誉值分权制衡的共识机制,所述共识方法的实现过程包括(以下对共识机制阐述中,如无特别说明,所指的节点仅代表账本管理节点,验证者和验证者节点、领导者和领导者节点分别指代同一对象):

3、步骤一:每一个账本管理节点收集包括自己在内所有账本管理节点涉及信誉值计算的相关的数据;

4、步骤二:根据信誉值模型计算所有账本管理节点的信誉值,得到当前一轮的包括所有账本管理节点在内的共识节点名单,其中信誉值最高的节点为领导者节点,剩余节点成为验证者节点;所述信誉值模型是指综合多方面信誉值的计算方法,用于计算最终信誉值的模型;

5、步骤三:验证者节点从交易池中挑选一组交易,验证成功后发送给领导者节点;

6、步骤四:领导者将验证成功的交易进行打包,产生新块,再将新区块广播至验证者节点进行验证;

7、步骤五:领导者将验证成功的区块更新至区块链,一次共识活动完成,重置协议状态。

8、本发明提出的一种适用于众包系统的基于信誉值分权制衡的共识方法,步骤一中,账本管理节点需要收集的数据有:节点支付的押金d、节点由共识活动获得的激励i、普通节点作为服务提供商获得的服务评价表fbscoreprovider={fb1,fb2,…fbm}、普通节点作为消费者获得的消费行为评价表fbscoreconsumer={fb1,fb2,…fbm}、节点参与共识活动已经产生的成功次数m以及失败次数n(若成功产生新的区块,则认为是一次成功次数,否则为一次失败次数)。其中,服务评价表生成的方式是,服务提供商在服务完成后会收到来自消费者的服务评价,所有交易获得的服务评价形成一张服务评价表;所述服务评价是指一次交易活动完成,消费者对于其服务提供商的所提供的服务从0到k进行打分,即服务评价表fbscoreprovider的评价分数fbm∈0…k。同理,消费者完成交易并对服务进行评价后,服务提供商会对其消费行为进行从0到k进行打分评价,所有交易的消费行为评价分数形成一张消费行为评价表,即fbscoreconsumer。

9、本发明提出的一种适用于众包系统的基于信誉值分权制衡的共识方法,所述的步骤二中,产生共识节点名单的步骤为:

10、步骤2.1:每一个账本管理节点计算包括自身在内的所有账本管理节点的信誉值,并根据信誉值的大小排列得到一份共识节点名单。计算得到名单后,若节点i的信誉值为最高,则由节点i作为领导者,并由节点i对名单进行签名后广播给其他账本管理节点,其他账本管理节点则等待由节点i传来的名单;

11、步骤2.2:其他账本管理节点接收到名单后,和本地计算得到一份共识节点名单进行对比,如果一致,则广播一个名单确认消息,否则将名单丢弃;

12、步骤2.3:所有账本管理节点统计网络上传来的名单确认消息,若在超时时间内收集到的消息数量超过账本管理节点数的三分之二,则认为这份名单有效,否则触发视图切换协议。

13、视图切换是当协议进入异常时的处理状态,主要是确认异常发生后共识集群能否重新达到共识,而名单确认是协议正常进行的一个状态,两个消息是不同状态下的消息。视图切换在常见的共识协议如pbft和raft里均有应用。

14、当名单确认消息的数量未超过账本管理节点数2/3时,会触发视图切换。

15、本发明提出的一种适用于众包系统的基于信誉值分权制衡共识方法,步骤2.1中,计算单个账本管理节点信誉值的步骤为:

16、步骤2.1.1:根据财富和信誉转换公式,计算出每个账本管理节点由财富获得的信誉值,主要考虑了节点支付的押金以及通过共识活动获得的激励,其计算方式为m(t)=sigmod(σlog(d+i)),其中σ为转换因子,d为节点支付的押金,i为节点获得的激励;

17、步骤2.1.2:根据账本管理节点在交易活动中形成的两张评价表(服务评价表和消费行为评价表),计算出每个节点的正反馈评价α和负反馈评价β。已知节点的服务评价表或消费行为评价表{fb1,fb2,…fbm}中的分数fbi∈[1,k],i∈[1,m],如果说明节点在这笔交易形成的评价fbi是正向评价,将其记录在一个集合p中,得到p={fb1,fb2,…fbs},再通过计算方式得到当前一轮节点的正反馈评价α(t);如果说明节点在这笔交易形成的评价fbi是负向评价,将其记录在一个集合n中,得到n={fb1,fb2,…fbm-s},再通过计算方式得到当前一轮节点的负反馈评价β(t)。根据两张评价表得到的正反馈评价和负反馈评价计算出当前一轮节点通过交易活动获得的信誉值,计算方式为:其中ki代表两张评价表的反馈权重(实际处理时采用k1=k2=0.5),pr为惩罚因子(pr>1);

18、步骤2.1.3:根据账本管理节点参与共识活动的成功和失败次数,计算节点通过共识活动获得的信誉值,其计算方式为其中m为节点已经参与的共识活动成功次数,n为节点已经共识活动验证失败次数,pr表示惩罚因子(pr>1);

19、步骤2.1.4:根据步骤2.1.1-2.1.3产生的三方面的信誉值,计算节点最终的信誉值,计算的公式为:节点的信誉值更依赖于节点在交易活动以及共识活动的表现,所以权重的大小应符合w2=w3>w1。

20、本发明提出的一种适用于众包系统的基于信誉值分权制衡共识方法,步骤2.3中,涉及的视图切换协议时的步骤为:

21、步骤2.3.1:当前参与共识活动的账本管理节点向除自己以外的所有账本管理节点发起视图切换消息;

22、步骤2.3.2:在超时时间内,所有账本管理节点收集到超过账本管理节点数三分之二的视图切换消息后,则当前视图编号加一,否则重置协议状态,将视图编号恢复默认值。

23、本发明提出的一种适用于众包系统的基于信誉值分权制衡共识方法,步骤三中,验证者对交易验证的步骤是:

24、步骤3.1:验证者中信誉值最高的节点(即当前轮所有账本管理节点中信誉值排名第二的节点)负责从交易池里选择出一组交易,签名后广播给其他验证者节点;

25、步骤3.2:其他验证者节点接收到该组交易后,对每一笔交易进行核查,并进行交易预执行,交易预执行的作用为生成对应的交易回执,若生成的回执与交易数量一致,则继续依次核查交易组发起节点以及其他验证者的签名正确性,若均正确,说明交易组验证成功,并向其他验证者节点发送交易验证成功消息;

26、步骤3.3:验证者节点接受到的交易验证成功消息数超过当前共识节点名单的三分之二,则说明该组交易验证成功,并发送给领导者节点,若在超时时间内未收到足够的交易验证成功消息,则触发视图切换协议。

27、本发明提出的一种适用于众包系统的基于信誉值分权制衡共识方法,所述步骤四中,对区块的验证步骤是:

28、步骤4.1:检查区块创建者的签名是否正确,若不正确,则将区块丢弃不进行广播,若正确则进行下一步;

29、步骤4.2:检查已签名的验证者名单是否在本地生成的名单上,若不在,则将区块丢弃不进行广播,若都在,则对区块进行签名后向网络广播区块确认消息;

30、步骤4.3:在超时时间内,领导者检查是否获得足够多的区块确认消息,若数量超过当前共识节点名单的三分之二,则说明区块验证成功,否则触发视图切换协议。

31、步骤五还包括了激励与惩罚的机制,当领导者将新区块提交到区块链中,同时执行交易执行操作,将交易执行操作的结果更新至本地数据库中;其他账本管理节点则从领导者节点中下载最新的区块更新至本地;若新区块成功更新至本地,则认为当前一轮的共识活动是成功的,所有参与共识活动节点根据参与的贡献程度获得一笔激励,这笔激励由系统维护的奖池中给出;协议执行过程中,任何行为导致块的提交失败,则认为当前一轮的共识活动是失败的,对所有参与这次共识活动的节点进行惩罚,惩罚的机制是收取节点的部分押金,押金的流向为系统维护的奖池。

32、本发明节点之间的通信基于ipfs的通信协议。

33、本发明中,“验证者”和“验证者节点”,“领导者”和“领导者节点”可以通用。

34、本发明的有益效果包括:本发明所提出的共识方法采用了proofoftrust的模式,即将交易的选择权和区块的打包权分割开来,但并不把交易的选择权和验证工作交给开放网络中受信的普通节点,而是由小范围的共识网络的节点来负责,这样可以有效减少交易中涉及到的隐私问题在开放网络暴露的问题。本发明采用的混合区块链架构,将节点划分成两个网络,只需要维护一条链,相比于zkcrowd的双链结构,产生一个新区块耗时性大幅度减少,实验结果表明,当需要打包的交易数量为1500时,zkcrowd的双链结构条件下,产生一个新区快的时间需要40.0s,而本发明所提出的共识方法只需4.5s。本发明提出一种新的信誉值模型,该模型通过对节点交易行为的量化来影响其信誉的表现,从进一步来约束节点在共识活动的表现。本发明设计了激励系统和惩罚系统,在鼓励节点积极参与共识活动的同时也对节点作恶行为进行了预防。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1