一种基于马尔可夫决策过程的PoW共识协议安全评估方法

文档序号:30088018发布日期:2022-05-18 06:50阅读:90来源:国知局
一种基于马尔可夫决策过程的PoW共识协议安全评估方法
一种基于马尔可夫决策过程的pow共识协议安全评估方法
技术领域
1.本发明涉及一种评估方法,具体涉及一种基于马尔可夫决策过程的pow共识协议安全评估方法,属于区块链中的共识协议安全评估的技术领域。


背景技术:

2.近年来,区块链技术作为一种分布式数据库系统已逐渐兴起,其是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链其去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点正是区块链技术逐渐兴起的原因。其中去中心化、不可篡改等特点保证了区块链交易和系统本身的安全性。但是区块链是一个没有中央权威的分布式对等系统,导致如何保证区块链系统安全的运行成为当前区块链研究的重点。虽然权力下放可以防止各方的腐败行为,但是它必需要有一个可靠的共识协议来作出决策。
3.目前使用较多的区块链应用是bitcoin,使用的共识协议是中本聪共识协议(nakamotoconsensus),相类似的有litecoin和dogecoin。由于共识协议本身的限制以及存在恶意矿工为了自身挖矿收益的最大,进行破坏整体利益的攻击行为,导致共识协议的安全性面临风险。但是共识协议是实时应用在区块链系统上的,即使有源代码也无法对共识协议安全进行直接评估,比较常用的评估方法包括形式化验证和使用蒙特卡罗算法进行模拟的方法,缺点就在于很难进行不同共识协议的扩展,难以形成大规模的系统评估。同时也包括马尔可夫决策过程的使用,他们相比本发明的缺点在于他们对网络环境和交易过程的模拟很少,大多只使用算力和攻击者通信能力通过单一的自私挖矿攻击或者双花攻击进行评估,并没有多种攻击结合的评估方法也没有指标体系的构建,因此,迫切的需要一种新的方案解决上述技术问题。


技术实现要素:

4.本发明正是针对现有技术中存在的问题,提供一种基于马尔可夫决策过程的pow共识协议安全评估方法,该技术方案提供了一种可量化的共识协议安全评估框架,其中能够对多种已有的针对pow共识协议的攻击的组合进行抗攻击能力的评估。使用的量化指标大致包括恶意矿工相对收宜和颠覆增益等,不同的指标可以用来量化分析不同的攻击,其中还能结合攻击者攻击时间进行评估。
5.为了实现上述目的,本发明的技术方案如下,一种基于马尔可夫决策过程的pow共识协议安全评估方法,包括如下步骤:
6.步骤1)利用爬虫获得区块链系统的共识参数和网络参数及取值。通过python使用scrapy 库对不同pow共识协议应用实例的浏览器,比如blockchain.com和bitinfocharts.com网站进行爬虫,爬取区块链系统中实时的系统数据区块大小size,区块生成时间t,区块奖励r,区块传播时延lay,交易费用v,区块奖励reward,存入mysql数据库中。将爬取到的安全指标从数据库中读取出来,并定义为变量和函数参数的形式。
7.步骤2)使用ns3网络环境模拟器对需要进行安全评估的pow共识协议包括nc和非nc 的共识协议的应用进行模拟,主要模拟共识协议的挖矿过程以及交易过程所需要的网络环境,将步骤1)爬虫得到的实时数据输入到模拟器中运行以后得到孤块率rs,区块传播时间 pro_time,吞吐量tho,吞吐量等仿真实验结果值。
8.步骤3)利用mdp对pow共识协议进行安全评估。具体步骤如下
9.a)将步骤2)获取的模拟实验结果值孤块率rs以及鲸鱼攻击影响力ω,矿工算力α,确认次数c,生成的区块数量n和安全阈值threshold等安全参数直接输入到mdp模型中。
10.b)利用mdp模型模拟诚实矿工和恶意矿工的挖矿过程和交易过程。确定从攻击的角度使用马尔可夫决策过对共识协议进行抗攻击能力的分析所使用的攻击,包括顽固挖矿攻击、鲸鱼攻击以及顽固挖矿攻击和鲸鱼攻击的组合攻击。将这些攻击的挖矿过程结合由步骤2) 编成的pow共识协议不同应用的网络环境,比如bitcoin和litcoin等,编码形成多个ns3网络模拟器的挖矿事件函数。此外由于涉及到鲸鱼攻击,所以需要进行交易的模拟,将交易过程加入到挖矿事件中。
11.c)定义矿工m={m1,m2,......,mn},用来启动b)中定义的挖矿事件。并且定义恶意矿工ma={ma1,ma2,....,man}和诚实矿工mh={mh1,mh2,.....,mhn},且ma∪mh=m。在主函数启动整个程序,启动挖矿事件。
12.d)定义动作空间,即action={override,wait,adopt,compete},并将恶意矿工的挖矿中选择不同动作的情形,编码形成攻击的决策矩阵。
13.e)定义状态空间,即state={irrelevant,relevant,active},并结合定义的动作空间以及决策矩阵,将每次做出一个决策后所发生的状态变化和链长变化编写成矩阵的形式,即状态转移和回报矩阵,最后判断生成的区块个数是否达到预先设定的区块数。状态由三元组的形式来表示state_translation={la,lh,state}。回报矩阵用来累计计算恶意矿工采取不同动作后,诚实矿工和恶意矿工所获得的收益情况。
14.f)通过b)mdp中的目标函数量化共识协议的抗攻击能力,比如量化函数可以是下式恶意矿工的相对收入,ra代表恶意矿工获得的收入,rh代表诚实矿工获得的收入,ta代表恶意矿工攻击失败的所进行的挖矿时间:
[0015][0016]
步骤4)分析步骤3)得到的量化结果,和预先设定的阈值进行对比,修改输入的参数,再次进行一轮马尔可夫决策过程。进行多轮的马尔科夫决策过程计算,记录得到的所有量化结果以及对应的输入参数。
[0017]
步骤5)对pow共识协议安全评估结果进行分析,给出对于鲸鱼攻击和顽固挖矿攻击以及它们的组合攻击的最优抗攻击策略,并且给出完善该pow共识协议的意见或者给pow 共识协议的使用者提供规避风险的意见。所述步骤5)中对获得的量化结果进行多种分析,并对共识协议的创建者给出修改意见,来完善或者新建一个更优的共识协议,具体如下:
[0018]
(1)分析多种参数对量化结果的影响。通过模拟实验,画出折线图,分析攻击者的算力、攻击者的通信能力、交易费用以及废块率对量化结果的影响;
[0019]
(2)分析参数之间互相影响的关系,区块大小和区块生成时间对废块率的影响、区
块传播时间对γ的影响和区块奖励和区块的交易费用对鲸鱼攻击所需要使用的交易费用的影响以及对鲸鱼攻击影响力的影响;
[0020]
(3)最终结合分析得到的数之间互相影响的关系,向该pow共识协议的创建者给出完善共识协议的意见。
[0021]
本发明对攻击的效果进行量化,通过量化结果的对比分析,得到最优的输入参数,从而能获的最优的共识协议,并且,会对输入的参数进行范围上的限定,以防止出现脱离实际的情况。
[0022]
相对于现有技术,本发明具有如下优点,该技术方案提供一种基于马尔可夫决策过程的 pow共识协议安全评估方法,从抗攻击的角度,通过分析恶意矿工的攻击行为,得到最优攻击矩阵并验证,再通过目标函数来量化对于这种攻击的抵抗结果,在分析以后修改输入参数,获得最优的量化结果,从而让该共识协议对这种攻击更有抵抗力。最终在使用马尔可夫决策过程模拟多种攻击以后,综合分析以后,得到最优的共识协议。本发明与现有技术相比,主要有以下一些优点:
[0023]
(1)实验的设计流程比较简单,需要用到的计算知识比较少,本发明使用的马尔可夫决策过程,不像传统的形式化验证方法,需要严密的数学证明和数学计算等数学专业知识,只需要使用计算机知识,按照攻击的方式以及状态的变化设计策略矩阵以及状态转移和回报矩阵。再通过目标函数即量化函数来对结果进行量化,分析之后判断安全评估结果地好坏,修改输入参数。最后经过多轮地调参,得到对一种攻击的最好的抗攻击效果之后,修改不同的攻击方法,使得共识协议能够对多种攻击进行共识协议抗攻击的安全评估;
[0024]
(2)安全评估结果可量化,与目前使用较多的形式化验证的安全评估方法相比,其是使用数学证明的方法来体现共识协议的安全性,本发明使用马尔可夫决策过程的目标函数来量化一轮攻击模拟以后的抗攻击能力。比如针对自私挖矿攻击,其在恶意矿工相对收宜计算的结果越小,共识协议对自私挖矿攻击的抗攻击能力越强,该共识协议越安全;
[0025]
(3)能够结合多种攻击进行安全评估,不同于形式化验证的方法,或者已有的针对某种攻击进行抗攻击能力的分析,本发明能够针对多种攻击的抗攻击能力进行评估,并且还能多种攻击结合,比如顽固挖矿攻击,自私挖矿攻击和日食攻击以及贿赂攻击和鲸鱼攻击结合的安全评估;
[0026]
(4)能够对多种pow共识协议进行安全评估,只要将该种pow共识协议的基本参数,比如区块大小,区块传输时间,矿工算力等参数根据实时数据输入,就能针对这种pow共识协议进行安全评估,并进行安全性的改进;
[0027]
(5)本发明将网络的因素和交易的因素考虑进模拟实验中,能够在简化网络环境的基础上,尽可能地模拟真实的网络环境,还能便于对日食攻击以及贿赂攻击和鲸鱼攻击进行模拟。
附图说明
[0028]
图1是本发明的流程图;
[0029]
图2是本发明中马尔可夫决策过程的流程图;
[0030]
图3是本发明的鲸鱼攻击的决策矩阵图;
[0031]
图4是本发明的鲸鱼攻击状态转移和回报矩阵图;
[0032]
图5是本发明的自私挖矿过程图;
[0033]
图6是本发明的恶意矿工相对收益计算图。
具体实施方式:
[0034]
为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。
[0035]
实施例1:参见图1,一种基于马尔可夫决策过程的pow共识协议安全评估方法,本发明通过对恶意矿工挖矿时,为了个人利益而采取的不同攻击进行模拟,并用策略矩阵以及状态转移和回报矩阵来表示在链状态发生变化时,攻击者采取的攻击动作和采取某种动作后的状态转换和回报收益。得到回报收益以后,根据不同的目标函数,来量化共识协议对不同攻击的抗攻击能力。
[0036]
下面结合附图对发明的技术方案进行详细说明:
[0037]
图1给出了本发明的流程图。
[0038]
图2给出了本发明中马尔可夫决策过程的流程图。
[0039]
图3给出了本发明使用的自私挖矿和鲸鱼攻击的攻击组合的决策矩阵,该矩阵的作用是模拟恶意矿工在挖矿过程所进行的各种动作。
[0040]
矩阵的横行是诚实主链的长度,纵列是恶意矿工进行挖矿的私链长度。3个“*”中的第一个“*”代表当前状态空间处于“irrelevant”状态,即区块是由恶意矿工挖到。第二个“*”代表当前状态空间处于“relevant”状态,即区块是由诚实矿工挖到。第三个“*”代表当前状态空间处于“active”状态,即区块正处于“compete”竞争过程中,等待下一个区块的到来改变状态。
[0041]
图4给出了本发明的自私挖矿和鲸鱼攻击的攻击组合的状态转移和回报矩阵图,第一列表示的是状态和采取的动作,第二列表示的是当前的状态,第三列表示的是状态转移的概率,第4列表示的回报的计算。la和lh表示的是私链和主链的长度,i,r,a分别表示区块是恶意矿工挖到、诚实矿工挖到和处于竞争状态。α表示恶意矿工算力,ω表示诚实矿工受鲸鱼攻击影响的算力,γ表示诚实矿工在处于竞争时在私链挖矿的算力,c表示区块的交易fee,co 表示恶意矿工进行鲸鱼攻击使用的交易fee,由于区块奖励为1,所以c和co都是已经除以真实的区块奖励6.25btc。
[0042]
图5给出了本发明自私挖矿的过程图,图中给出了共识协议中不同矿工挖到的区块以后诚实链和私链的长度变化,以及随着链长变化以后,依据决策矩阵和状态转移和回报矩阵选择动作和计算回报。
[0043]
图6给出了本发明的恶意矿工相对收益的计算结果。
[0044]
具体实施例:
[0045]
为了方便对本安全评估方法加深理解,下面将以中本聪共识协议为例,对其进行安全性评估:一种基于马尔可夫决策过程的pow共识协议安全评估方法,根据本发明的流程图图1 以及马尔科夫决策过程图2,依次实施,
[0046]
步骤1)通过python使用scrapy库对nc共识协议应用实例的浏览器,blockchain.com网站进行爬虫,爬取区块链系统中实时的参数信息区块大小size,区块生成时间t,区块奖励r,区块传播时延lay,交易费用v,区块奖励reward,存入mysql数据库中。将爬取到的安全指标从数据库中读取出来,并定义为变量和函数参数的形式。
[0047]
步骤2)使用ns3网络环境模拟器对需要进行安全评估的nc共识协议应用进行模拟,主要模拟共识协议的挖矿过程以及交易过程所需要的网络环境,将步骤1)爬虫得到的实时数据输入到模拟器中运行以后得到孤块率rs,攻击者通信能力γ,鲸鱼攻击影响力ω等参数。
[0048]
步骤3)利用mdp对pow共识协议进行安全评估,具体步骤如下,
[0049]
步骤a)中,将步骤2)获取的参数以及鲸鱼攻击交易费用w_fee,矿工算力α,确认次数c,生成的区块数量n和安全阈值threshold等直接输入的参数,输入到mdp模型中。
[0050]
步骤b)利用mdp模型模拟诚实矿工和恶意矿工的挖矿过程和交易过程。确定从攻击的角度使用马尔可夫决策过对共识协议进行抗攻击能力的分析所使用的攻击,包括顽固挖矿攻击和鲸鱼攻击以及它们的组合攻击。将这些攻击的挖矿过程结合由步骤2)编成的nc共识协议应用的网络环境bitcoin,编码形成多个ns3网络模拟器的挖矿事件函数。此外由于涉及到贿赂攻击和鲸鱼攻击,所以需要进行交易的模拟,将交易过程加入到挖矿事件中。
[0051]
步骤c)定义矿工m={m1,m2,......,mn},用来启动步骤4)中定义的挖矿事件。并且定义恶意矿工ma={ma1,ma2,....,man}和诚实矿mh={mh1,mh2,..,mhn}。在主函数启动整个程序,启动挖矿事件,挖矿过程运行图如图6所示。
[0052]
步骤d)定义动作空间,即action={override,wait,adopt,compete},并将恶意矿工的挖矿中选择不同动作的情形,编码形成攻击的决策矩阵,决策矩阵如图3所示。
[0053]
步骤e)定义状态空间,即state={irrelevant,relevant,active},并结合定义的动作空间以及决策矩阵,将每次做出一个决策后所发生的状态变化和链长变化编写成矩阵的形式,即状态转移和回报矩阵。状态由三元组的形式来表示state_translation={la,lh,state}。回报矩阵用来累计计算恶意矿工采取不同动作后,诚实矿工和恶意矿工所获得的收益情况,如图4所示。
[0054]
步骤f)将诚实矿工和恶意矿工所获得的收益,通过目标函数,即恶意矿工的相对收益计算,得到中本聪共识协议对抗自私挖矿攻击的安全评估的量化结果。
[0055]
步骤4)分析得到的量化结果,和预先设定的阈值0.15进行对比,没有达到,还可以继续降低,那么修改输入的孤块率rs,矿工的算力α和攻击者通信能力γ等参数,再次进行一轮马尔可夫决策过程。进行多轮的马尔科夫决策过程计算,达到预先设定的阈值后,记录得到的所有量化结果以及对应的输入参数。
[0056]
步骤5)分析步骤4)得到的所有结果,给出完善该pow共识协议的意见,在本实施例中,初始设定的算力是0.3,攻击者通信能力是0.3,确认次数是6,区块大小是386,390bytes,区块生成时间是10min,鲸鱼攻击的交易费用是0.2btc。在鲸鱼攻击的交易费用修改为0.1以后,相对收益为0.15,分析以后鲸鱼攻击的交易费用降低以后,相对收益会减小,这就为共识协议创建者提供了修改建议。
[0057]
需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1