区块链攻击事件的感知方法、装置及计算设备与流程

文档序号:14993463发布日期:2018-07-20 23:00阅读:202来源:国知局

本发明涉及区块链技术领域,具体涉及一种区块链攻击事件的感知方法、装置及计算设备。



背景技术:

通俗来讲,区块链就是一个公开的分布式账簿系统,一段时间内的账务交易信息被加密打包成一个区块,盖上时间戳,一个个区块顺序链接形成一个账本,进而形成一个人去中心化的、网内用户共同维护的账簿系统,该账簿系统可以解决交易的信任和安全问题。

其中,一个个区块是由矿工通过挖矿过程得到的,而挖矿过程实质是一个寻找随机数的过程,若经过哈希运算后的值,比预设难度值的哈希值小,那么就挖矿成功了。与此同时,矿工之间也存在竞争,谁先计算得到当前区块的有效哈希,谁就能第一个添加新区块进入区块链,从而享受这个区块的全部收益。

然而,有一些攻击者利用自己的算力优势来“作弊”,使得自己的挖矿难度不断降低,从而保证最长链的优势,进而通过独占挖矿以实现获利,给其他矿工带来严重的损失。并且,现有技术中也没有一种可以自动感知这种独占挖矿的攻击事件的方案。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的区块链攻击事件的感知方法、装置及计算设备。

根据本发明的一个方面,提供了一种区块链攻击事件的感知方法,包括:

读取区块链中各个区块的数据内容;

按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;

对所述审计结果进行分析,得到攻击事件的感知结果。

根据本发明的另一方面,提供了一种区块链攻击事件的感知装置,包括:

第一读取模块,适于读取区块链中各个区块的数据内容;

第一审计模块,适于按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;

第一感知模块,适于对所述审计结果进行分析,得到攻击事件的感知结果。

根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述区块链攻击事件的感知方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述区块链攻击事件的感知方法对应的操作。

根据本发明的区块链攻击事件的感知方法、装置及计算设备,读取区块链中各个区块的数据内容;按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;对所述审计结果进行分析,得到攻击事件的感知结果。利用本发明提供的方案,可以通过预设审计策略对各个区块的数据内容自动进行安全审计,根据审计结果及时发现区块链攻击事件,进而便于针对该区块链攻击事件采取应对措施,以避免攻击者独占挖矿造成其他矿工的损失。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1a示出了根据本发明一个实施例的区块链攻击事件的感知方法的流程图;

图1b示出了从算法类型角度感知攻击事件的方法的流程图;

图1c示出了从时间戳角度感知攻击事件的方法的流程图;

图1d示出了从交易笔数角度感知攻击事件的方法的流程图;

图2示出了根据本发明另一个实施例的基于算法类型的区块链攻击事件感知方法的流程图;

图3示出了根据本发明又一个实施例的基于时间戳的区块链攻击事件感知方法的流程图;

图4示出了根据本发明再一个实施例的基于交易笔数的区块链攻击事件感知方法的流程图;

图5示出了根据本发明还一个实施例的区块链攻击事件的感知方法的流程图;

图6示出了本发明一个实施例的区块链攻击事件的感知装置的功能框图;

图7示出了根据本发明实施例的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1a示出了根据本发明一个实施例的区块链攻击事件的感知方法的流程图。如图1a所示,该方法包括以下步骤:

步骤s101:读取区块链中各个区块的数据内容。

其中,区块是指利用非对称加密算法进行加密的数据存储单元,每个区块由区块头和区块体组成,区块头用来记录该区块的说明信息,具体包括版本号、前一区块哈希值、默克尔根、时间戳、难度值以及随机数;而区块体用来记录交易信息。

其中,各个区块的数据内容包括可以反映挖矿过程的相关信息、区块特征的相关信息、和/或区块记录的交易的相关信息的内容,相应的,该数据内容来源于任意包括上述提及的相关信息的位置,可选的,数据内容来源于区块头和/或区块体。

具体地,通过读取区块链中多个连续区块的数据内容,可以得到上述提及的相关信息。举例来说,从多个连续区块的区块头中分别读取时间戳,该时间戳可以反映出挖矿过程中,相邻区块的出块时间间隔。然后,在后续步骤中,利用这些相关信息来确定对应的区块是否由恶意挖矿的方式挖到。需要说明的是,本发明对读取各个区块的数据内容的方式不作具体限定,本领域技术人员可根据实际条件进行设定,可选的,通过区块链浏览器读取。

步骤s102:按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果。

其中,一种或多种预设审计策略为用于确定各个区块的数据内容是否为恶意挖矿行为对应的数据内容的策略,该一种或多种预设审计策略可以根据实践或经验数据进行设定,或者,根据不同形式区块链的特征进行设定。仍以上述出块时间间隔为例,对应不同币种形式的区块链,区块的正常出块时间间隔不同,比如,verge(简称xvg)币形式的区块链,正常出块时间间隔为30秒,对应比特币形式的区块链,正常出块时间间隔为10分钟,因此,需要根据不同币种对应的区块链的正常出块时间间隔设定预设审计策略。但是,本发明并不以上述提及的设定预设设计策略的方式为限,在具体实施时,本领域技术人员可以根据实际需求进行设定。

具体地,在读取到各个区块的数据内容之后,对各个区块的数据内容按照相应的预设审计策略进行安全审计,得到各个区块的数据内容符合至少一种预设审计策略的审计结果。举例来说,数据内容为时间戳,按照时间戳审计策略审计相邻区块的时间戳是否符合异常挖矿行为对应出块时间间隔的特征。

步骤s103:对审计结果进行分析,得到攻击事件的感知结果。

一般情况下,若各个区块的数据内容符合至少一个预设审计策略的审计结果,则可以直接确定存在攻击事件。但在本发明的另一些具体实施例中,为使感知结果更准确,进一步根据至少一个预设审计策略的数量和/或至少一个预设审计策略对应的审计角度,来确定是否存在攻击事件。可选的,若至少一个预设审计策略的数量超过预设数值,则确定存在攻击事件;或者,若至少一个预设审计策略为特定审计策略,则确定存在攻击事件,其中,特定审计策略可依据币种进行设定。举例来说,设定xvg币对应的特定审计策略为算法类型审计策略,则当符合的至少一个预设审计策略中包括算法类型审计策略时,则可以确定存在攻击事件。

本实施例提供的区块链攻击事件的感知方法,可以广泛应用于自动感知区块链攻击事件的场景中,以及时发现区块链攻击事件。而通过读取适当的数据内容以及设定不同的预设审计策略,则可以从不同的角度感知到攻击事件,为便于对从不同的角度感知攻击事件的理解,下面分别选取三种较典型的数据内容来说明本实施例的实施步骤:

第一种,算法类型数据。图1b示出了从算法类型角度感知攻击事件的方法的流程图。如图1b所示,该方法包括:

步骤s111,对应图1a中的步骤s101,读取区块链中各个区块的算法类型数据。其中,算法类型指挖矿算法(同下文中的出块算法)的算法类型,对应不同的币种,算法的数量和类型存在不同;而对应相同的币种,挖到不同的区块使用的算法也存在不同。在本步骤中,通过读取区块链中各个区块的算法类型数据,可以得到顺序链接的多个区块对应的出块算法。

步骤s112,对应图1a中的步骤s102,判断各个区块的算法类型数据是否符合算法类型审计策略。通常来讲,对于算法类型有多种的币种形式的区块链,正常情况下顺序链接的区块的出块算法应该是交替的,或者是比较分散的,基于此,设定算法类型审计策略,即:设定识别恶意挖矿行为对应的算法类型数据的特征的策略。然后对各个区块的算法类型数据进行审计。

步骤s113,对应图1a中的步骤s103,若各个区块的算法类型数据符合算法类型审计策略,则得到攻击事件的感知结果,进而实现从算法类型角度感知攻击事件。

第二种,时间戳数据。图1c示出了从时间戳角度感知攻击事件的方法的流程图。如图1c所示,该方法包括:

步骤s121,对应图1a中的步骤s101,读取区块链中各个区块的时间戳数据。其中,时间戳记录各个区块生成的时间,每诞生一个新的区块,就会被盖上相应的时间戳,而区块链上的各个区块则是按照时间戳顺序链接起来的。相邻区块的时间戳可以反映出后一个区块相对于前一个区块的出块时间间隔。

步骤s122,对应图1a中的步骤s102,判断各个区块的时间戳数据是否符合时间戳审计策略。一般的,相邻区块的实际出块时间间隔应该在理想出块时间间隔的合理范围内波动,而当超过预设数量的连续区块的实际出块时间间隔超出理想出块时间间隔的合理范围时,则视为异常情况,基于此,设定时间戳审计策略,即:设定识别恶意挖矿行为对应的时间戳数据的特征的策略。

步骤s123,对应图1a中的步骤s103,若各个区块的时间戳数据符合时间戳审计策略,则得到攻击事件的感知结果,进而实现从时间戳角度感知攻击事件。

第三种,交易笔数数据。图1d示出了从交易笔数角度感知攻击事件的方法的流程图。如图1d所示,该方法包括:

步骤s131,对应图1a中的步骤s101,读取区块链中各个区块的交易笔数数据。其中,交易笔数指挖出各个区块的时间里的交易数量,即:顺序链接的下一个区块的时间戳与上一个区块的时间戳之间的时间内的交易数量,为该下一个区块的交易笔数。

步骤s132,对应图1a中的步骤s102,判断各个区块的交易笔数数据是否符合交易笔数审计策略。通过正常挖矿行为挖到的区块,第一笔交易记录为给挖矿成功的人的奖励交易,除此之外,一般情况下还存在多笔挖出该区块的时间里产生的交易记录;而当超过一定数量的连续区块的交易笔数数据均极其小或者甚至为1时,则视为异常情况,基于此,设定交易笔数审计策略,即:设定恶意挖矿行为对应的交易笔数数据的特征的策略。

步骤s133,对应图1a中的步骤s103,若各个区块的交易笔数数据符合交易笔数审计策略,则得到攻击事件的感知结果,进而实现从交易笔数角度感知攻击事件。

通过读取上述三种数据内容,以及设定对应的预设审计策略,可以分别从算法类型角度、时间戳角度以及交易笔数角度感知到攻击事件。但是,需要在此说明的是,本发明并不以此为限,在具体实施时,可以根据实际情况读取其他的数据内容,以及设定其他的预设审计策略,以实现利用该预设审计策略对相应的数据内容进行安全审计的效果。另外,不同的恶意挖矿方式可能导致一种或多种不同的异常情况,为了全面的感知攻击事件,可以将包括但不限于以上提及的预设审计策略中的多种进行结合,以进行安全审计。

根据本实施例提供的区块链攻击事件的感知方法,读取区块链中各个区块的数据内容;按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;对所述审计结果进行分析,得到攻击事件的感知结果。利用本发明提供的方案,可以通过预设审计策略对各个区块的数据内容自动进行安全审计,根据审计结果及时发现区块链攻击事件,进而便于针对该区块链攻击事件采取应对措施,以避免攻击者独占挖矿造成其他矿工的损失。

图2示出了根据本发明另一个实施例的基于算法类型的区块链攻击事件感知方法的流程图。本实施例适用于支持多种挖矿算法的币种。如图2所示,该方法包括以下步骤:

步骤s201:获取区块链的算法类型描述数据;根据区块链的算法类型描述数据生成算法类型审计策略。

其中,算法类型描述数据记录了区块链支持的多种算法类型。以xvg为例,xvg区块的出块算法包括:scrypt、x17、lyra2rev2、myrgroestl以及blake2s,也即:对应的区块链支持的算法类型有以上5种。

具体地,在获取到区块链支持的多种算法类型后,根据正常挖矿行为对应的算法类型的特征,和/或恶意挖矿行为对应的算法类型的特征生成算法类型审计策略。在本发明的一些具体实施例中,恶意挖矿行为对应的算法类型的特征为:超过预设数量的连续区块的出块算法均为同一种算法类型,相应的,算法类型审计策略为:若超过预设数量的连续区块的出块算法均为同一种算法类型,则确定存在恶意挖矿行为。

而在在本发明的另一些具体实施例中,考虑到在恶意挖矿的初始阶段,可能有正常挖到的区块添加到主链中的情况,因此,恶意挖矿行为对应的算法类型的特征也可以为:连续多个区块的出块算法中同一出块算法所占的比率超过预设比率,相应的,算法类型审计策略为:若连续多个区块的出块算法中同一出块算法所占的比率超过预设比率,则确定存在恶意挖矿行为,这种算法类型审计策略可以避免在恶意挖矿的初始阶段无法及时感知到攻击事件的情况。仍以xvg为例,若预设比率为90%,则当连续20个区块中对应出块算法为scrypt的数量达到18个时,则认为存在恶意挖矿。但是,本发明并不以上述提及的恶意挖矿行为对应的算法类型的特征为限,在具体实施时,本领域技术人员也可以参考实践数据或理论计算结果,而根据其他的算法类型的特征生成算法类型审计策略。

步骤s202:读取区块链中各个区块的算法类型数据。

在实际挖矿过程中,无论是正常挖矿还是恶意挖矿,都需通过区块链支持的算法类型中的一种算法来挖到一个区块,因此,每一个挖出的区块,都对应一个出块算法。

步骤s203:判断各个区块的算法类型数据是否符合算法类型审计策略。若是,则执行步骤s204;若否,则本方法结束。

具体地,对应算法类型审计策略为:若超过预设数量的连续区块的出块算法均为同一种算法类型,则确定存在恶意挖矿行为,相应的,判断各个区块的算法类型数据是否符合算法类型审计策略为:判断各个区块中是否存在连续的n个区块的算法类型数据相同,其中n大于或等于预设值;若存在连续的n个区块的算法类型数据相同,则判定符合算法类型审计策略,则执行步骤s204;若不存在连续的n个区块的算法类型数据相同,则判定不符合算法类型审计策略,则本方法结束。

步骤s204:得到攻击事件的感知结果。

若判定出各个区块的算法类型数据符合算法类型审计策略,则感知到攻击事件。

本实施例的上述步骤s201至步骤s204是通过利用算法类型审计策略对各个区块的算法类型数据进行审计,以感知攻击事件,与此同时,作为本实施例的一个可选步骤,考虑到正常挖矿方式下,出现孤块的频率是很低的,通常一般一天几个孤块,而在恶意挖矿方式下,大量矿池无法正常工作,开始不断挖到孤块,并且,由于分叉链无法同攻击者的最长链做竞争,导致分叉链中的区块都成为孤块,可见,恶意挖矿方式下,孤块数量以及出现的频率都会异常增大,因此,可通过孤块审计策略来进行安全审计,并感知攻击事件。具体地,读取矿池系统提供的数据内容;按照孤块审计策略对矿池系统提供的数据内容进行安全审计;若矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。其中,矿池系统中包括有预设时间段内的出块信息,而矿池系统提供的数据内容指反映孤块信息的内容,例如,孤块数量,孤块出现的频率等;孤块审计策略可以根据正常挖矿对应的孤块信息进行设定,或者,根据恶意挖矿对应的实践数据或理论结果进行设定,本发明对此不做具体他限定。可选的,孤块审计策略为:若预设时间周期内出现孤块的频率超过m%,则确定存在恶意挖矿行为。需要强调的是,该可选步骤可以在步骤s201至步骤s204之间的任意时机执行,或者,在步骤s201之前执行,或者,在步骤s204之后执行,本发明对此不做具体限定。

步骤s205:分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。

其中,交易数据指每个区块的交易详情,其记载了每笔交易的转出方、收入方、金额及转出方的数字签名等信息,而第一笔交易记录即为给挖矿成功的人的奖励交易,也称为产生交易。对于恶意挖矿挖到的区块,其第一笔交易记录则是给攻击者的奖励交易,相应的,收入方为攻击者的收款地址。

具体地,在感知到攻击事件之后,为避免相同的攻击者再次通过恶意挖矿的形式来获取对应区块的奖励,对攻击事件所涉及的一个或多个区块记录的交易数据进行分析,得到攻击者获利时所用的收款地址,即:一个或多个交易地址;然后,将该一个或多个交易地址作为恶意地址存储到预设地址库中,以便利用该预设地址库进行监控、查询,进而防止更多的恶意挖矿行为或攻击事件的发生。

本实施例方法可以通过多种方式来实现,在本发明的一些具体实施例中,由区块链浏览器来实现,该区块链浏览器可以读取算法类型数据,以及判断算法类型数据是否符合算法类型审计策略,进而感知到攻击事件;或者,在本发明的另一些具体实施例中,由插件来实现,插件通过与区块链浏览器之间建立通信,来读取算法类型数据,然后由插件判断算法类型数据是否符合算法类型审计策略,进而感知到攻击事件。

根据本实施例提供的基于算法类型的区块链攻击事件感知方法,获取区块链的算法类型描述数据;根据区块链的算法类型描述数据生成算法类型审计策略;读取区块链中各个区块的算法类型数据;判断各个区块的算法类型数据是否符合算法类型审计策略,若是,则得到攻击事件的感知结果;分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。利用本实施例方案,可以从算法类型的角度自动进行安全审计,当发现恶意挖矿行为对应的算法类型的特征时,则感知到攻击事件,进而便于针对该攻击事件采取应对措施,以避免攻击者独占挖矿造成其他矿工的损失。

图3示出了根据本发明又一个实施例的基于时间戳的区块链攻击事件感知方法的流程图。如图3所示,该方法包括以下步骤:

步骤s301:获取区块链的出块时间间隔描述数据;根据区块链的出块时间间隔描述数据生成时间戳审计策略。

其中,对于区块链网络,可以通过调整难度值来控制出块时间,而不同币种形式的区块链,由于其采用的难度调整算法不同,相应的出块时间间隔描述数据也不同。例如,xvg形式的区块链,对应的出块时间间隔为30秒。其难度调整算法为:向前回溯取相同算法12个区块的难度平均值做计算,若实际出块时间间隔小于理想出块时间间隔的三分之一,则调整难度为均值的三倍;若实际出块时间间隔大于理想出块时间间隔的三倍,则调整难度为均值的三分之一,这样即可通过对比实际出块时间间隔和理想出块时间间隔进行动态难度调整。又如,比特币形式的区块链,对应的出块时间间隔则为10分钟。

在恶意挖矿的过程中,攻击者通过修改时间戳,让其他矿工挖到的区块通过不了时间戳范围校验,成为孤块。这就造成了只有攻击者可以在主链上挖到块,而其他正常矿工则不能在攻击者控制的主链上挖到块。具体地,攻击者修改时间戳的形式有如下三种:第一种,在恶意挖矿的初始阶段,通过修改时间戳使连续多个区块的出块时间间隔远大于正常出块时间间隔(即出块时间间隔描述数据)。这种方式下,区块链网络会通过难度调整算法降低难度,使得挖矿难度大大降低。同时由于攻击者修改了时间戳,使得正常时间戳出的块无法满足时间戳范围校验,从而无法添加到攻击者挖到的主链上。第二种,通过交替修改时间戳,控制难度下降的速度。经过初始阶段,攻击者基本可以独占挖矿了,难度也已经下降了很多,此后攻击者已不需要很大的算力即可以不受干扰的挖矿。在这一阶段,为了使难度不至于下降过快,从而导致其他矿工发现和其他问题出现,攻击者交替修改时间戳,进而使挖矿难度处于波动状态。第三种,每隔特定数量的区块,通过修改时间戳使连续若干个区块的出块时间间隔远小于正常出块时间间隔(即出块时间间隔描述数据)。这种方式大大提升了出块的速度,同样也可以控制难度下降的速度。

具体地,根据上述三种修改时间戳的方式导致的出块时间间隔的特征,和出块时间间隔描述数据(即正常出块时间间隔)生成时间戳审计策略。可选的,时间戳审计策略为:若连续的m个区块的时间戳间隔小于或等于第一时间间隔阈值;和/或,连续的n个区块的时间戳间隔大于或等于第二时间间隔阈值,则确定存在恶意挖矿行为。需要在此说明的是,上述修改时间戳的形式仅为示例性的,而本发明并不以此为限,实际实施过程中,也可以根据其他修改时间戳的方式导致的出块时间间隔的特征,来生成时间戳审计策略。

步骤s302:读取区块链中各个区块的时间戳数据。

步骤s303:判断各个区块的时间戳数据是否符合时间戳审计策略。若是,则执行步骤s304;若否,则本方法结束。

具体地,判断各个区块中是否存在连续的m个区块的时间戳间隔小于或等于第一时间间隔阈值,若存在,则认为存在连续m个区块的出块时间间隔被极端改小的情况,进而判定符合时间戳审计策略。或者,判断各个区块中是否存在连续的n个区块的时间戳间隔大于或等于第二时间间隔阈值,若存在,则认为存在连续n个区块的出块时间间隔被极端改大的情况,进而判定符合时间戳审计策略。其中,m大于或等于第一预设值,n大于或等于第二预设值;第一时间间隔阈值和第二时间间隔阈值依据出块时间间隔而设定。

举例来说,xvg的出块时间间隔为30秒,若第一时间间隔阈值为1秒,第一预设值为3,则当存在连续3个及以上区块的时间戳间隔小于或等于1秒时,则判定符合时间戳审计策略。或者,若第二时间间隔阈值为5分钟,第二预设值为9,则当存在连续9个及以上区块的时间戳间隔大于或等于5分钟时,则判定符合时间戳审计策略。

步骤s304:得到攻击事件的感知结果。

若判定出各个区块的时间戳数据符合时间戳审计策略,则感知到攻击事件。

与图2对应的实施例相同,作为本实施例的一个可选步骤,可进一步可通过孤块审计策略来进行安全审计并感知攻击事件,具体地:读取矿池系统提供的数据内容;按照孤块审计策略对矿池系统提供的数据内容进行安全审计;若矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。具体描述可参见图2对应的实施例中的相关内容,在此不再赘述。

步骤s305:分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。

具体可参见步骤s205的描述,在此不再赘述。

与图2对应的实施例相同,本实施例方法也可以由区块链浏览器或者插件来实现。

根据本实施例提供的基于时间戳的区块链攻击事件感知方法,获取区块链的出块时间间隔描述数据;根据区块链的出块时间间隔描述数据生成时间戳审计策略;读取区块链中各个区块的时间戳数据;判断各个区块的时间戳数据是否符合时间戳审计策略,若是,得到攻击事件的感知结果;分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。利用本实施例方案,可以从时间戳的角度自动进行安全审计,当发现恶意挖矿行为对应的出块时间间隔的特征时,则感知到攻击事件,进而便于针对该攻击事件采取应对措施,以避免攻击者独占挖矿造成其他矿工的损失。

图4示出了根据本发明再一个实施例的基于交易笔数的区块链攻击事件感知方法的流程图。如图4所示,该方法包括以下步骤:

步骤s401:读取区块链中各个区块的交易笔数数据。

各个区块中会记录有上一个区块的出块时间戳和本区块的出块时间戳之间的时间内的交易信息,其中包括交易计数器中记录的交易笔数数据。

步骤s402:判断各个区块的交易笔数数据是否符合交易笔数审计策略。若是,则执行步骤s403;若否,本方法结束。

一般的,通过正常挖矿方式挖出的区块,不会出现连续多个区块的交易笔数数据均非常小或者甚至为1的情况;而通过恶意挖矿方式挖出的区块,由于修改时间戳或者一些其他异常原因,会导致连续多个区块中仅存在极其少量的交易,或者甚至只有一笔产生该区块的交易的情况的发生。

具体地,判断各个区块中是否存在连续的n个区块的交易笔数小于或等于交易笔数阈值,若存在,则认为是恶意挖矿导致的交易笔数数据异常,进而判定符合交易笔数审计策略;其中,n大于或等于预设值。

步骤s403:得到攻击事件的感知结果。

若判定出各个区块的交易笔数数据符合交易笔数审计策略,则感知到攻击事件。

与图2对应的实施例相同,作为本实施例的一个可选步骤,可进一步可通过孤块审计策略来进行安全审计并感知攻击事件,具体地:读取矿池系统提供的数据内容;按照孤块审计策略对矿池系统提供的数据内容进行安全审计;若矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。具体描述可参见图2对应的实施例中的相关内容,在此不再赘述。

步骤s404:分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。

具体可参见步骤s205的描述,在此不再赘述。

与图2对应的实施例相同,本实施例方法也可以由区块链浏览器或者插件来实现。

根据本实施例提供的基于交易笔数的区块链攻击事件感知方法,读取区块链中各个区块的交易笔数数据;判断各个区块的交易笔数数据是否符合交易笔数审计策略,若是,得到攻击事件的感知结果;分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。利用本实施例方案,可以从交易笔数的角度自动进行安全审计,当发现交易笔数数据异常时,则感知到攻击事件,进而便于针对该攻击事件采取应对措施,以避免攻击者独占挖矿造成其他矿工的损失。

图5示出了根据本发明还一个实施例的区块链攻击事件的感知方法的流程图。本实施例适用于利用多种预设审计策略对数据内容进行安全审计的情况。如图5所示,该方法包括以下步骤:

步骤s501:获取区块链的特征描述数据,根据区块链的特征描述数据生成多种预设审计策略。

其中,区块链的特征描述数据为任意可以表征区块链的特征的标准数据,该标准数据对应正常挖矿行为挖出的区块的参数。可选的,在本发明的一些具体的实施例中,区块链的特征描述数据包含:出块时间间隔和/或算法类型。但是本发明并不以此为限,本领域技术人员应该理解的是,凡是能够用于区别恶意挖矿行为和正常挖矿行为挖出的区块的数据,均可以选定为区块链的特征描述数据。

具体地,对应不同币种形式的区块链,根据区块链的特征描述数据生成不同的预设审计策略,进而避免攻击事件感知不准确的情况发生。举例来说,比特币形式的区块链的挖矿算法只有一种,相应的,区块链中的所有区块的出块算法均为该一种算法,这种情况下,使用“若连续多个区块的出块算法中同一出块算法所占的比率超过预设比率,则确定存在恶意挖矿行为”的算法审计策略来进行安全审计,则会在不存在攻击事件的时候错误的感知到攻击事件。因此,比特币的区块链不适于采用算法类型审计策略进行安全审计。

步骤s502:读取区块链中各个区块的数据内容。

读取区块链中各个区块的数据内容,其中,该数据内容包括反映挖矿过程的相关信息,例如,算法类型数据;区块特征的相关信息,例如,时间戳数据;和/或区块记录的交易的相关信息,例如,交易笔数数据。但是,本发明并不以上述示例为限,本领域技术人员应该理解的是,任意可以反映上述提及的相关信息的数据内容均可以作为本发明的实际数据内容。

步骤s503:按照多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果。

具体地,按照多种预设审计策略对相应的数据内容进行审计,其中,可以同时用多种预设审计策略分别并行的审计相应的数据内容,或者,也可以按照预设的顺序,每次用一种预设审计策略审计相应的数据内容。可选的,同时用时间戳审计策略、算法类型审计策略以及交易笔数审计策略分别审计时间戳数据、算法类型数据以及交易笔数数据,进而可以快速的得到审计结果。

进行安全审计之后,得到审计结果,具体地,符合至少一种预设审计策略的审计结果有以下三种:有一种数据内容符合相应的预设审计策略;或者,有多种数据内容符合相应的预设审计策略;或者,所有的数据内容均符合相应的预设审计策略。

步骤s504:对审计结果进行分析,得到攻击事件的感知结果。

在具体实施时,可以根据实际需求,设定不同的分析准则,然后根据该分析准则,得到感知结果。其中,分析准则可以从至少一种预设审计策略的数量,或者至少一种预设审计策略的审计角度这两个方面设定。具体地,从数量上设定,分析准则包括但不限于以下一种或多种:若有一种数据内容符合相应的一种预设审计策略,则确定存在攻击事件;或者,若有多种数据内容分别符合相应的多种预设审计策略,则确定存在攻击事件;或者,若所有的数据内容均分别符合相应的全部预设审计策略,则确定存在攻击事件。从审计角度上设定,若至少一个预设审计策略为特定审计策略,则确定存在攻击事件,其中,特定审计策略可依据币种进行设定。

本实施例的上述步骤s501至步骤s504是通过对区块链中各个区块的数据内容进行审计,以感知攻击事件,与此同时,作为本实施例的一个可选步骤,考虑到正常挖矿方式下,出现孤块的频率是很低的,通常一般一天几个孤块,而在恶意挖矿方式下,大量矿池无法正常工作,开始不断挖到孤块,并且,由于分叉链无法同攻击者的最长链做竞争,导致分叉链中的区块都成为孤块,可见,恶意挖矿方式下,孤块数量以及出现的频率都会异常增大,因此,可通过孤块审计策略来进行安全审计,并感知攻击事件。具体地,读取矿池系统提供的数据内容;按照孤块审计策略对矿池系统提供的数据内容进行安全审计;若矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。其中,矿池系统中包括有预设时间段内的出块信息,而矿池系统提供的数据内容指反映孤块信息的内容,例如,孤块数量,孤块出现的频率等;孤块审计策略可以根据正常挖矿对应的孤块信息进行设定,或者,根据恶意挖矿对应的实践数据或理论结果进行设定,本发明对此不做具体他限定。可选的,孤块审计策略为:若预设时间周期内出现孤块的频率超过m%,则确定存在恶意挖矿行为。需要强调的是,该可选步骤可以在步骤s501至步骤s504之间的任意时机执行,或者,在步骤s501之前执行,或者,在步骤s504之后执行,本发明对此不做具体限定。

步骤s505:分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。

其中,交易数据指每个区块的交易详情,其记载了每笔交易的转出方、收入方、金额及转出方的数字签名等信息,而第一笔交易记录即为给挖矿成功的人的奖励交易,也称为产生交易。对于恶意挖矿挖到的区块,其第一笔交易记录则是给攻击者的奖励交易,相应的,收入方为攻击者的收款地址。

具体地,在感知到攻击事件之后,为避免相同的攻击者再次通过恶意挖矿的形式来获取对应区块的奖励,对攻击事件所涉及的一个或多个区块记录的交易数据进行分析,得到攻击者获利时所用的收款地址,即:一个或多个交易地址;然后,将该一个或多个交易地址作为恶意地址存储到预设地址库中,以便利用该预设地址库进行监控、查询,进而防止更多的恶意挖矿行为或攻击事件的发生。

本实施例方法可以通过多种方式来实现,在本发明的一些具体实施例中,本实施例方法由区块链浏览器来实现,该区块链浏览器可以读取数据内容,以及判断数据内容是否符合预设审计策略,进而感知到攻击事件;或者,在本发明的另一些具体实施例中,本实施例方法由插件来实现,插件通过与区块链浏览器之间建立通信,来读取数据内容,然后由插件判断数据内容是否符合预设审计策略,进而感知到攻击事件。

根据本实施例提供的区块链攻击事件的感知方法,获取区块链的特征描述数据,根据区块链的特征描述数据生成多种预设审计策略;读取区块链中各个区块的区块头数据;按照多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;对审计结果进行分析,得到攻击事件的感知结果;分析攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;将一个或多个交易地址存储到预设地址库中。利用本实施例方案,可以通过利用多个预设审计策略对相应的数据内容进行安全审计,达到从多个角度进行安全审计的效果;当符合预设审计策略的数据内容满足分析准则时,则感知到攻击事件,增加了感知攻击事件的灵活性;同时,感知到攻击事件,可以便于针对该攻击事件采取应对措施,以避免攻击者独占挖矿造成其他矿工的损失。

图6示出了本发明一个实施例的区块链攻击事件的感知装置的功能框图。如图6所示,该装置包括:第一读取模块601、第一审计模块602、第一感知模块603、获取模块604、生成模块605、分析模块606、存储模块607、第二读取模块608、第二审计模块609以及第二感知模块610。

第一读取模块601,适于读取区块链中各个区块的数据内容;

第一审计模块602,适于按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;

第一感知模块603,适于对所述审计结果进行分析,得到攻击事件的感知结果。

其中,所述数据内容包含以下数据的一种或多种:时间戳数据、算法类型数据、及交易笔数数据。

其中,所述一种或多种预设审计策略包含:时间戳审计策略、算法类型审计策略和/或交易笔数审计策略。

获取模块604,适于获取区块链的特征描述数据;

生成模块605,适于根据所述区块链的特征描述数据生成所述一种或多种预设审计策略。

其中,所述区块链的特征描述数据包含:出块时间间隔和/或算法类型。

分析模块606,适于分析所述攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;

存储模块607,适于将所述一个或多个交易地址存储到预设地址库中。

第二读取模块608,适于读取矿池系统提供的数据内容;

第二审计模块609,适于按照孤块审计策略对矿池系统提供的数据内容进行安全审计;

第二感知模块610,适于若所述矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。

其中,所述装置由区块链浏览器来实现;或者,所述装置由插件来实现。

关于上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。

本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的区块链攻击事件的感知方法。

图7示出了根据本发明实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图7所示,该计算设备可以包括:处理器(processor)702、通信接口(communicationsinterface)704、存储器(memory)706、以及通信总线708。

其中:

处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。

通信接口704,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器702,用于执行程序710,具体可以执行上述区块链攻击事件的感知方法实施例中的相关步骤。

具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。

处理器702可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器706,用于存放程序710。存储器706可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序710具体可以用于使得处理器702执行以下操作:

读取区块链中各个区块的数据内容;

按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;

对所述审计结果进行分析,得到攻击事件的感知结果。

在一种可选的方式中,其中,所述数据内容包含以下数据的一种或多种:时间戳数据、算法类型数据、及交易笔数数据。

在一种可选的方式中:所述一种或多种预设审计策略包含:时间戳审计策略、算法类型审计策略和/或交易笔数审计策略。

在一种可选的方式中,程序710具体可以进一步用于使得处理器702执行以下操作:获取区块链的特征描述数据,根据所述区块链的特征描述数据生成所述一种或多种预设审计策略。

在一种可选的方式中:所述区块链的特征描述数据包含:出块时间间隔和/或算法类型。

在一种可选的方式中,程序710具体可以进一步用于使得处理器702执行以下操作:

分析所述攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;

将所述一个或多个交易地址存储到预设地址库中。

在一种可选的方式中,程序710具体可以进一步用于使得处理器702执行以下操作:

读取矿池系统提供的数据内容;

按照孤块审计策略对矿池系统提供的数据内容进行安全审计;

若所述矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。

在一种可选的方式中:所述方法由区块链浏览器来实现。

在一种可选的方式中:所述方法由插件来实现。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的区块链攻击事件的感知装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了:a1.一种区块链攻击事件的感知方法,包括:

读取区块链中各个区块的数据内容;

按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;

对所述审计结果进行分析,得到攻击事件的感知结果。

a2.根据a1所述的方法,其中,所述数据内容包含以下数据的一种或多种:时间戳数据、算法类型数据、及交易笔数数据。

a3.根据a2所述的方法,其中,所述一种或多种预设审计策略包含:时间戳审计策略、算法类型审计策略和/或交易笔数审计策略。

a4.根据a1-a3中任一项所述的方法,其中,所述方法还包括:获取区块链的特征描述数据,根据所述区块链的特征描述数据生成所述一种或多种预设审计策略。

a5.根据a4所述的方法,其中,所述区块链的特征描述数据包含:出块时间间隔和/或算法类型。

a6.根据a1-a5中任一项所述的方法,其中,在所述得到攻击事件的感知结果之后,所述方法还包括:

分析所述攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;

将所述一个或多个交易地址存储到预设地址库中。

a7.根据a1-a5中任一项所述的方法,其中,所述方法还包括:

读取矿池系统提供的数据内容;

按照孤块审计策略对矿池系统提供的数据内容进行安全审计;

若所述矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。

a8.根据a1-a6中任一项所述的方法,其中,所述方法由区块链浏览器来实现。

a9.根据a1-a6中任一项所述的方法,其中,所述方法由插件来实现。

本发明还公开了:b10.一种区块链攻击事件的感知装置,包括:

第一读取模块,适于读取区块链中各个区块的数据内容;

第一审计模块,适于按照一种或多种预设审计策略对各个区块的数据内容进行安全审计,得到符合至少一种预设审计策略的审计结果;

第一感知模块,适于对所述审计结果进行分析,得到攻击事件的感知结果。

b11.根据b10所述的装置,其中,所述数据内容包含以下数据的一种或多种:时间戳数据、算法类型数据、及交易笔数数据。

b12.根据b11所述的装置,其中,所述一种或多种预设审计策略包含:时间戳审计策略、算法类型审计策略和/或交易笔数审计策略。

b13.根据b10-b12中任一项所述的装置,其中,所述装置还包括:

获取模块,适于获取区块链的特征描述数据;

生成模块,适于根据所述区块链的特征描述数据生成所述一种或多种预设审计策略。

b14.根据b13所述的装置,其中,所述区块链的特征描述数据包含:出块时间间隔和/或算法类型。

b15.根据b10-b14中任一项所述的装置,其中,所述装置还包括:

分析模块,适于分析所述攻击事件所涉及的一个或多个区块记录的交易数据,得到一个或多个交易地址;

存储模块,适于将所述一个或多个交易地址存储到预设地址库中。

b16.根据b10-b14中任一项所述的装置,其中,所述装置还包括:

第二读取模块,适于读取矿池系统提供的数据内容;

第二审计模块,适于按照孤块审计策略对矿池系统提供的数据内容进行安全审计;

第二感知模块,适于若所述矿池系统提供的数据内容符合孤块审计策略,得到攻击事件的感知结果。

b17.根据b10-b15中任一项所述的装置,其中,所述装置由区块链浏览器来实现。

b18.根据b10-b15中任一项所述的装置,其中,所述装置由插件来实现。

本发明还公开了:c19.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如a1-a9中任一项所述的区块链攻击事件的感知方法对应的操作。

本发明还公开了:d20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如a1-a9中任一项所述的区块链攻击事件的感知方法对应的操作。

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