CN114444074A - 一种异常区块链节点检测方法及装置 - Google Patents
一种异常区块链节点检测方法及装置 Download PDFInfo
- Publication number
- CN114444074A CN114444074A CN202210074156.9A CN202210074156A CN114444074A CN 114444074 A CN114444074 A CN 114444074A CN 202210074156 A CN202210074156 A CN 202210074156A CN 114444074 A CN114444074 A CN 114444074A
- Authority
- CN
- China
- Prior art keywords
- mapping
- graph
- block chain
- nodes
- abnormal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开了一种异常区块链节点检测方法及装置。所述方法包括:针对区块链网络中至少2个区块链节点构建图结构,各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度;将图结构对应的原始表示输入图神经网络进行映射处理,得到图结构对应的映射表示;原始表示包括每个图节点的原始特征以及每个边的权重,映射表示包括每个图节点的映射特征;在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,将具有异常映射特征的图节点所对应的区块链节点,确定为异常区块链节点。
Description
技术领域
本说明书实施例涉及区块链领域,尤其涉及一种异常区块链节点检测方法及装置。
背景技术
目前,区块链网络在多项业务中存在应用。例如数据存证、虚拟货币等。区块链网络具有加密、不可篡改、可追溯等多种优势。
然而,区块链网络也可能被攻击,导致区块链数据出现错误。例如,日蚀攻击。由于区块链网络包含多个区块链节点,区块链网络被攻击时,通常会存在区块链节点因为被攻击而出现异常,例如,被攻击的区块链节点可能存储有错误的区块链数据。因此,可以通过检测区块链节点是否存在异常,帮助识别区块链网络是否被攻击。
为了便于帮助识别区块链网络是否被攻击,目前亟需一种检测区块链节点是否存在异常的方法。
发明内容
为了解决上述技术问题,本说明书实施例提供了一种异常区块链节点检测方法及装置。技术方案如下所示。
一种异常区块链节点检测方法,包括:
针对区块链网络中至少2个区块链节点构建图结构,其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,所述两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度;
将所述图结构对应的原始表示输入图神经网络进行映射处理,得到所述图结构对应的映射表示;所述原始表示包括每个图节点的原始特征以及每个边的权重,所述映射表示包括每个图节点的映射特征;
在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
一种异常区块链节点检测装置,包括:
构建单元,用于针对区块链网络中至少2个区块链节点构建图结构,其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,所述两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度;
映射单元,用于将所述图结构对应的原始表示输入图神经网络进行映射处理,得到所述图结构对应的映射表示;所述原始表示包括每个图节点的原始特征以及每个边的权重,所述映射表示包括每个图节点的映射特征;
异常确定单元,用于在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
通过上述技术方案,可以利用图结构直观地表示从区块链网络中所获取的区块链节点之间区块链数据的相似度,从图结构整体考虑,基于图神经网络将区块链数据相似度融入图节点的映射特征,使得异常区块链节点对应映射特征和正常区块链节点对应映射特征差异较大,针对映射特征,可以利用异常检测算法确定出异常映射特征,进而可以全面快速地确定出异常区块链节点,方便帮助识别区块链网络是否被攻击。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种异常区块链节点检测方法的流程示意图;
图2是本说明书实施例提供的一种待检测图结构的示意图;
图3是本说明书实施例提供的一种异常区块链节点检测装置的结构示意图;
图4是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。
目前,区块链网络日趋成熟,在多种业务方面存在应用。例如数据存证、虚拟货币等。区块链网络具有加密、不可篡改、可追溯等多种优势。
然而,目前的区块链网络也可能被攻击,从而导致区块链中的数据被篡改等后果。例如,日蚀攻击。
下面对日蚀攻击进行具体的解释。首先,区块链网络中通常包括多个区块链节点。每个区块链节点可以从其他区块链节点获取新增的区块,或者自身产生新增的区块,并将新增的区块发送到其他区块链节点。由于区块链网络属于分布式存储,需要统一区块链网络中全部区块链节点所存储的区块链,因此,每个区块链节点可以通过共识机制(例如,工作量证明)统一确定相同的新增区块,添加到区块链中,使得全部区块链节点中存储的区块链保持一致。
例如,在工作量证明的共识机制中,每个区块链节点可以根据接收到的不同新增区块构建区块链分支,并在一段时间后确定最长的区块链分支为正确的区块链(即,区块最多的一条区块链分支)。
但是,针对任一正常区块链节点,获取新增区块的来源可能被限制,可能会导致获取不到正确的区块,该正常区块链节点上也就不存在正确的区块链,从而无法通过共识机制确定出正确的区块链。
例如,在攻击方所控制的区块链节点控制了正常区块链节点获取新增区块的来源的情况下,该正常区块链节点只能获取到攻击方区块链节点发送的错误区块,而不会获取到其他正常区块链节点发送的正确的区块,使得该正常区块链节点处于孤立状态,被攻击方进一步控制。由于该正常区块链节点本身就无法获取到正确的区块,不存在正确的区块链分支,也就难以通过共识机制确定出正确的区块链。
并且,被控制的正常区块链节点可以进一步向其他正常区块链节点发送错误的区块,使得其他正常区块链节点进一步被攻击方控制。
例如,攻击方的区块链节点包括区块链节点1-3,而正常的区块链节点4通常从区块链节点1-3获取新增的区块。攻击方可以通过区块链节点1-3向区块链节点4发送错误的区块,区块链节点4无法发现该区块的错误,也无法获取到其他正常区块链节点上的正确区块,从而使得错误的区块链通过共识机制,导致正常区块链节点4也被攻击方控制。进一步地,区块链节点4还会向其他正常区块链节点发送错误的区块。
在执行日蚀攻击之前,攻击方还可以预先通过女巫攻击伪造出多个虚拟区块链节点,利用多个虚拟区块链节点连接正常区块链节点,使得该正常区块链节点只能从被攻击方控制的虚拟区块链节点中获取错误的区块,从而完成对正常区块链节点的控制。
当然,上述日蚀攻击仅仅是一种攻击的示例,还存在其他针对区块链网络的攻击方式,此处不再赘述。而被攻击的区块链网络都会存在异常的区块链节点,异常的区块链节点上通常存储有与正确的区块链不同的错误区块链。
目前亟需一种能够检测出区块链网络中区块链节点是否存在异常的方法,方便针对这些存在异常的区块链节点进行进一步的检测或者采取矫正措施,方便帮助识别区块链网络是否被攻击,使得攻击的影响不会扩大。
为了解决上述技术问题,本说明书提供了一种异常区块链节点检测方法。其中异常区块链节点可以是存储有与正确的区块链不同的错误区块链的区块链节点。
针对上述区块链网络被攻击的情况,由于区块链中,相邻区块之间存在密码学上的关联,具体体现在前一区块整体的哈希值会记录在后一区块的区块头中,形成链式结构。
因此,如果异常区块链节点将错误的区块添加到正确的区块链中,则在错误区块后续的区块中记录的前一区块的哈希值与正确的区块链完全不同,进一步导致后续的区块也与正确的区块链存在差异,从而逐渐形成2条完全不同的区块链。
换言之,异常区块链节点上通常存储有与正确区块链完全不同的错误区块链,因此,正常区块链节点上存储的区块与异常区块链节点存储的区块之间存在差异,相似度较低,可以利用异常区块链节点的这一特征,检测出区块链网络中的异常区块链节点。
需要说明的是,针对区块链网络,由于各种原因,通常难以确定区块链网络中的全部区块链节点。例如,计算能力的限制、存储能力的限制、通信能力的限制等等。仅根据区块链网络中部分区块链节点,显然难以直接确定出正确的区块链。此外,针对部分共识机制,例如工作量证明,区块链中通常存在多个分支,并需要在一段时间后确定最长的分支为正确的区块链,也难以直接确定出正确的区块链。
因此,在获取到多个区块链节点上区块链相关的信息后,难以直接确定出正确的区块链。例如,所获取的区块链节点信息并不是全部区块链网络中的区块链节点,并不能直接将占比最大的区块链作为正确的区块链;或者,每个区块链节点上存在多个区块链分支,暂时无法确定正确的区块链。
为了能够确定出异常区块链节点,在本说明书实施例提供的方法中,可以基于不同区块链节点之间的区块链数据相似度进行分析。
需要说明的是,尽管难以直接确定出正确的区块链,但是正常的区块链节点与异常的区块链节点之间的区块链数据差异较大,区块链数据的相似度较低。
此外,通常情况下,异常区块链节点在区块链网络中的占比较小,正常区块链节点的占比较大,因此,在所获取的区块链网络中的部分区块链节点中,通常也存在这一情况。具体可以是,异常区块链节点在所获取的区块链节点中的占比较小,正常区块链节点在所获取的区块链节点中的占比较大。
因此,可以借助异常区块链节点与正常区块链节点之间区块链数据相似度较低,且在所获取的区块链节点中占比较小的特点,确定出异常区块链节点。
在该方法中,可以通过图结构表现区块链节点之间区块链数据的相似度。
具体可以通过针对所获取的区块链节点构建图结构,各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度。
图结构中的图节点具有原始特征,可以用于表征对应的区块链节点的相关信息。
图结构中的边的权重,可以用于表征区块链节点之间区块链数据相似度。
针对图结构,可以通过图神经网络,将图结构中图节点的原始特征和边的权重融合,映射得到图节点的映射特征,使得映射特征可以反映区块链数据相似度。
具体地,可以将图结构中各个图节点的原始特征和每条边的权重输入图神经网络,图神经网络可以针对每个图节点,综合该图节点的邻居节点特征以及对应边的权重,得到该图节点的映射特征。
对于互为邻居节点的两个图节点,连接这两个图节点的边的权重越大,表明相应两个区块链节点的区块链数据相似度越高,并且会使得邻居节点的特征在得到映射特征的过程中影响越大,所得到的两个映射特征也就越相似。
而如果连接这两个图节点的边的权重越小,表明相应两个区块链节点的区块链数据相似度越低,并且会使得邻居节点的特征在得到映射特征的过程中影响越小,所得到的两个映射特征的差异就越大。
因此,对于区块链数据相似度较高的区块链节点,通过构建图结构和图神经网络映射,可以得到相似的映射特征,离散程度较低,分布较为紧密。
而对于区块链数据相似度较低的区块链节点,通过构建图结构和图神经网络映射,可以得到差异较大的映射特征,离散程度较高,分布较为稀疏。
由于正常的区块链节点与异常的区块链节点之间的区块链数据相似度较低,因此,通过构建图结构和图神经网络映射,可以针对区块链数据相似度较低的正常区块链节点和异常区块链节点,使得正常区块链节点的映射特征和异常区块链节点的映射特征差异较大,从而可以彼此区分。
因为异常区块链节点在所获取的区块链节点中通常占比较小,正常区块链节点在所获取的区块链节点中的通常占比较大,所以,正常区块链节点的映射特征数量占比较多且分布紧密,可以看作是一个群体。
相对而言,异常区块链节点的映射特征与正常区块链节点的映射特征差异较大,距离正常区块链节点的映射特征所聚集的群体较远,并且由于异常区块链节点占比较小,映射特征较少且分布稀疏,因此,异常区块链节点的映射特征在全部映射特征中具有离群的特征。
因此,针对所得到的全部映射特征,可以通过用于检测离群数据的异常检测算法进行检测,确定出离群的映射特征,将离群的映射特征确定为异常映射特征,之后可以将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
在通过映射特征确定出异常区块链节点后,由于所确定的异常区块链节点是根据区块链数据相似度分析确定的,并不能直接确定异常区块链节点是被攻击方攻击而出现异常的,因此,可以进行进一步的检测,确定异常区块链节点是否是被攻击方攻击而出现异常,方便帮助确定异常区块链节点所在的区块链网络是否被攻击。
本方法并不限定具体的异常检测算法,作为一种示例,可选地,可以针对映射特征进行聚类,将区块链数据相似度较高的不同区块链节点对应的映射特征聚合为一个类别。
由于正常的区块链节点与异常的区块链节点之间的区块链数据差异较大,区块链数据的相似度较低,各自对应的映射特征通常难以聚集到一个类别中。并且,正常的若干区块链节点之间区块链数据的相似度通常较高,受到同一攻击方攻击的不同异常区块链节点之间的区块链数据相似度通常也较高。
因此,通常可以将正常的若干区块链节点对应的映射特征聚合,将受到同一攻击方攻击的不同异常区块链节点对应的映射特征聚合,从而可以得到聚类结果中的至少2个类别。
在部分情况下,例如区块链网络未被攻击,聚类结果中可以只包含一个类别。在部分情况下,正常的区块链节点可能聚合成多类。例如,正确的区块链存在多个分支。在部分情况下,异常的区块链节点也可以聚合成多类,例如区块链网络遭受不同攻击方攻击的情况下,存在受到不同攻击方攻击的异常区块链节点。
针对聚类结果,基于异常区块链节点在所获取的区块链节点中占比较小的特点,可以根据类别中包含的映射特征数量确定出异常类别。
具体地,可以确定聚类结果中的映射特征数量占比小于预设占比或者包含映射特征数量少于预设阈值的类别为异常类别,并将所确定的异常类别中的映射特征所对应的区块链节点确定为异常区块链节点,方便针对异常区块链节点进行进一步的检测。
当然,针对映射特征还可以进行其他方式的异常检测,并不限定聚类这一种方式。具体的解释可以参见后文方法流程。
通过上述方法,可以利用图结构直观地表示从区块链网络中所获取的区块链节点之间区块链数据的相似度,从图结构整体考虑,基于图神经网络将区块链数据相似度融入图节点的映射特征,使得对于区块链数据相似度较低的区块链节点,可以得到差异较大的映射特征,从而可以使得异常区块链节点对应映射特征和正常区块链节点对应映射特征差异较大,方便针对映射特征,利用异常检测算法确定出异常映射特征,进而可以全面快速地确定出异常区块链节点,方便帮助识别异常区块链节点所在区块链网络是否被攻击。
下面进一步结合附图,解释本说明书所提供的一种异常区块链节点检测方法。
由于本方法流程中存在图结构,而区块链节点与图结构中的节点容易混淆,为了便于区分,将图结构中的节点称为图节点。
如图1所示,为本说明书提供的一种异常区块链节点检测方法的流程示意图。该方法可以应用于检测设备。检测设备可以是用于检测区块链网络中的异常区块链节点的设备。
该方法可以至少包括以下步骤。
S101:针对区块链网络中至少2个区块链节点构建图结构。
其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度。
可选地,两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度。
S102:将图结构对应的原始表示输入图神经网络进行映射处理,得到图结构对应的映射表示。
可选地,原始表示可以包括每个图节点的原始特征以及每个边的权重,映射表示可以包括每个图节点的映射特征。
S103:在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
上述方法流程,可以利用图结构直观地表示从区块链网络中所获取的区块链节点之间区块链数据的相似度,从图结构整体考虑,基于图神经网络将区块链数据相似度融入图节点的映射特征,使得对于区块链数据相似度较低的区块链节点,可以得到差异较大的映射特征,从而可以使得异常区块链节点对应映射特征和正常区块链节点对应映射特征差异较大,方便针对映射特征,利用异常检测算法确定出异常映射特征,进而可以全面快速地确定出异常区块链节点,方便帮助识别异常区块链节点所在区块链网络是否被攻击。
S101:针对区块链网络中至少2个区块链节点构建图结构。
其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度。
可选地,两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度。
在一种可选的实施例中,由于区块链本身是不断更新的,无法预估区块链网络何时受到攻击,篡改新的区块,从而可以经常执行本方法流程进行异常区块链节点检测。具体可以是周期性地检测,也可以是不定期地检测。
可以理解的是,本方法流程描述的是一次异常区块链节点检测的过程,而多次进行异常区块链节点检测的过程可以通过简单推理得到。
可选地,可以在预设时间计划包含的每个时间点执行S101-S103。
预设时间计划中可以包含周期性的时间点,例如,每天的上午5点和下午6点。也可以包含不定期的时间点,例如,某年某月某日的下午3点。本方法流程也并不限定具体的预设时间计划,其中可以包含一个或多个时间点。
在预设时间计划包含的每个时间点执行本方法流程,可以检测出异常的区块链节点。而当预设时间计划包含多个时间点时,具体可以是周期性或者不定期,持续进行异常节点检测,可以进一步提高区块链网络的安全性,方便检测出区块链网络是否被攻击。
可选地,在多次执行本方法流程时,可以在构建图结构时复用之前的图节点和边,只修改图节点的原始特征和边的权重,从而可以提高本方法流程的执行效率。
在一种可选的实施例中,构建图结构之前,需要先从区块链网络中确定至少2个区块链节点,再针对所确定的至少2个区块链节点构建图结构。
针对所确定的至少2个区块链节点,需要说明的是,所确定的至少2个区块链节点是属于同一区块链网络的,可以用于维护相同的区块链。
本方法流程并不限定具体确定区块链节点的方法。由于后续构建图结构,需要确定图节点的原始特征,并确定区块链节点之间区块链数据的相似度,因此,需要能够从所确定的区块链节点中获取信息。
可选地,从区块链网络中确定至少2个区块链节点,可以包括:针对需要进行异常区块链节点检测的区块链网络,确定其中能够获取信息的至少2个区块链节点。
可选地,从区块链网络中确定至少2个区块链节点,可以包括:针对需要进行异常区块链节点检测的区块链网络,向其中的区块链节点发送获取信息的请求,确定响应请求返回信息的至少2个区块链节点。
可选地,所确定的区块链节点数量越多,可以提高本方法流程的异常区块链节点检测的准确率。
可选地,需要从区块链节点获取的信息可以至少包括:区块链节点上的区块链相关数据、区块链节点针对区块链的操作记录、和区块链节点之间的区块链数据传输关系等等。具体的作用在后续进行解释。
显然,对于无法获取信息的区块链节点,或者拒绝响应信息获取请求的区块链节点,本方法流程无法针对这些区块链节点构建图结构,也就难以针对区块链网络全部的区块链节点进行异常区块链节点检测。
针对图结构的构建,本方法流程并不限定图结构的构建方法,只要各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度即可。
两个图节点之间的相似度可以是相应两个区块链节点的区块链上相同地址的数据之间的相似度。
下面提供一种可选的实施例作为示例性说明。
在一种可选的实施例中,针对区块链网络中至少2个区块链节点构建图结构,可以包括构建图节点、构建图节点之间的边、确定边的权重三个步骤。
本实施例并不限定这三个步骤的执行顺序,可以并行执行。例如,可以先构建图节点完成,再构建全部图节点之间存在的全部边,最后针对全部边分别确定权重;也可以在构建图节点的同时,针对已构建的图结构构建边,并在构建边的同时,针对已构建的边确定权重。
1)针对构建图节点。
可选地,可以针对区块链网络中至少2个区块链节点中的每个区块链节点,构建唯一对应的图节点。
可选地,在构建图节点之后,也可以确定图节点的原始特征。可以在构建图节点完成后,针对每个图节点确定原始特征,也可以在构建每个图节点时,实时确定该图节点的原始特征。
可选地,可以在S102之前,针对图结构中任一图节点,确定该图节点的原始特征即可。
本实施例并不限定原始特征的具体确定方法。
可选地,可以根据该图节点对应的区块链节点上区块链相关信息,确定图结构中该图节点的原始特征。
可选地,区块链节点上区块链相关信息可以包括:区块链节点针对区块链的操作记录,和/或区块链节点的区块链上的数据。
由于正常的区块链节点通常需要添加相同的区块,因此,区块链节点针对区块链的操作记录往往彼此相似,区块链上的数据也彼此相似,可以通过区块链相关信息确定图节点的原始特征,使得正常区块链节点之间的原始特征相似,方便后续通过图神经网络进行映射处理,通过正常区块链节点之间相似的原始特征,得到相似的映射特征。
其中的操作记录具体可以包括区块链节点的操作日志。
当然,由于区块链中区块的密码学关联,也可以只考虑新增的区块链相关信息,从而节约计算资源,方便快速确定原始特征。
可选地,区块链节点上区块链相关信息可以包括:在当前时刻之前第二预设时长内,区块链节点针对区块链新增的操作记录;和/或在当前时刻之前第二预设时长内,区块链节点的区块链上新增的数据。
本实施例并不限定第二预设时长的确定方法,第二预设时长可以预先指定,也可以在周期性执行本方法流程的情况下,设置第二预设时长为一个周期的时间长度,从而可以针对上次进行异常区块链节点检测之后新增的区块链相关信息,确定原始特征。
而基于区块链相关信息确定图节点的原始特征时,本方法流程并不限定具体的确定原始特征的方法。
由于图节点的原始特征通常以向量形式呈现,因此,可选地,可以采用预先训练的语言模型将区块链相关信息转换为特征向量。当然,也可以采用其他方式将区块链节点信息转换为特征向量。
2)构建图节点之间的边。
由于所构建的图结构用于从整体反应区块链节点之间的区块链数据相似度,而针对任意两个区块链节点,都可以对比区块链数据相似度,因此,本实施例并不限定图节点之间边的构建方法,只要使得每个图节点连接至少一个边即可。
可选地,可以针对每两个图节点构建边,构建全连接图,从而可以全面分析所获取的全部区块链节点之间的区块链数据相似度,提高异常区块链节点检测的准确率。
可选地,也可以为了节约计算资源和提高效率,指定若干组两个图节点构建边,并不构建全连接图。具体可以随机指定若干组两个图节点构建边,只要使得每个图节点连接至少一个边即可。
在一种可选的实施例中,由于对区块链网络的攻击,通常需要通过区块链数据传输实现,因此,可以根据实际的区块链节点之间的区块链数据传输关系,为相应两个图节点构建边。
可选地,可以从区块链节点中获取存在数据传输连接的其他区块链节点,基于所获取的数据传输连接关系,为相应两个图节点构建边。
通过针对数据传输连接关系构建边,可以方便针对存在数据传输连接关系的区块链节点,确定区块链数据相似度。
可选地,在所确定的区块链节点中,可能存在区块链节点无法获取数据传输连接关系,也可能存在区块链节点与其他所确定的区块链节点不存在数据传输连接关系的情况,从而无法为该区块链节点对应图节点连接边。因此,可以直接与其他至少一个图节点构建边。
3)确定边的权重。
由于正常区块链节点和异常区块链节点之间的差异主要体现在区块链数据的差异上,因此,可选地,可以将区块链数据的差异体现在边的权重上。
具体可以是利用2个区块链节点之间区块链数据的相似度,确定这2个区块链节点对应的2个图节点之间边的权重。其中,区块链数据的相似度可以与边的权重正相关。
可选地,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度。
因此,可选地,确定边的权重可以包括:确定该边所连接的两个图节点之间的相似度,进而根据所确定的相似度确定权重。
需要说明的是,区块链数据可以包括区块,也可以包括区块中的具体交易数据,而区块链上相同地址的数据,可以是相同高度的区块,也可以是相同区块中相同偏移量的交易数据。
在一种可选的实施例中,由于区块链通常是针对不同区块进行密码学上的关联,因此,通过区块确定区块链数据的相似度可以提高效率。
可选地,相应两个区块链节点的区块链上相同地址的数据,可以包括:相应两个区块链节点的区块链上相同高度的区块。
可选地,可以针对相应两个区块链节点的区块链上相同高度的全部区块确定相似度,也可以针对相应两个区块链节点的区块链上相同高度的部分区块确定相似度。
可选地,由于区块链中的区块之间存在密码学上的关联,如果部分区块的相似度较低,那么整体区块链中的区块相似度也较低,区块链后续新增的区块也一定不同,因此,可以针对区块链中的部分区块确定相似度,从而节约计算资源。
例如,攻击方在攻击区块链时,通常攻击篡改新增的区块,伪造出不同的区块添加到区块链中,因此可以只关注新增的部分区块,从而节约计算资源。
相对应地,相应两个区块链节点的区块链上相同地址的数据,可以包括:相应两个区块链节点的区块链上相同高度的区块;或者相应两个区块链节点的区块链上当前时刻之前第一预设时长内分别新增的区块中,相同高度的区块;或者相应两个区块链节点的区块链上预设高度范围的区块中,相同高度的区块。
本实施例并不限定第一预设时长的确定方法,第一预设时长可以预先指定,也可以在周期性执行本方法流程的情况下,设置第一预设时长为一个周期的时间长度,从而可以针对上次进行异常区块链节点检测之后新增的区块,确定相似度。
需要说明的是,由于本方法流程可能需要执行多次,而每次执行时都需要计算区块链数据的相似度,为了避免每次执行时计算相同区块的相似度,可以根据预设时间计划确定第一预设时长。可选地,第一预设时长可以是当前时间点与预设时间计划中上一时间点之间的时长。
而通过预设高度范围,针对相应两个区块链节点的区块链上预设高度范围的区块中,相同高度的区块确定区块链数据相似度,也可以节约计算资源。其中,预设高度范围可以包括区块链中最大高度减去第一预设高度,到最大高度之间的范围。
由于区块链中新增区块时,通常将区块添加在区块链的末尾,因此,通过限定预设高度范围可以方便地确定出新增的区块。当然,也可以随着本方法流程的多次执行,预设高度范围可以动态更新第一预设高度,避免重复计算相同区块的相似度。
而具体在确定区块链数据的相似度时,可选地,可以针对全部区块或者部分区块进行对比,因此,相应两个区块链节点的区块链上相同地址的数据,可以包括:相应两个区块链节点的区块链上相同高度的N个待比较区块;N≥1。
其中,待比较区块就是指定需要进行比对确定相似度的区块。
而两个图节点之间的相似度的确定方法,可以是确定相应两个区块链节点的区块链上相同高度且数据完全相同的待比较区块的数量M,0≤M≤N;根据M与N之间的比值,确定两个图节点之间的相似度。
针对相应两个区块链节点的区块链上相同高度的区块,可以直接获取这两个区块进行比对。
可选地,为了节约计算资源、通信资源和存储资源,避免传输完整的区块,可以直接获取区块的标识进行对比。
其中,区块的标识具体可以是整个区块的哈希值。一方面在区块链中天然保存有区块的哈希值,用于生成后一个区块,保证区块之间存在密码学上的关联,另一方面,即使2个区块存在微小的差异,所计算的不同区块哈希值差异也较大,利用这一特点可以直观准确地确定出区块是否相同。哈希值相同,则对应的区块也相同。
当然,区块的标识也可以是区块头中的信息,具体可以是区块头中存储的区块体的哈希值。
因此,两个图节点之间的相似度的确定方法,可以包括:分别获取相应两个区块链节点的区块链上每个待比较区块的哈希值;确定相应两个区块链节点的区块链上相同高度且哈希值相同的待比较区块数量M;0≤M≤N;根据M与N之间的比值,确定两个图节点之间的相似度。
可选地,根据M与N之间的比值,确定两个图节点之间的相似度,并不具体限定确定相似度的方法,具体可以直接将M与N之间的比值,确定为两个图节点之间的相似度,也可以针对M与N之间的比值进行归一化或者标准化,得到两个图节点之间的相似度。
在确定该边所连接的两个图节点之间的相似度之后,还需要根据所确定的相似度确定权重。
本方法流程并不限定具体确定权重的方法,只要边的权重正相关于该边所连接的两个图节点之间的相似度即可。
作为示例性说明,可以直接将所确定的相似度确定为边的权重,也可以在图结构中全部边确定相似度之后,针对每条边所对应的相似度进行归一化或者标准化,得到边的权重。
S102:将图结构对应的原始表示输入图神经网络进行映射处理,得到图结构对应的映射表示。
可选地,原始表示可以包括每个图节点的原始特征以及每个边的权重,映射表示可以包括每个图节点的映射特征。
其中,S101中构建图结构所得到的图节点的原始特征和每条边的权重,可以作为图结构对应的原始表示输入图神经网络。
本实施例并不限定具体的图神经网络算法,可选地,图神经网络具体可以采用GraphSage、GCN、GAT、CompGCN、或者GeniePath等不同算法。
针对图结构,可以通过图神经网络,将图结构中图节点的原始特征和边的权重融合,映射得到图节点的映射特征,使得映射特征可以反映区块链数据相似度。
具体地,可以将图结构中各个图节点的原始特征和每条边的权重输入图神经网络,图神经网络可以针对每个图节点,综合该图节点的邻居节点特征以及对应边的权重,得到该图节点的映射特征。
为了便于理解,下面给出一种具体的图神经网络实施例。
可选地,也可以利用图结构中图节点的原始特征和边的权重,循环执行以下步骤:针对图结构中的每个图节点,获取该图节点的当前特征,以及该图节点连接的其他图节点的当前特征加权求和,计算得到加权和作为图节点新的当前特征,权重分别是该图节点与其他图节点连接的边的权重。
可选地,也可以计算加权平均值作为图节点新的当前特征。
上述循环可以执行一次,也可以执行多次,直到满足预设循环停止要求。循环停止要求具体可以包括:循环次数达到预设循环次数,或者本次循环得到的映射特征与上次循环得到的映射特征差值小于预设差值。
对于互为邻居节点的两个图节点,连接这两个图节点的边的权重越大,表明相应两个区块链节点的区块链数据相似度越高,并且会使得邻居节点的特征在得到映射特征的过程中影响越大,所得到的两个映射特征也就越相似。
而如果连接这两个图节点的边的权重越小,表明相应两个区块链节点的区块链数据相似度越低,并且会使得邻居节点的特征在得到映射特征的过程中影响越小,所得到的两个映射特征的差异就越大。
因此,对于区块链数据相似度较高的区块链节点,通过构建图结构和图神经网络映射,可以得到相似的映射特征,离散程度较低,分布较为紧密。
而对于区块链数据相似度较低的区块链节点,通过构建图结构和图神经网络映射,可以得到差异较大的映射特征,离散程度较高,分布较为稀疏。
由于正常的区块链节点与异常的区块链节点之间的区块链数据相似度较低,因此,通过构建图结构和图神经网络映射,可以针对区块链数据相似度较低的正常区块链节点和异常区块链节点,使得正常区块链节点的映射特征和异常区块链节点的映射特征差异较大,从而可以彼此区分。
因为异常区块链节点在所获取的区块链节点中通常占比较小,正常区块链节点在所获取的区块链节点中的通常占比较大,所以,正常区块链节点的映射特征数量占比较多且分布紧密,可以看作是一个群体。
相对而言,异常区块链节点的映射特征与正常区块链节点的映射特征差异较大,距离正常区块链节点的映射特征所聚集的群体较远,并且由于异常区块链节点占比较小,映射特征较少且分布稀疏,因此,异常区块链节点的映射特征在全部映射特征中具有离群的特征。
因此,针对所得到的全部映射特征,可以通过用于检测离群数据的异常检测算法进行检测,确定出离群的映射特征,确定为异常映射特征,之后可以将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
为了便于理解,本说明书提供了一种具体的实施例。
如图2所示,为本说明书实施例提供的一种待检测图结构的示意图。其中,待检测图结构中可以包含5个图节点,分别是第一图节点(1,1)、第二图节点(1,2)、第三图节点(2,1)、第四图节点(3,1)和第五图节点(4,1)。
第一图节点与第二图节点相连,边上的权重为0.5;第一图节点与第四图节点相连,边上的权重为0.5。
第二图节点除了与第一图节点相连,还与第三图节点相连,边上的权重为0.2;第二图节点与第五图节点相连,边上的权重为0.3。
在基于待检测图结构确定图节点对应的特征向量时,可以计算各个图节点的加权和。具体可以包括:针对第一图节点,计算(1,1)+(1,2)*0.5+(3,1)*0.5=(3,2.5),得到新的特征(3,2.5)。
针对第二图节点,计算(1,2)+(1,1)*0.5+(2,1)*0.2+(4,1)*0.3=(3.1,3),得到新的特征(3.1,3)。
需要明确的是,由于上述确定特征的方法利用了边的权重计算加权结果(加权和或者加权平均值),显然,边的权重越大,对于图节点的特征的影响越大,则该边连接的2个图节点对应的特征越接近。
例如,图结构中存在2个互相连接的图节点(1,1)和(10,10),边上的权重为1。而图节点(1,1)额外连接一个图节点(1,2),但边上的权重为0.1。
在计算加权和作为新的特征的情况下,图节点(1,1)对应的新特征可以是(11.1,11.2),图节点(10,10)对应的新特征可以是(11,11),而图节点(1,2)对应的新特征可以是(1.1,2.1)。
显然,即使原本图结构中图节点(1,1)与图节点(1,2)接近,但在边的权重的影响下,图节点(1,1)和图节点(10,10)所对应的新特征接近。
S103:在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
由于映射特征中包含了区块链数据的相似度,使得正常区块链节点的映射特征和异常区块链节点的映射特征差异较大,从而可以彼此区分。
因此,可以针对所得到的全部映射特征,通过用于检测离群数据的异常检测算法进行检测,将离群的映射特征确定为异常映射特征,之后可以将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
本实施例并不限定具体的异常检测算法,作为示例性说明,可以采用聚类算法或者时序异常检测算法。
为了便于理解,本说明书提供以下三种实施例。
实施例一。
由于正常区块链节点中的区块链被攻击时,通常会新增错误的区块,并且错误区块之后的区块都与正确的区块链不同,使得区块链数据相似度降低较多,如果区块链数据相似度突然降低很多,则会使得在基于图结构多次得到该区块链节点的映射特征时,该区块链节点对应图节点所连接边的权重发生较大变化,从而使得所得到的映射特征变化较大。
因此,可以针对单个图节点当前的映射特征,采用时序异常检测算法进行检测。具体可以是利用历史上该图节点的映射特征变化情况,判断当前的映射特征是否出现较大的变化,进而判断是否为异常区块链节点。
可选地,在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,可以包括:针对图结构中每个图节点,基于该图节点的映射特征历史时序进行预测,得到该图节点对应的预测映射特征;在该图节点当前的映射特征与预测映射特征之间的差距大于预设阈值的情况下,将该图节点实际对应的映射特征确定为异常映射特征。
映射特征历史时序包括该图节点按时序排列的一个或多个历史映射特征。
在确定异常映射特征之后,可以将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
实施例二。
通常情况下,在区块链被攻击的初期,异常区块链节点在整个区块链网络中的占比较小,因此,在获取到区块链网络中的全部或部分区块链节点的情况下,异常区块链节点在所获取的区块链节点中的占比通常也较小。
可选地,可以针对上述图结构中各个图节点的映射特征进行聚类,并进一步针对聚类结果进行筛选,确定出其中远离大部分映射特征的类别,进而确定出异常的映射特征。
具体可以是针对图结构中各个图节点的映射特征进行聚类;将聚类结果中满足预设异常聚类条件的类别所包含的映射特征确定为异常的映射特征。
可选地,在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,可以包括:针对各个图节点的映射特征进行聚类;确定聚类结果中满足预设异常聚类条件的类别,并将所确定类别中包含的映射特征确定为异常映射特征。
其中,本实施例并不限定具体的预设异常聚类条件,只要能够表征离群特征即可。作为示例性说明,可选地,预设异常聚类条件可以包括:类别中包含的映射特征数量少于预设数量,或者类别中包含的映射特征的数量在全部图节点映射特征数量中的占比小于预设占比,或者类别中的中心映射特征与其他类别的中心映射特征之间的距离都大于预设距离。
在确定异常映射特征之后,可以将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
实施例三。
除了通过聚类可以确定出远离大部分映射特征的映射特征外,还可以通过划分的方法确定。
由于存在异常的映射特征通常分布稀疏且距离密度高的映射特征群体较远,通过递归地随机划分映射特征集合,直到一定划分次数或者直到所有的特征向量被单独划分到子集中,异常的映射特征由于分布稀疏且距离密度高的映射特征群体较远,符合离群特征,通常在较少次数的划分后就被单独划分到子集中。
因此,可以通过划分次数确定出异常的映射特征。
可选地,在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,包括:获取映射特征集合,映射特征集合中包括图结构中各个图节点的映射特征;针对映射特征集合执行划分步骤;映射特征集合对应划分次数为0。
划分步骤可以包括:针对当前的映射特征集合,随机确定当前的特征阈值;基于当前的特征阈值,将当前的映射特征集合划分为2个子集,并将当前的映射特征集合对应划分次数+1确定为所划分的2个子集分别对应的划分次数;针对划分得到的每个子集,在该子集对应划分次数大于或等于预设划分次数的情况下,停止继续划分;在该子集元素数量大于1且对应划分次数小于预设划分次数的情况下,将该子集作为当前的映射特征集合执行同一划分步骤;在该子集元素数量为1且对应划分次数小于预设划分次数的情况下,将该子集中包含的映射特征确定为异常映射特征。
其中,如果通过随机划分,在前几次划分中就被单独划分到一个子集中,则可以该子集中包含的映射特征分布稀疏且距离密度高的群体较远,符合离群特征,可以确定为异常的映射特征。
在确定异常映射特征之后,可以将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
此外,划分子集时,可以是确定出大于当前的向量阈值的特征向量为一个子集,并确定出小于等于当前的向量阈值的特征向量为另一个子集。但也存在划分的子集为空的情况,在该情况下,可以不针对空的子集进行操作。也就是在该子集元素数量等于0的情况下,停止操作。
在明确了如何进行异常检测后,可以采用异常检测算法确定出存在异常的映射特征,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
因此,本实施例可以通过图神经网络,针对图结构进行异常检测,从整体出发,确定出存在异常的图节点,一定程度上避免因为业务波动或者区块链本身的共识机制错误地判断被攻击。
在通过映射特征确定出异常区块链节点后,由于所确定的异常区块链节点是根据区块链数据相似度分析确定的,并不能直接确定异常区块链节点是被攻击方攻击而出现异常的,因此,可以进行进一步的检测或处理,确定异常区块链节点是否是被攻击方攻击而出现异常,方便帮助确定异常区块链节点所在的区块链网络是否被攻击。
具体可以是通过人工查阅异常区块链节点的操作日志以及连接情况,确定是否存在异常连接或者异常操作,确定是否被攻击以及攻击情况。
本方法流程可以利用图结构直观地表示从区块链网络中所获取的区块链节点之间区块链数据的相似度,从图结构整体考虑,基于图神经网络将区块链数据相似度融入图节点的映射特征,使得异常区块链节点对应映射特征和正常区块链节点对应映射特征差异较大,针对映射特征,可以利用异常检测算法确定出异常映射特征,进而可以全面快速地确定出异常区块链节点,方便帮助识别区块链网络是否被攻击。
除了上述的方法流程,本说明书还提供了对应的装置实施例。
如图3所示,为本说明书实施例提供的一种异常区块链节点检测装置的结构示意图。该装置包括以下单元。
构建单元301,用于针对区块链网络中至少2个区块链节点构建图结构。
其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度;
映射单元302,用于将图结构对应的原始表示输入图神经网络进行映射处理,得到图结构对应的映射表示;原始表示包括每个图节点的原始特征以及每个边的权重,映射表示包括每个图节点的映射特征。
异常确定单元303,用于在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
可选地,相应两个区块链节点的区块链上相同地址的数据,包括:相应两个区块链节点的区块链上相同高度的区块;或者相应两个区块链节点的区块链上当前时刻之前第一预设时长内分别新增的区块中,相同高度的区块;或者相应两个区块链节点的区块链上预设高度范围的区块中,相同高度的区块。
可选地,相应两个区块链节点的区块链上相同地址的数据,包括:相应两个区块链节点的区块链上相同高度的N个待比较区块;N≥1。
可选地,两个图节点之间的相似度的确定方法,包括:分别获取相应两个区块链节点的区块链上每个待比较区块的哈希值;确定相应两个区块链节点的区块链上相同高度且哈希值相同的待比较区块数量M;0≤M≤N;根据M与N之间的比值,确定两个图节点之间的相似度。
可选地,可以由构建单元301执行两个图节点之间的相似度的确定方法。构建单元301用于:分别获取相应两个区块链节点的区块链上每个待比较区块的哈希值;确定相应两个区块链节点的区块链上相同高度且哈希值相同的待比较区块数量M;0≤M≤N;根据M与N之间的比值,确定两个图节点之间的相似度。
可选地,构建单元301还用于:针对图结构中任一图节点,根据该图节点对应的区块链节点上区块链相关信息,确定图结构中该图节点的原始特征。
可选地,区块链节点上区块链相关信息包括:区块链节点针对区块链的操作记录;或者在当前时刻之前第二预设时长内,区块链节点针对区块链新增的操作记录;或者区块链节点的区块链上的数据;或者在当前时刻之前第二预设时长内,区块链节点的区块链上新增的数据。
可选地,异常确定单元303可以包括时序异常检测子单元303a,用于:针对图结构中每个图节点,基于该图节点的映射特征历史时序进行预测,得到该图节点对应的预测映射特征;在该图节点当前的映射特征与预测映射特征之间的差距大于预设阈值的情况下,将该图节点实际对应的映射特征确定为异常映射特征;映射特征历史时序包括该图节点按时序排列的一个或多个历史映射特征。
可选地,异常确定单元303可以包括聚类异常检测子单元303b,用于:针对各个图节点的映射特征进行聚类;确定聚类结果中满足预设异常聚类条件的类别,并将所确定类别中包含的映射特征确定为异常映射特征。
可选地,异常确定单元303可以包括划分异常检测子单元303c,用于:获取映射特征集合,映射特征集合中包括图结构中各个图节点的映射特征;针对映射特征集合执行划分步骤;映射特征集合对应划分次数为0。
划分步骤包括:针对当前的映射特征集合,随机确定当前的特征阈值;基于当前的特征阈值,将当前的映射特征集合划分为2个子集,并将当前的映射特征集合对应划分次数+1确定为所划分的2个子集分别对应的划分次数;针对划分得到的每个子集,在该子集对应划分次数大于或等于预设划分次数的情况下,停止继续划分;在该子集元素数量大于1且对应划分次数小于预设划分次数的情况下,将该子集作为当前的映射特征集合执行划分步骤;在该子集元素数量为1且对应划分次数小于预设划分次数的情况下,将该子集中包含的映射特征确定为异常映射特征。
上述装置实施例的其他解释可以参见上述方法流程,此处不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种异常区块链节点检测方法。
本说明书实施例还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现一种异常区块链节点检测方法。
图4示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种异常区块链节点检测方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。
Claims (11)
1.一种异常区块链节点检测方法,包括:
针对区块链网络中至少2个区块链节点构建图结构,其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,所述两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度;
将所述图结构对应的原始表示输入图神经网络进行映射处理,得到所述图结构对应的映射表示;所述原始表示包括每个图节点的原始特征以及每个边的权重,所述映射表示包括每个图节点的映射特征;
在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
2.根据权利要求1所述的方法,所述相应两个区块链节点的区块链上相同地址的数据,包括:
相应两个区块链节点的区块链上相同高度的区块;或者
相应两个区块链节点的区块链上当前时刻之前第一预设时长内分别新增的区块中,相同高度的区块;或者
相应两个区块链节点的区块链上预设高度范围的区块中,相同高度的区块。
3.根据权利要求1所述的方法,所述相应两个区块链节点的区块链上相同地址的数据,包括:相应两个区块链节点的区块链上相同高度的N个待比较区块;N≥1;
所述两个图节点之间的相似度的确定方法,包括:
分别获取相应两个区块链节点的区块链上每个待比较区块的哈希值;
确定相应两个区块链节点的区块链上相同高度且哈希值相同的待比较区块数量M;0≤M≤N;
根据M与N之间的比值,确定两个图节点之间的相似度。
4.根据权利要求1所述的方法,在将所述图结构对应的原始表示输入图神经网络进行映射处理之前,所述方法还包括:
针对所述图结构中任一图节点,根据该图节点对应的区块链节点上区块链相关信息,确定所述图结构中该图节点的原始特征。
5.根据权利要求4所述的方法,所述区块链节点上区块链相关信息包括:区块链节点针对区块链的操作记录;或者在当前时刻之前第二预设时长内,区块链节点针对区块链新增的操作记录;或者区块链节点的区块链上的数据;或者在当前时刻之前第二预设时长内,区块链节点的区块链上新增的数据。
6.根据权利要求1所述的方法,所述在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,包括:
针对所述图结构中每个图节点,基于该图节点的映射特征历史时序进行预测,得到该图节点对应的预测映射特征;在该图节点当前的映射特征与所述预测映射特征之间的差距大于预设阈值的情况下,将该图节点实际对应的映射特征确定为异常映射特征;所述映射特征历史时序包括该图节点按时序排列的一个或多个历史映射特征。
7.根据权利要求1所述的方法,所述在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,包括:
针对各个图节点的映射特征进行聚类;
确定聚类结果中满足预设异常聚类条件的类别,并将所确定类别中包含的映射特征确定为异常映射特征。
8.根据权利要求1所述的方法,所述在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,包括:
获取映射特征集合,所述映射特征集合中包括所述图结构中各个图节点的映射特征;
针对所述映射特征集合执行划分步骤;所述映射特征集合对应划分次数为0;
所述划分步骤包括:
针对当前的映射特征集合,随机确定当前的特征阈值;
基于当前的特征阈值,将当前的映射特征集合划分为2个子集,并将当前的映射特征集合对应划分次数+1确定为所划分的2个子集分别对应的划分次数;
针对划分得到的每个子集,在该子集对应划分次数大于或等于预设划分次数的情况下,停止继续划分;在该子集元素数量大于1且对应划分次数小于预设划分次数的情况下,将该子集作为当前的映射特征集合执行所述划分步骤;在该子集元素数量为1且对应划分次数小于预设划分次数的情况下,将该子集中包含的映射特征确定为异常映射特征。
9.一种异常区块链节点检测装置,包括:
构建单元,用于针对区块链网络中至少2个区块链节点构建图结构,其中各个图节点与各个区块链节点一一对应,每个图节点连接至少一个边,任一个边的权重正相关于该边所连接的两个图节点之间的相似度,所述两个图节点之间的相似度为相应两个区块链节点的区块链上相同地址的数据之间的相似度;
映射单元,用于将所述图结构对应的原始表示输入图神经网络进行映射处理,得到所述图结构对应的映射表示;所述原始表示包括每个图节点的原始特征以及每个边的权重,所述映射表示包括每个图节点的映射特征;
异常确定单元,用于在各个图节点的映射特征中应用异常检测算法,确定出异常映射特征,并且,将具有异常映射特征的图节点所对应的区块链节点,确定为异常的区块链节点。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至8中任一项所述的方法。
11.一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074156.9A CN114444074A (zh) | 2022-01-21 | 2022-01-21 | 一种异常区块链节点检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074156.9A CN114444074A (zh) | 2022-01-21 | 2022-01-21 | 一种异常区块链节点检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114444074A true CN114444074A (zh) | 2022-05-06 |
Family
ID=81369428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210074156.9A Pending CN114444074A (zh) | 2022-01-21 | 2022-01-21 | 一种异常区块链节点检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114444074A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708029A (zh) * | 2023-08-04 | 2023-09-05 | 烟台大学 | 一种区块链异常节点的检测方法、系统、设备和存储介质 |
CN116883027A (zh) * | 2023-09-06 | 2023-10-13 | 南通汉迪自动化设备有限公司 | 一种物料进出口通关联网监管系统 |
CN116913541A (zh) * | 2023-09-12 | 2023-10-20 | 万链指数(青岛)信息科技有限公司 | 基于物联网的健康数据共享方法及系统 |
-
2022
- 2022-01-21 CN CN202210074156.9A patent/CN114444074A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708029A (zh) * | 2023-08-04 | 2023-09-05 | 烟台大学 | 一种区块链异常节点的检测方法、系统、设备和存储介质 |
CN116708029B (zh) * | 2023-08-04 | 2023-10-20 | 烟台大学 | 一种区块链异常节点的检测方法、系统、设备和存储介质 |
CN116883027A (zh) * | 2023-09-06 | 2023-10-13 | 南通汉迪自动化设备有限公司 | 一种物料进出口通关联网监管系统 |
CN116883027B (zh) * | 2023-09-06 | 2023-12-19 | 南通汉迪自动化设备有限公司 | 一种物料进出口通关联网监管系统 |
CN116913541A (zh) * | 2023-09-12 | 2023-10-20 | 万链指数(青岛)信息科技有限公司 | 基于物联网的健康数据共享方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114444074A (zh) | 一种异常区块链节点检测方法及装置 | |
CN108564181B (zh) | 电力设备故障检测与维修方法及终端设备 | |
US20190386834A1 (en) | Blockchain management apparatus, blockchain management method, and program | |
JP2022514508A (ja) | 機械学習モデルの解説可能性ベースの調節 | |
US20200184393A1 (en) | Method and apparatus for determining risk management decision-making critical values | |
JP2019523952A (ja) | ストリーミングデータ分散処理方法及び装置 | |
CN109992473B (zh) | 应用系统的监控方法、装置、设备及存储介质 | |
CN106789837B (zh) | 网络异常行为检测方法及检测装置 | |
CN111325417A (zh) | 实现隐私保护的多方协同更新业务预测模型的方法及装置 | |
CN111143165A (zh) | 一种监控方法及装置 | |
CN111698303A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112700131B (zh) | 基于人工智能的ab测试方法、装置、计算机设备及介质 | |
US20150326446A1 (en) | Automatic alert generation | |
JP2020071845A (ja) | 異常検知装置、異常検知方法および異常検知プログラム | |
KR20220115357A (ko) | 어텐션 메커니즘 기반의 미래 수요 예측 데이터 생성방법 및 장치 | |
CN116739618A (zh) | 基于区块链的变形码溯源系统以及数据处理方法 | |
CN114237852A (zh) | 一种任务调度方法、装置、服务器及存储介质 | |
CN108920326A (zh) | 确定系统耗时异常的方法、装置及电子设备 | |
WO2023154538A1 (en) | System and method for reducing system performance degradation due to excess traffic | |
CN116384921A (zh) | 运维事件的执行方法、装置、存储介质以及电子设备 | |
CN114661499A (zh) | 故障的预测方法及装置 | |
US20230169168A1 (en) | Detect anomalous container deployment at a container orchestration service | |
CN114281474A (zh) | 一种资源调节方法及装置 | |
AU2021218217A1 (en) | Systems and methods for preventative monitoring using AI learning of outcomes and responses from previous experience. | |
CN113158497A (zh) | 在线服务实验方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |