一种针对以太坊网络的智能贿赂自私挖矿攻击算法

文档序号:25490446发布日期:2021-06-15 21:55阅读:307来源:国知局
一种针对以太坊网络的智能贿赂自私挖矿攻击算法

本发明属于隐私保护领域,涉及区块链、自私挖矿、机器学习等技术,在提高攻击者智能性的同时,在理性的环境下,提出了收益更高且阈值更低的攻击算法,发现了区块链系统中共识机制的漏洞,为进一步提高区块链系统的安全性提供了一种新思路。



背景技术:

在以太坊网络中,矿工把网络中合法的交易信息组织起来,打包成一个区块。通过共识协议,所有矿工节点参与争夺记账权,最终将有一个矿工节点获得记账权,该矿工利用链接将新生成的区块添加到分布式账本(即,区块链)中,从而该矿工节点将获得交易费和出块奖励。由于以太币具有很高的经济价值,这引起了许多攻击者的注意。需要注意的是,算力较高的矿工,生成新区块的能力也较强,在共识协议中获得记账权的概率也较大。一种比较极端的情况是,当攻击者拥有绝大多数算力(>51%)时,就能够进行51%攻击,通过分叉任意更改账本信息,从而获取非法收益(例如doublespending)。在区块链中,分叉主要分为两种情况:正常分叉和恶意分叉。正常分叉是由协议修改或者多个诚实矿工同时发现新区块造成的。恶意分叉则是由攻击者通过某些攻击算法,为了获得更多收益故意造成的分叉。拥有少数算力的矿工集中他们的算力组成矿池,以矿池的整体算力进行挖矿,若矿池发现一个新的区块,会根据比例分配奖励。当矿池发展到一定规模,极易进行51%攻击,从而拥有少数算力的矿工仍然有机会获得更大的收益。矿池还会引起其他攻击,例如自私挖矿攻击、顽固攻击等。这些策略性攻击严重破坏了加密货币系统的经济生态环境,影响其良性发展。因此,此类攻击引起的安全问题一直是人们关注的热点。解决此类攻击的一种方案,就是提高诚实矿工的比例,并构造激励相容的共识协议。



技术实现要素:

本发明的目的是提供一种收益最大化的混币质量更新规则,其具体过程如下:自私矿池在挖到新区块时会暂时地保留该区块,然后在适当的时机公开区块以使其他理性矿工的区块无效从而增大自己的相对收益;在挖出区块时,自私矿池会引用网络中未被引用的uncleblock以获得nephewreward;并且自私矿池在挖出新区块时还会进行贿赂攻击;具体做法是:当自私矿池在私链上挖出一个新块时,会在该区块上附加一定的额外奖励,后续在私链上挖出下一区块的矿工便会得到这笔额外奖励;当以太坊网络中出现竞争的分叉时,贿赂攻击可以吸引一部分理性矿工在自私矿池的分支上工作,增加了自私矿池的私链成为最长合法链的概率,从而从全局来看会增加自私矿池的收益;

通过强化学习为bsm-ether算法建立了马尔可夫决策过程模型,模型定义为一个四元组,其中s表示状态空间,a表示动作集合,p表示状态概率转移矩阵,r是奖励矩阵;接下来的部分将对m各组件进行详细描述:

(1)状态空间s:马尔可夫决策过程在任一时刻的状态为<la,lh,optional,uncle>,其中la表示自私矿池的私链长度,lh表示公链长度,optional可以取集合{irrelevant,relevant,active}中的任一值,各取值的含义如下:

a)若当前状态为<la,lh,irrelevant,uncle>,则上一状态为<la-1,lh,optional,uncle>,意味着状态转移时新区块由自私矿池挖出;

b)<la,lh,relevant,uncle>的前一个状态为<la,lh-1,optional,uncle>,这表示新区块由理性矿工挖出;

c)若当前状态为<la,lh,active,uncle>则意味着由于理性矿工挖出新区块导致私链失去领先优势,自私矿池执行match动作(match的定义在动作集合中给出),造成区块链网络中出现竞争的分叉;

uncle的取值为exist或none;exist表示当前系统状态在状态转移时需要考虑unclereward的计算,none则表示不需要计算unclereward;

(2)动作集合a:表示自私攻击者在某一系统状态下可选策略的集合:

a)adopt:自私攻击者放弃对私链的运营,选择在公链上挖矿;当私链长度落后于公链时(即la<lh),选择执行该动作;

b)wait:攻击者不公布任何区块,继续在私链分支上挖矿;当la>lh时,执行此动作;

c)override:当系统状态为<la,lh,relevant,uncle>或<la,lh,active,exist>,其中la=lh+1且lh≥1时,攻击者执行该动作,公开并广播私链上的所有区块,使对应公链上的区块无效;

d)match:理性矿工发现一个新的区块,使得公链长度和私链长度相等,即la=lh,此时攻击者会公布私链上的所有区块,并对当前私链进行贿赂攻击,增大私链成为最长合法链的概率;

(3)状态转移矩阵p:在当前马尔可夫模型中,每一个状态都是四元组,表示为<la,lh,optional,uncle>,模型的初始状态为<0,1,relevant,none>,随后自私攻击者和理性矿工分别以算力α和1-α在markov模型上挖矿;攻击者根据当前状态选择最优动作,随后模型转移到下一状态;

(4)奖励矩阵r:攻击者在每一状态都会选择一个动作,随后模型转移到下一状态,在状态转移时,攻击者会获得相应的奖励,设奖励的形式为二元组<r_la,r_lh>,其中r_la表示攻击者获得的奖励,r_lh表示理性矿工获得的奖励。

该方法在考虑理性矿工和智能自私矿工的情况下,能够将贿赂自私挖矿攻击构造成一个马尔可夫决策过程,利用强化学习优化攻击算法。本发明达到如下效果:在以太坊网络中,所有参与者都是理性的,且存在智能的攻击者,攻击者利用机器学习思想,通过构造马尔可夫决策过程,选取合适的参数,来达到阈值最小,收益最大化的效果。本发明适用于采用工作量证明共识机制的区块链系统的安全性。

附图说明

图1bsm-ether状态机图

图2bsm-ether与其他算法收益比较图

图3bsm-ether与比特币网络攻击算法比较图

具体实施方式

图1展示了系统的状态转移过程。首先初始化系统状态为<0,1,relevant,none>,并且以集合{adopt,wait,override,match}初始化动作空间。当攻击者挖出一个新区块时,函数onselfishpool(state)将被调用,攻击者会引用网络中未被引用的uncleblock,并实施briberyattack.随后攻击者根据当前状态选择执行某一动作,并调用函数computereward(state,action)计算攻击者的奖励收益。当理性矿工挖出新区块时,函数onrationalminers(state)被调用,攻击者根据当前系统状态采取相应的动作,然后调用函数computereward(state,action)来计算奖励。

bsm-ether算法具体步骤所示:

(1)state←<0,1,relevant,none>

(2)actionspace←{adopt,wait,override,match}

(3)functiononselfishpool(state)

(4)referencessomeunreferenceduncleblocks

(5)performbriberyattack

(6)la←la+1

(7)ifla==lh+1andlh>=1then

(8)taketheaction==override

(9)state←<la,lh,active,exist>

(10)computereward(state,override)

(11)else

(12)taketheaction==wait

(13)state←<la,lh,irrelevant,none>

(14)computereward(state,wait)

(15)endif

(16)endfunction

(17)functiononrationalminers(state)

(18)theminerreferencessomeunreferenceduncleblocks

(19)lh←lh+1

(20)ifla<lhthen

(21)taketheaction==adopt

(22)state←<la,lh,relevant,exist>

(23)computereward(state,adopt)

(24)elseifla==lhthen

(25)taketheaction==match

(26)state←<la,lh,relevant,none>

(27)computereward(state,match)

(28)elseifla==lh+1then

(29)taketheaction==override

(30)state←<la,lh,relevant,none>

(31)computereward(state,override)

(32)else

(33)taketheaction==match

(34)state←<la,lh,active,exist>

(35)computereward(state,match)

(36)endif

(37)endfunction

本发明有效性验证

为了验证算法的有效性和优越性,在图2中,bsm-ether同sm1inethereum以及honestmining进行对比。对于sm1算法,只有当攻击者的算力高于16.3%时,sm1算法才会获得比诚实挖矿更高的相对收益,而对于bsm-ether算法,攻击者只需拥有超过8.5%的算力即可获得比诚实挖矿更高的相对收益。此外,在攻击者拥有同等算力的情况下,bsm-ether算法比sm1算法拥有更高的相对收益。因此,bsm-ether算法不仅明显的降低了自私挖矿的算力阈值,而且增加了自私挖矿的相对收益。在图3中,bsm-ether算法同比特币网络攻击算法进行了比较。相对于比特币中的ipbsm算法,以太坊中的bsm-ether拥有更高的相对收益曲线,这是因为以太坊中存在着的unclereward可以为攻击者提供额外的收益。不仅于此,unclereward还弥补了部分实施自私挖矿的代价,使得bsm-ether有着比ipbsm更低的算力阈值。这表明,相较于比特币,以太坊更易于受到自私挖矿的攻击,因此有必要提高以太坊的安全性。

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