发明内容
本发明的目的是给出一种基于网络保险的高效区块链众包系统及其激励方法,方法可以提高众包任务完成的效率,并且提出了基于斯塔克伯格的激励方法,使得任务发布者和工作者双方都获得最大的效用。
本发明的技术方案是:一种基于网络保险的高效区块链众包系统的激励方法,所述的高效区块链众包系统包括一个任务发布者及若干个工作者;
在所述高效区块链众包系统中设有两个智能合约,分别为众包合约和网络保险合约;所述众包合约包括投标、选择规则、支付规则及获得报酬;所述网络保险合约包括建立网络保险、赔付保险费及收回保险费;
其执行过程具体包括如下步骤:
步骤2.1、若干的工作者向整个区块链的网络发布网络保险合约,并与任务发布者签订网络保险合约,工作者和任务发布者通过网络保险合约中的建立网络保险功能建立保险,任务发布者事先确定保险费C,任意一个工作者i∈U事先确定确认数Ni,其中Ni≤N0,所述N0为区块链系统规定的确认数;
步骤2.2、任务发布者公开众包任务,向整个区块链的网络发布众包合约;
步骤2.3、若干个工作者与任务发布者签订众包合约,并使用众包合约中的投标功能提交标书;
步骤2.4、任务发布者首先使用众包合约中的选择规则从所有提交标书的工作者中选择一组获胜者S,然后再使用众包合约中的支付规则计算对获胜者的报酬,并将结果通知给获胜者;
步骤2.5、获胜者执行众包任务后,将执行的结果提交给任务发布者;
步骤2.6、任意一个工作者i∈U遭遇双花攻击,则网络保险合约会自动调用赔付保险费功能向工作者i支付数额为C的保险费;当其在N0个区块确认后未遭遇攻击,则网络保险合约会自动调用收回保险费功能将保险费C退还给任务发布者,且工作者通过众包合约提供的获得报酬功能获得自身的报酬。
进一步的,对于步骤2.1中所述的任务发布者事先确定保险费C及任意一个工作者i∈U事先确定确认数Ni;根据斯塔克伯格博弈建模计算过程,在斯塔克伯格博弈中,将任务发布者和每个工作者都看作是单个个体,通过最大化各自的效用函数来计算得到任务发布者的保险费C和每个工作者i∈U的确认数Ni。
进一步的,所述任务发布者的效用函数为:
其中S是获胜者的集合,vi(Ni)是在确认数为Ni的情况下,任务发布者从工作者i提供的众包答案中获得的价值,Ni的值越大,表明消耗的时间越多;vi(Ni)是关于Ni的递减函数,ri是任务发布者支付给工作者i的报酬,ri由众包合约中的支付规则决定,p(Ni)是工作者i遭受双花攻击的概率,p(Ni)是关于Ni的凸下降函数,C是保险费,α是任务发布者用于执行众包合约的维持费;
则任意工作者的效用函数定义为:
其中β是每个工作者用于执行网络保险合约的单位时间的维持费。
进一步的,步骤2.1的具体操作过程如下:
步骤5.1:任务发布者根据其效用函数计算最优策略,即任务发布者所能取得最大效用的保险费,以智能合约的形式发布到整个区块链的网络上;
步骤5.2:任意工作者i根据任务发布者发布的保险费C计算最优策略,即取得最大效用的确认数,以智能合约的形式发布到整个区块链的网络上,达成与任务发布者的网络保险合约签订。
进一步的,在给定保险费C的情况下,任意工作者i的最优策略为:
所述任务发布者的最优策略的计算方法为通过二分法寻找到一个合适的值C
*,使得
取得最大值,其中i∈S,C
*即为任务发布者的最优策略。
本发明设计了一种基于网络保险的高效区块链众包系统,通过降低区块的确认数来提高众包过程执行的效率。降低区块的确认数后,工作者遭受双花攻击的风险加大,本发明通过签订网络保险合约来弥补工作者的安全损失,即工作者在遭受到双花攻击后,将会获得一定的保险费赔付。
本发明具有的有益效果:本发明所述基于网络保险的高效区块链众包系统时间效率相比于没有引入网络保险的区块链众包系统获得了显著的提升。特别地,在比特币网络中,本发明所述基于网络保险的高效区块链众包系统时间效率至多是没有引入网络保险的区块链众包系统的时间效率的37.5%;在以太坊网络中,本发明所述基于网络保险的高效区块链众包系统时间效率至多是没有引入网络保险的区块链众包系统的时间效率的31.25%。
具体实施方式
下面结合实例和说明书附图1、2对发明的技术方案进行详细说明:
本发明所述的一种基于网络保险的高效区块链众包系统,所述的高效区块链众包系统包括一个任务发布者及若干个工作者,所述若干个工作者的集合是U={1,2,...,n};
在所述高效区块链众包系统中设有两个智能合约,分别为众包合约和网络保险合约;所述众包合约包括投标、选择规则、支付规则及获得报酬;所述网络保险合约包括建立网络保险、赔付保险费及收回保险费。
众包合约的主要功能为:
(1)、投标:工作者通过众包合约的投标函数提交标书,投标功能首先检查是否已经收集到足够的标书,如果没有,则将该工作者提交的标书放入到标书集合中;
(2)、选择规则:任务发布者通过众包合约提供的选择规则选择出一批获胜者;
(3)、支付规则:任务发布者确定获胜者的工作完成后,通过众包合约提供的支付规则计算给每个获胜者的报酬;
(4)、获得报酬:工作者通过众包合约提供的获得报酬功能获得自身的报酬;
网络保险合约的主要功能为:
(1)、建立网络保险:任务发布者与工作者通过网络保险合约提供的建立保险功能签订网络保险,任务发布者将每份网络保险的保险费C发布到区块链网络中;
(2)、赔付保险费:首先检查任意一个工作者i∈U是否遭受了双花攻击并且确实与任务发布者签订了网络保险;如果是,则自动将保险费C发送给工作者i;
(3)、收回保险费:检查记录任意工作者i∈U提交结果的区块是否被N0个区块确认,如果是,则自动将保险费C退还给任务发布者;其中N0在比特币中是6,在以太坊中是12。
一种基于网络保险的高效区块链众包系统的激励方法,其执行过程具体包括如下步骤:
步骤2.1、若干的工作者向整个网络发布网络保险合约,并与任务发布者签订网络保险合约,工作者和任务发布者通过网络保险合约中的建立网络保险功能建立保险,任务发布者事先确定保险费C,任意一个工作者i∈U事先确定确认数Ni,其中Ni≤N0,所述N0为区块链系统规定的确认数;
步骤2.2、任务发布者公开众包任务,向整个区块链的网络发布众包合约;
步骤2.3、若干个工作者与任务发布者签订众包合约,并使用众包合约中的投标功能提交标书;
步骤2.4、任务发布者首先使用众包合约中的选择规则从所有提交标书的工作者中选择一组获胜者S,然后再使用众包合约中的支付规则计算对获胜者的报酬,并将结果通知给获胜者;
步骤2.5、获胜者执行众包任务后,将执行的结果提交给任务发布者;
步骤2.6、任意一个工作者i∈U遭遇双花攻击,则网络保险合约会自动调用赔付保险费功能向工作者i支付数额为C的保险费;当其在N0个区块确认后未遭遇攻击,则网络保险合约会自动调用收回保险费功能将保险费C退还给任务发布者,并且工作者通过众包合约提供的获得报酬功能获得自身的报酬。
其中双花攻击是指工作者提交任务结果的区块被区块链中其他分支上的区块所替代,导致工作者提交的任务结果不被认可的行为。
对于步骤2.1中所述的任务发布者事先确定保险费C及任意一个工作者i∈U事先确定确认数Ni;根据斯塔克伯格博弈建模计算过程,在斯塔克伯格博弈中,将任务发布者和每个工作者都看作是单个个体,通过最大化各自的效用函数来计算得到任务发布者的保险费C和每个工作者i∈U的确认数Ni。
因此,本发明所述的计算任务发布者的保险费C和每个工作者i∈U的确认数Ni的方法本质上是一种激励任务发布者和工作者参与基于网络保险的高效区块链众包系统的激励方法。
进一步的,一种基于网络保险的高效区块链众包系统,所述任务发布者的效用函数为:
其中所述任务发布者的效用函数指任务发布者获得的价值总和与支出总和的差值,也称为任务发布者的收益函数;S是获胜者的集合,vi(Ni)是在确认数为Ni的情况下,任务发布者从工作者i提供的众包答案中获得的价值,Ni的值越大,表明消耗的时间越多;vi(Ni)是关于Ni的递减函数,ri是任务发布者支付给工作者i的报酬,ri由众包合约中的支付规则决定,p(Ni)是工作者i遭受双花攻击的概率,p(Ni)是关于Ni的凸下降函数,C是保险费,α是任务发布者用于执行众包合约的维持费;
则任意工作者的效用函数定义为:
其中β是每个工作者用于执行网络保险合约的单位时间的维持费。
为说明本发明所述基于网络保险的高效区块链众包系统的激励方法,定义概念:
(1)时间效率:一个众包系统的时间效率被定义为从众包任务发布到任务发布者收到众包结果所需的时间。
(2)斯塔克伯格均衡:任务发布者和工作者的最优策略组合成的策略集合称为斯塔克伯格均衡。
进一步的,步骤2.1的具体操作过程如下:
步骤5.1:任务发布者根据其效用函数计算最优策略,即任务发布者所能取得最大效用的保险费,以智能合约的形式发布到整个区块链的网络上;
步骤5.2:任意工作者i根据任务发布者发布的保险费C计算最优策略,即取得最大效用的确认数,以智能合约的形式发布到整个区块链的网络上,达成与任务发布者的网络保险合约签订。
进一步的,在给定保险费C的情况下,任意工作者i的最优策略为:
所述任务发布者的最优策略的计算方法为通过二分法寻找到一个合适的值C
*,使得
取得最大值,其中i∈S,C
*即为任务发布者的最优策略。
本发明所述基于网络保险的高效区块链众包系统时间效率相比于没有引入网络保险的区块链众包系统获得了显著的提升。特别地,在比特币网络中,本发明所述基于网络保险的高效区块链众包系统时间效率至多是没有引入网络保险的区块链众包系统的时间效率的37.5%;在以太坊网络中,本发明所述基于网络保险的高效区块链众包系统时间效率至多是没有引入网络保险的区块链众包系统的时间效率的31.25%。
首先分析没有引入网络保险的区块链众包系统的时间效率;分别用Tn和Tc来分别表示没有引入网络保险的区块链众包系统和本发明所述基于网络保险的高效区块链众包系统完成一个众包任务所需要的时间;用D来表示区块生成的平均间隔时间;对于没有引入网络保险的区块链众包系统,需要进行任务发布、投标、选择获胜者、收集答案这四步,每一步都需要等待N0个区块进行确认,所以总时间效率是Tn=4N0D。
下面分析本发明所述基于网络保险的高效区块链众包系统的时间效率;用t1,t2,t3,t4分别表示本发明步骤1.2到步骤1.5所耗费的时间;在分析时间效率时,不考虑步骤1.1的时间,因为签订网络保险合约可以在发起众包任务之前就完成;在步骤1.2中,任务发布可以在步骤1.4的获胜者通知中得到确认,所以步骤1.2只需要等待一个区块的时间,因此t1=D;同样的方法可以用于分析步骤1.3的时间效率,得到t2=D;在步骤1.4中,每个工作者i需要等待Ni个区块的确认,以便在提交答案前确认任务和获胜者都是有效的,得到t3=D×maxi∈SNi;最后,假设相比区块产生时间,所有的获胜者都可以足够快的完成众包任务;即,下一个区块将包含所有的众包答案;因此,t4=D。综上,本发明所述基于网络保险的高效区块链众包系统的时间效率Tc=t1+t2+t3+t4=(3+maxi∈sNi)×D。
由于maxi∈SNi≤N0,得到Tc/Tn≤(3+N0)/4N0。考虑到在比特币和以太坊中N0分别等于6和12;代入上述不等式,我们得到Tc/Tn的值比特币和以太坊中分别不大于37.5%和31.25%。
其次,本发明所述基于网络保险的高效区块链众包系统的激励方法存在斯塔克伯格均衡,即任务发布者和工作者都无法通过单方面地改变自己的策略来提升自身的效用。
首先证明对于给定的保险费C>0,任意工作者i的最优策略为:
根据公式(1),将工作者的收益函数重写为:ui(Ni)=ri+p(Ni)*(C-ri)-β*Ni。
然后分三种情况讨论:
情况1:当C-r
i≥0,在这种情况下,u
i(N
i)是关于N
i的单调减函数,并且当N
i=0时,u
i(0)=r
i+p(0)*(C-r
i)>0,所以在这种情况下,
ui(Ni+1)-ui(Ni)=(p(Ni+1)-p(Ni))*(C-ri)-β (2)
又因为p(Ni)是下凸的减函数,我们有1>p(0)>p(1)>…>p(N0)>0以及
p(0)-p(1)>p(1)-p(2)>...>p(N0-1)-p(N0)>0 (3)
根据公式(3),可以看出ui(Ni+1)-ui(Ni)在Ni∈[0,N0-1]上单调减,这意味着ui(Ni)是一个凹函数;因为N0是现有区块链系统防止攻击的等待块数,所以不妨假设p(N0-1)-p(N0)是一个接近于0的无穷小值;令Ni=N0-1,代入公式(2),可以得到ui(N0)-ui(N0-1)<0。
为了进一步分析ui(Ni)的单调性,考虑ui(1)-ui(0)的下述两种情况:
情况2.1:u
i(1)-u
i(0)=(p(1)-p(0))*(C-r
i)-β≥0,即
注意到u
i(N
i)是一个单调减函数并且u
i(N
0)-u
i(N
0-1)<0,必定存在
情况2.2:u
i(1)-u
i(0)<0,即
u
i(N
i)又是减函数,所以u
i(0)=(1-p(0))r
i+p(0)>0,因此
接下来证明给定工作者的最优策略,当
时,任务发布者存在一个最佳策略C
*,使得C
*>0。
如果要得到使得任务发布者收益最大的保费额C
*>0,需要有
也就是说
因此,在这种情况下,存在至少一个使得任务发布者收益最大的保费额C*且C*>0。
综上可以得出,当
时,本发明所述基于网络保险的高效区块链众包系统的激励方法存在斯塔克伯格均衡。