一种基于挖矿行为的区块链中区块截留攻击的防护方法技术

技术编号:27280390 阅读:22 留言:0更新日期:2021-02-06 11:47
本发明专利技术涉及一种基于挖矿行为的区块链中区块截留攻击的防护方法,采用箱型图检测方法对矿工数据预处理,结合矿工的挖矿行为,提出包括工作量证明奖励和区块挖掘失败惩罚的奖惩机制和信用值模型,综合评价矿工的贡献度并调动矿工参与挖矿的积极性;为了综合评价节点的信用等级,在高斯混合模型的基础上,综合考虑每个簇的平均样本后验概率和样本相似度,采用权衡后验概率与相似度的矿工信用等级划分算法,在第一时间内获得矿池内恶意矿工的分布情况,并给予合理的收益分配权重;最后,通过数学公式表示攻击矿池选择、有效算力、挖矿成本、收益等公式,建立区块截留攻击下的每一个矿工的收益模型,并结合矿工的信用等级来分配矿池的收益。的收益。的收益。

【技术实现步骤摘要】
一种基于挖矿行为的区块链中区块截留攻击的防护方法


[0001]本专利技术涉及区块链
,具体是指一种基于挖矿行为的区块链中区块截留攻击的防护方法。

技术介绍

[0002]2008年发布比特币以来,无需依赖中央机构的区块链技术发展迅速,并开始应用到金融、物联网、智能交通等领域。其中,区块链应用主要通过基于工作量证明(proof of work,PoW)的共识算法,实现不同参与者(矿工)之间的区块共识。在PoW共识算法中,矿工通过解决基于哈希的概率计算难题的方式来完成区块构建,从而赚取新货币或交易费。若矿工的计算能力越大,则其获得币奖励与区块记账权的可能性就越大。考虑到算力限制等因素导致网络中大部分矿工无法获得稳定收益,因此矿工们会选择加入矿池进行合作挖矿。但是在实际过程中出现针对矿池的区块截留攻击。区块截留攻击是恶意矿工始终选择将部分工作量证明发送给矿池管理者,一旦产生完整工作量证明时则将该证明直接抛弃。进行区块截留攻击的恶意矿工对被攻击的矿池不能产生任何有效帮助,并且还可以在矿池里获得一部分的收益。而对矿池管理者而言,虽然能够发现自身矿池正遭受到区块截留攻击,但无法判断矿池内的恶意矿工,因此无法及时采取措施来应对区块截留攻击。
[0003]因此有些学者考虑区块截留攻击的特点,侧重于研究矿池的收益分配方案,通过降低恶意矿工的收益,从而减少恶意矿工节点的入侵,如Schrijvers O等人针对比特币的矿池奖励进行分析,结合股份挖矿和平均挖矿,提出一种兼容股份激励和平均激励的收益分配方法。Bag S等人给挖到矿的矿工分配特殊奖励,从而降低区块截留攻击的危险。但是该类方法只是降低区块截留攻击的收益,但是无法有效检测出发动区块截留攻击的恶意矿工。部分学者考虑矿池挖矿的特点,侧重于研究挖矿协议,使矿工无法识别部分工作量证明和完整工作量证明,从而降低区块截留攻击的影响,如Bag S等人提出两个私人算力,且矿工计算和广播综合两个算力的哈希值,因此矿工不能判断挖到的工作量证明是否完整工作量证明。但是在该类方法中,恶意矿工可通过指派矿池获知完整工作量证明的判断要求,从而能判断完整工作量证明。同时,部分学者将信用机制与现有的挖矿协议相结合,通过及时剔除恶意矿工,从而避免区块截留攻击,如Tang C和Kaci A等人在矿工加入矿池时,考虑挖矿成本且采用信用阈值来限制低信用矿工的加入,从而降低遭遇攻击的概率。但是该类方法的信用等级机制没有综合分析矿工的挖矿行为,因此无法及时发现和排除恶意矿工。
[0004]综上所述,针对区块链中的区块截留攻击,目前算法只是简单改进收益分配方案、挖矿协议和信用机制来避免区块截留攻击的发生,但是存在无法有效检测恶意矿工、无法有效降低恶意矿工进行区块截留攻击的收益和信用等级机制划分过于简单等问题。

技术实现思路

[0005]针对上述目前学者研究的不足,本专利技术提供一种基于挖矿行为的区块链中区块截留攻击的防护方法,根据恶意矿工的挖矿行为信息,有效检测恶意矿工,从而降低恶意矿工
的收益,且尽可能提高正常矿工的挖矿收益与积极性。
[0006]为了实现本专利技术的目的,本专利技术所采用的技术方案为:
[0007]一种基于挖矿行为的区块链中区块截留攻击的防护方法,包括以下步骤:
[0008]步骤1):参数初始化;
[0009]步骤2):矿池管理者对矿工上报的数据进行预处理;
[0010]步骤3):矿池管理者根据上一个时刻矿工的工作情况,对矿工执行行为奖惩机制,并对矿工进行工作量证明奖励,获得矿工的累积表现分;
[0011]步骤4):矿池管理者通过信用值模型将矿工的累积表现分转化为累积信用值;
[0012]步骤5):矿池管理者采集用于评估矿工行为的评估要素;
[0013]步骤6):矿池管理者采用权衡后验概率与相似度的矿工信用等级划分方法对各矿工信用等级进行划分;
[0014]步骤7):矿池管理者根据矿工的信用等级给予不同的收益权重分配;
[0015]步骤8):矿池管理者将全部矿工的累积信用值和累积表现分进行清除,然后开始新一轮的累积表现分获取;
[0016]步骤9):矿池管理者结合矿工的收益权重分配情况,采用矿工收益分配方法给予矿工本轮矿池的收益。
[0017]进一步,所述步骤1)中初始化的参数包括:矿工数量N
w
、矿池数量N
c
、数据错误的次数、离线次数、延时时间和离线时间的判别阈值活跃时间的判别阈值ψ、表现分更新因子聚类中心数量K、最大迭代次数T
max
,令当前迭代次数step=0。
[0018]进一步,所述步骤2)中,矿池管理者采用箱型图检测算法对矿工所上报的数据进行数据清洗与归一化,若发现错误值,则用正常值的均值代替该错误值。
[0019]进一步,所述箱型图检测算法包括如下步骤:
[0020]2.1)矿池管理者对矿工所上报状态数据集合P
Lng
内所有元素按从高到低依次进行排序,选择排序第25%的状态数据作为上四分位值U,选择排序第75%的状态数据作为下四分位值L,即集合P
Lng
内只有1/4个数大于U,只有1/4个数小于L;
[0021]2.2)矿池管理者通过如下公式获得上界状态数据和下界状态数据,将超出上、下界的值定义为错误值,并对所有正常值取平均,得到平均值
[0022]P
upper
=U+1.5(U-L)
ꢀꢀ
(1)
[0023]P
lower
=U-1.5(U-L)
ꢀꢀ
(2)
[0024]其中,P
upper
表示上界数值,P
lower
表示下界数值;
[0025]2.3)矿池管理者将超出上、下界的错误值重新赋值为均值并记录错误值数量,从而获得新的状态数据集合;
[0026]2.4)矿池管理者验证上报数据的格式、时间先后顺序和错误值数量,并综合统计数据出错的次数;若错误的次数、离线次数、延时时间和离线时间中的任何一个指标大于判别阈值或者活跃时间低于判别阈值ψ,则矿池管理者认定该矿工信用等级为“中”,并给予其相应收益权重λ2。
[0027]进一步,所述步骤3)中,行为奖惩机制包括如下步骤:
[0028]3.1)判断其他矿池是否挖掘出区块:若其他矿池挖掘出区块,则矿池管理者扣除
自身矿池内全部矿工表现分φ;若其他矿池未挖掘出区块,矿池管理者则统计矿工部分工作量证明情况,并奖励其表现分γ
i
;若某个矿工提交完整的工作量证明,则矿池管理者再奖励其表现分δ;
[0029]3.2)矿池管理者通过公式(3)计算此次区块挖掘中各个矿工i的表现分ι
i

[0030]ι
i
=σ
i
γ
i

i
δ-eφ
ꢀꢀ...

【技术保护点】

【技术特征摘要】
1.一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:包括以下步骤:步骤1):参数初始化;步骤2):矿池管理者对矿工上报的数据进行预处理;步骤3):矿池管理者根据上一个时刻矿工的工作情况,对矿工执行行为奖惩机制,并对矿工进行工作量证明奖励,获得矿工的累积表现分;步骤4):矿池管理者通过信用值模型将矿工的累积表现分转化为累积信用值;步骤5):矿池管理者采集用于评估矿工行为的评估要素;步骤6):矿池管理者采用权衡后验概率与相似度的矿工信用等级划分方法对各矿工信用等级进行划分;步骤7):矿池管理者根据矿工的信用等级给予不同的收益权重分配;步骤8):矿池管理者将全部矿工的累积信用值和累积表现分进行清除,然后开始新一轮的累积表现分获取;步骤9):矿池管理者结合矿工的收益权重分配情况,采用矿工收益分配方法给予矿工本轮矿池的收益。2.根据权利要求1所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述步骤1)中初始化的参数包括:矿工数量N
w
、矿池数量N
c
、数据错误的次数、离线次数、延时时间和离线时间的判别阈值活跃时间的判别阈值ψ、表现分更新因子聚类中心数量K、最大迭代次数T
max
,令当前迭代次数step=0。3.根据权利要求1所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述步骤2)中,矿池管理者采用箱型图检测算法对矿工所上报的数据进行数据清洗与归一化,若发现错误值,则用正常值的均值代替该错误值。4.根据权利要求3所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述箱型图检测算法包括如下步骤:2.1)矿池管理者对矿工所上报状态数据集合P
Lng
内所有元素按从高到低依次进行排序,选择排序第25%的状态数据作为上四分位值U,选择排序第75%的状态数据作为下四分位值L,即集合P
Lng
内只有1/4个数大于U,只有1/4个数小于L;2.2)矿池管理者通过如下公式获得上界状态数据和下界状态数据,将超出上、下界的值定义为错误值,并对所有正常值取平均,得到平均值P
upper
=U+1.5(U-L)
ꢀꢀꢀꢀꢀ
(1)P
lower
=U-1.5(U-L)
ꢀꢀꢀꢀꢀ
(2)其中,P
upper
表示上界数值,P
lower
表示下界数值;2.3)矿池管理者将超出上、下界的错误值重新赋值为均值并记录错误值数量,从而获得新的状态数据集合;2.4)矿池管理者验证上报数据的格式、时间先后顺序和错误值数量,并综合统计数据出错的次数;若错误的次数、离线次数、延时时间和离线时间中的任何一个指标大于判别阈值或者活跃时间低于判别阈值ψ,则矿池管理者认定该矿工信用等级为“中”,并给予其相应收益权重λ2。
5.根据权利要求1所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述步骤3)中,行为奖惩机制包括如下步骤:3.1)判断其他矿池是否挖掘出区块:若其他矿池挖掘出区块,则矿池管理者扣除自身矿池内全部矿工表现分φ;若其他矿池未挖掘出区块,矿池管理者则统计矿工部分工作量证明情况,并奖励其表现分γ
i
;若某个矿工提交完整的工作量证明,则矿池管理者再奖励其表现分δ;3.2)矿池管理者通过公式(3)计算此次区块挖掘中各个矿工i的表现分ι
i
:ι
i
=σ
i
γ
i

i
δ-eφ
ꢀꢀꢀ
(3)其中,σ
i
表示矿工i完成的部分工作量证明数量,η
i
表示矿工i是否完成完整工作量证明的标志符,e表示矿工i所在矿池是否完成完整工作量证明的标志符;通过公式(4)计算矿工的累积表现分μ
i
:其中,μ
i
表示矿工i的累积表现分,μ

i
表示上一个时刻的矿工i的累积表现分,表示表现分更新因子。6.根据权利要求1所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述步骤4)中矿工的累积信用值用下式获得:其中,ξ
i
表示矿工i的累积信用值,ζ1表示模型的信用值范围,ζ2表示模型的累积速度,μ
i
表示矿工i的累积表现分。7.根据权利要求1所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述步骤5)中采集的评估要素包括:当前累积信用值、历史等级数值、活跃时间、离线次数、离线时间、延时时间和加入当前矿池累积时间。8.根据权利要求1所述的一种基于挖矿行为的区块链中区块截留攻击的防护方法,其特征在于:所述步骤6)中权衡后验概率与相似度的矿工信用等级划分方法包括如下步骤:6.1)矿池管理者随机选择一个矿工作为第一个聚类中心,并加入到聚类中心集合QS中;6.2)若集合QS中的聚类中心数量等于聚类中心数量K,则跳到步骤6.3);若不相等,则矿池管理者计算每个矿工i与聚类中心集合QS的最小距离D
i
,并计算每个矿工被选为下一个聚类中心的概率,即然后采用轮盘赌的方法选择下一个初始聚类中心,并加入到聚类中心集合QS中,重新执行步骤6.2);6.3)矿池管理者根据每个矿工与初始聚类中心的欧式距离,将矿工划分到距离最近的簇中,获得K个簇和每个簇内的样本;根据分簇结果,初始化每个簇的多维高斯分布模型参数,即将每个初始聚类中心分别赋值给多维高斯分布模型的均值向量,计算每个簇中的样本数在整体样本中的占比,并赋值给权重,计算每个簇在l个评估要素上的标准方差向量,并...

【专利技术属性】
技术研发人员:陈友荣陈浩刘半藤孙萍吕晓雯任条娟王章权
申请(专利权)人:浙江树人学院浙江树人大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1