本发明涉及区块链漏洞检测,具体为一种基于集成学习的区块链共识机制漏洞的攻击检测方法。
背景技术:
1、区块链技术是分布式记账、共识机制、点对点传输、智能合约等多种互联网底层技术的系统性集成创新,成为继大数据、云计算、人工智能后的新一代信息技术。因为其具有去中心化、不可篡改、数据安全等特点,因此常被应用于金融、疫情防控、公共服务等领域;共识机制作为区块链技术的核心,可以用于解决分布式系统中不同节点之间数据一致性的问题;目前,公链中使用最多的是pow共识算法,节点们依据算力来争夺记账权,从而证明自己的工作量;然而,pow共识机制极易受到恶意节点的攻击,从而浪费掉诚实节点的算力,影响其正常的记账过程。
2、一个针对pow共识机制漏洞的攻击是sm1私有攻击策略,恶意节点通过在任意时刻通过偏离诚实协议来维护一条未被公开的私有链,然后策略性地进行释放,从而使诚实矿工的进行无效的计算;恶意节点可以利用sm1策略实现双花攻击,严重影响了区块链系统的正常运行,威胁到诚实节点的公平性;此外,该策略的危害并不仅限于此;大量恶意节点可能发起共谋攻击,导致大量诚实节点罢工从而将大大削弱安全措施,这将严重损害比特币的声誉。
3、sm1策略的变体攻击包括osm最优私有攻击策略、stubborn mining顽固私有攻击策略和optimal stubborn mining最优顽固私有攻击策略等;
4、osm攻击策略:指采用一种优化策略的sm1攻击,即将sm1攻击建立成马尔可夫决策过程并求解最优策略。这种策略可以使以攻击者保留的区块数量尽可能多,从而获得更高的奖励;
5、stubborn攻击策略:指在通过攻击者的操作来控制公共区块链,获得比正常矿工更高的奖励;
6、optimal stubborn攻击策略:是将stubborn攻击建立成mdp过程从而最大化攻击者的奖励的一类sm1变体攻击。
7、目前,已有方法用于检测pow共识算法的区块链网络中的sm1策略。然而,随着技术的不断发展,越来越多针对pow共识机制漏洞的sm1变体攻击被相继提出;目前存在的检测方法存在一些局限性,具体分为三种情况:(1)用于训练模型的数据集过少或仅仅考虑分叉高度这一单一特征,使得预测模型的使用效果严重受限,极有可能出现欠拟合的情况,从而导致预测结果误判率较高;(2)单一的机器学习模型使用单一的学习策略,用于决策的算法过为单一化,会导致对恶意节点的检测结果的准确率不高,同时也会出现过拟合和欠拟合的情况;(3)许多现存的检测机制仅适用于检测sm1策略,很少考虑sm1策略的变体攻击。这会导致预测模型漏判此类变体攻击,往往会对诚实节点造成比sm1策略更大的威胁,严重危害区块链网络的安全,为此我们提出一种基于集成学习的区块链共识机制漏洞的攻击检测方法用于解决上述问题。
技术实现思路
1、本发明的目的在于提供一种基于集成学习的区块链共识机制漏洞的攻击检测方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于集成学习的区块链共识机制漏洞的攻击检测方法,包括数据的收集、构建数据集、检测模型的构建和训练以及漏洞检测;
3、数据的收集:建立一个使用共识协议区块链网络运行过程的模拟器,设置节点数量、算力以及节点的连接关系,各节点之间依靠计算能力竞争记账权,利用共识机制漏洞策略sm1及变体攻击对模拟器进行修改,对生成的区块链日志数据进行数据提取收集,并记作date;
4、构建数据集:将收集到的date数据进行有效的组织和筛选,得到有效特征,对有效特征进行降维处理,得到训练集t;
5、检测模型的构建和训练:包括若干弱分类器hi,若干弱分类器hi线性组成强分类器hstart,利用训练集t训练强分类器hstart,训练结束后,会加大分类误差率小的弱分类器的权重值,进行若干次的迭代,最后按照每个弱分类器hi的权重重新线性组合成强分类器hfinal;
6、漏洞检测:利用训练完成的强分类器hfinal对共识机制的区块链网络中的漏洞进行检测,以表格的形式导出最终的检测结果。
7、优选的,模拟器模拟天数,date数据包括诚信节点与恶意节点所生成的区块数据。
8、优选的,模拟共识机制漏洞策略sm1攻击方式具体步骤:
9、步骤1:选择一个目标区块链网络,并在网络中建立攻击者节点;
10、步骤2:攻击者节点计算出一个新的区块,将新的区块进行隐藏,并加入攻击者节点的分支链中;
11、步骤3:攻击者链长大于网络中其他节点的链长时,攻击者将分支链广播到整个共识协议区块链网络中。
12、优选的,模拟共识机制漏洞策略sm1变体攻击主要包括osm攻击、stubborn攻击和optimal stubborn攻击;
13、osm攻击策略模拟:攻击者节点计算出新区块的概率与公共区块链计算出新块概率进行比较,当攻击者节点计算出新区块的概率大于公共区块链计算出新块概率时,攻击者节点秘密计算区块,并在私有区块链上保留区块数加1,当攻击者节点私有区块链达到一定数量时,当前公共区块链上新的区块生成后,攻击者节点将其自己保留的所有区块公开发布到公共区块链上,并将自己保留的区块链转到公共区块链上;
14、stubborn攻击策略模拟:公共区块链上出现攻击者保留的区块时,攻击者节点会立即公开一部分私有区块链,以吸引其他正常节点跟随其操作,当其他正常节点开始计算与攻击者节点相同的区块时,攻击者节点会将保留的该区块发布到公共区块链上;
15、optimal stubborn攻击策略模拟:公共区块链上下一个区块生成概率小于攻击者节点计算出下一个区块的概率时,攻击者节点继续秘密地计算区块,直到两者之间的差值大于一个先设置好的阈值,当公共区块链上出现攻击者节点保留的区块时,攻击者节点会立即公开一部分私有区块链,以展示其攻击策略并吸引其他节点加入攻击。
16、优选的,有效特征包括以下特征:
17、交易行为:交易数量、交易金额、交易时间、交易频率和交易地址;
18、区块链链路:节点所在的位置、节点的连接速度、节点的存储容量和节点的带宽;
19、节点行为:节点的响应时间、节点处理的数据量、节点质押的币种;
20、相关收益:节点的收益、收益的稳定性、收益与节点贡献的比例;
21、分叉高度:节点私有区块链长;
22、出块速度:单位时间内节点计算新块的速度。
23、优选的,利用pca算法对有效特征进行降维处理,具体降维步骤如下:
24、步骤1:将有效特征中的数据进行标准化处理,使得每个特征的贡献度是一致的,使用标准缩放将有效特征中的数据缩放到平均值为0,方差为1的形式;
25、步骤2:创建pca实例,指定要保留的主成分数,使用pca模型拟合和转换输入数据;
26、步骤3:获取pca模型的协方差矩阵及其特征值,过协方差矩阵计算特征值和特征向量;
27、步骤4:输出得到的主成分,及其方差占比,选择前k个成分作为数据的新特征。
28、优选的,训练集t中有n个样本,每个样本在训练之前设有相同的权值,训练集t每训练一个弱分类器hi,训练集t中的样本权值就会发生调整,并用于下一个弱分类器hi训练。
29、优选的,强分类器hstart具体的训练过程中,若训练集t中的某个样本已经被准确地分类,该样本就会在构造下一个训练集中,该样本的权值就被降低,相反,如果训练集t中的某个样本未被准确地分类,该样本的权值就得到提高。
30、优选的,强分类器hstart中的各个弱分类器hi训练过程结束后,加大分类误差率小的弱分类器的权重值,降低分类误差率大的弱分类器的权重值,按照各弱分类器hi的权重值线性组合成一个强分类器hfinal。
31、与现有技术相比,本发明的有益效果是:
32、通过建立一个使用共识协议区块链网络运行过程的模拟器,模拟区块链共识机制漏洞策略sm1攻击及变体攻击,对区块链日志数据进行数据提取收集,这样通过模拟器可以生成大量的数据用于训练模型,解决了训练模型的数据集过少的问题,构建数据集的特征包括了交易行为、区块链链路、节点行为、相关收益、分叉高度和出块速度,这样多特征检测共识机制漏洞更加准确,训练集中包含有区块链共识机制漏洞策略sm1变体攻击特征数据,这样训练完成的模型,可以检测区块链共识机制漏洞策略sm1变体攻击。
33、训练集每训练一个弱分类器,训练集中的样本权值就会发生调整,并用于下一个弱分类器训练,而且强分类器hstart中的各个弱分类器训练过程结束后,加大分类误差率小的弱分类器的权重值,降低分类误差率大的弱分类器的权重值,按照各弱分类器的权重值线性组合成一个强分类器hfinal,这样训练处理的模型不易出现欠拟合和过拟合。