1.本发明涉及区块链领域和知识图谱领域,尤其涉及数字货币交易分析,适用于发现数字货币地址间潜在的交易关系。
背景技术:2.知识图谱的概念于2012年由google公司提出,伴随着互联网技术及应用模式的迅速发展,具有较强语义表达能力及推理能力的知识图谱受到了科研工作者及大型企业的广泛关注,并且已经成功的应用在搜索引擎,智能问答等领域。区块链技术是以数字货币为代表的数字加密货币体系的核心支撑技术。随着数字货币近年来的快速发展与普及,区块链技术的研究与应用也呈现出快速增长的态势,被认为是最有可能触发下一代产业革命的颠覆式创新技术之一。
3.当前对区块链匿名追踪的方法主要是以地址聚类为基础,对交易流进行分析,通常需要建立相应的交易网络模型,如petri网络模型、二部图、地址属性图等。但随着区块链混币技术的出现尤其是coin join技术的出现及其不断发展,使得地址聚类中待聚类的地址空间中存在一些无法标注的空地址和中继地址,极大地加剧了区块链匿名交易可追踪监管的难度。虽然针对不同的混币方法有相应的混币检测方案,但其效率太低并且每当出现一种新的混币方式都需要对该方法进行改进。
4.而知识图谱是典型的交叉领域,是知识表示学习、机器学习、自然语言处理、信息获取等多个领域相关技术的系统性综合运用。知识图谱的构建包括知识获取、实体识别、关系抽取、属性补全、概念抽取等步骤。同时知识图谱也是不断快速发展的新领域,并在不断地与图神经网络、联邦学习、机器视觉等领域不断融合、更新与进步。由于知识图谱能够描述客观世界,抽象万物之间的逻辑关系,因此在自然语言与词义表达方面具有较强的推理能力。
技术实现要素:5.针对现有技术的缺陷,本发明提出一种基于知识图谱的区块链匿名追踪方法,采用知识图谱的构建、推理与更新方法能够满足区块链交易数据不断更新、混币技术不断发展的应用场景,相较于传统的区块链匿名追踪方法可以显著减少时间与空间开销,提高区块链匿名追踪的效率。首先根据已知的可疑地址账户按照交易价值进行筛选,得到交易发生时间及相应地址账户范围,并根据交易的流向及价值对区块链进行切片分析;然后通过对切片分析得到的图谱进行依存句法树分析提取出图谱中隐含的逻辑规则,由于以往的表示通常要求在嵌入训练期间,所有节点都存在于训练图中,不能自然地推广到图中看不见的节点,而区块链网络是不断更新的,不能简单地使用不变图进行分析, graph sage算法使用节点的特征信息为训练时看不见的节点生成特征表示,因此本发明在提取出逻辑规则后使用graph sage算法进行嵌入式学习得到各个节点在低维空间的向量表示以供逻辑推理分析任务使用。由关系评估函数对节点的向量表示进行评估从而推理得到节点间潜在的
逻辑关系。由于发现网络中重要结点的传统研究都强调节点自身的属性影响(如度、介数等),却忽视了由节点近邻凝聚出的影响力,这理应成为非常重要的影响因子,而ksn算法(the k-shell and neighborhood centrality)认为节点的影响力不仅由节点自身的k-shell属性决定,还由其二阶以内邻居节点的k-shell 属性决定,因此本发明采用k-shell算法来评估节点在区块链网络中的影响力或重要程度。最后使用可视化工具将节点的重要程度或影响力表示出来以观察节点间的潜在关系及影响范围,最后推测出地址账户间的隐藏关系,从而发现实体间的关系。
6.为实现上述目的,本发明具体技术方案如下:一种基于知识图谱的区块链匿名追踪方法:包括如下步骤:
7.1、对区块链切片文件进行解析,得到相应的交易信息,如金额,地址账户,时间戳等。
8.2、根据可疑事件发生的时间及金额,对可疑事件的发生时间及涉及的金额大小对应的区块链切片文件进行筛选得到相应的地址账户范围。将地址账户间隐藏的规则定义为r
x
,依存句法树规则库中的规则集合定义为r={r1,
…
,rn},通过将规则r
x
与规则库中的规则进行匹配的得到对应的逻辑关系。
9.3、由上述步骤2得到的逻辑关系及对应的地址账户采用graph sage算法进行嵌入式学习生成节点间的向量化特征表示从而进行知识推理工作。
10.4、对步骤1解析得到的区块链数据进行启发式实体识别,得到每个账户地址对应的区块链实体,按序号依次进行标识。
11.5、使用机器学习对节点间的关系进行训练从而对可疑地址分析推理得到实体间潜在的关系。
12.6、由ksn算法以更加全面的网络拓扑特征来度量节点的重要程度。
13.7、将节点的重要程度使用gephi算法上进行不同程度的染色实现交易追踪的可视化。
14.进一步地,上述步骤1中,区块链解析包括如下步骤:
15.步骤1.1通过相应区块链的钱包下载交易数据。
16.步骤1.2对区块数据进行结构化解析区块数据信息,将解析到的数字货币数据的关键字段进行提取并存储到key-value数据库中。
17.进一步地,上述步骤2中,区块链可疑事件的筛选包括如下步骤:
18.步骤2.1首先将可疑地址或账户记为a={a1,
…
,an},其中ai表示第i个地址或账户;地址或账户的交易价值记为m={m1,
…
,mn},mi表示在切片起止条件间αi交易的价值大小。
19.步骤2.2将依存句法规则库中的规则集合定义为r={r1,
…
,rn},图谱中隐藏的规则记为r
x
,通过将规则r
x
与规则库中的规则进行匹配得到对应的逻辑关系。
20.进一步地,上述步骤3中,graph sage算法的嵌入式学习包括如下步骤:
21.步骤3.1从解析好的区块链数据库中读取相应数据(如时间戳、地址或账户关系等)。
22.步骤3.2将读取出的数据按照一定的规则进行处理,首先将相应地址或账户的信息 (如时间戳,地址活跃程度,交易次数及是否为恶意地址类型等)进行处理使之转化为维
度相同的低维向量。
23.步骤3.3将区块链网络中的地址账户按照逻辑关系表示成邻接矩阵a,其中每个地址账户对应唯一id,每个id都对应着该地址账户的初始特征表示向量。
24.步骤3.4将步骤3.3产生的表示地址账户逻辑关系的邻接矩阵a以及各个地址账户的初始向量化表示(也称节点特征)作为graph sage算法的输入。这里将每个地址账户视为图结构中的一个节点。通过graph sage算法的不断迭代执行最终生成了每个节点的向量表示。
25.进一步地,步骤3.4中graph sage的执行可划分为以下步骤
26.步骤3.4.1首先对每个节点统一采样一个固定大小的邻域集,在每个迭代k处抽取不同的均匀样本。
27.步骤3.4.2其次对于每个节点(v为节点集合),在其直接邻域中聚合节点的表示转化为一个向量k=0时的向量表示被定义为输入节点特征。该步骤可表示为:
[0028][0029]
其中表示聚合领域的特征表示,u表示节点v的邻居,n(v)表示由邻居组成的节点邻域,表示当前邻居节点特征,经过聚合函数后生成邻域的当前特征表示
[0030]
步骤3.4.3在聚合完相邻的特征向量后,graph sage将节点的当前表示与聚合邻域向量相连接,这个连接向量通过非线性激活函数σ的全连接层馈送,转化为算法的下一次迭代中被使用的参数,表示该步骤可表示为:
[0031][0032]
其中表示在下一步迭代中的输入特征表示,wk表示第k层的权重矩阵,σ表示激活函数sigmoid。
[0033]
步骤3.4.4在graph sage经过k次迭代后,对特征表示进行归一化最终生成每个节点经k次迭代后的特征表示
[0034]
graph sage算法的具体流程如图2所示。
[0035]
进一步地,上述步骤4中,对区块链实体的识别过程包括如下步骤:
[0036]
步骤4.1对所有区块链地址账户按照交易类型进行启发式实体识别。
[0037]
进一步地步骤4.1中启发式实体识别可划分为如下步骤:
[0038]
步骤4.1.1将所有交易集合定义为t,t={t1,t2,t3,
…
,tm},m表示交易总数。
[0039]
步骤4.1.2对于每一笔交易将其定义为一个五元组t=(i,o,vi,vo,f),i表示输入地址账户集合,i={i1,i2,i3,
…
,in},n为输入地址账户数量;o={o1,o2,o3,
…
,ok},其中o表示输出地址账户集合,,k为输出地址账户数量;vi表示所有的地址账户输入价值总和, vo表示所有的地址账户输出价值总和,f表示交易费用,其中vi,vo,f集合的计算如公式3,4,5所示:
[0040][0041][0042][0043]
其中表示单个输入地址账户is的输入价值,表示单个输入地址账户os的输出价值。
[0044]
步骤4.2按照区块链的不同交易类型对实体进行识别,从而将不同的地址账户聚类到不同的实体。
[0045]
进一步地,上述步骤5中,对节点间向量表示关系的评估包括如下步骤:
[0046]
步骤5.1每个节点与其特征表示一一对应,从网络中抽取相应的关系及实体,并存留30%的测试集。
[0047]
步骤5.2使用dismult作为打分函数,打分函数的定义如下所示:
[0048][0049]
其中es和eo是使用graph sage学习到的节点特征表示,rr是关系r对应的对角矩阵,s,r,o分别为头实体节点、关系以及尾实体节点的特征向量表示。
[0050]
步骤5.3使用负采样来训练机器学习模型,对每个正样本采样ω个负样本(将s或 o替换为其他实体),通过优化交叉熵损失函数使模型给正样本的打分高于负样本,具体定义如下所示:
[0051][0052]
其中为损失loss,t是正样本和负样本集合,l是sigmoid函数,y=1表示正样本, y=0表示负样本。
[0053]
步骤5.4将训练好的模型用于可疑地址的检测,以判断是否存在潜在的关系。
[0054]
步骤5节点评估的具体流程如图3所示。
[0055]
进一步地,上述步骤6中,对节点重要程度的评估包括如下步骤:
[0056]
步骤6.1将区块链网络视为无向图,并对每个节点o生成二阶以内邻居节点集合,即从节点v出发2步以内可到达的邻居节点集合,记该集合为τ(v)。
[0057]
步骤6.2节点v的k-shell值记为ks(v),k-shell值通过递归地剥除网络边缘节点所有度为k的节点来解释网络的层次特征,位于核心的节点具有较高的影响力。
[0058]
进一步地步骤6.2对节点k-shell值地计算可划分为如下步骤:
[0059]
步骤6.2.1首先去除网络中度为k=1的节点,若剩余网络中还存在k=1的节点,则继续去除这些节点。
[0060]
步骤6.2.2将所有被删除的度k=1的节点的k-shell值记为ks=1.
[0061]
步骤6.2.3依次令k=2,3,4,
…
,即完成了网络的k-shell分解。
[0062]
步骤6.3节点v的ksn(the k-shell and neighborhood centrality)值定义如下:
[0063][0064]
节点本身距离网络核心越近,则节点的ksn值越大,则其重要性越高。ksn算法的具
体流程如图4所示。
[0065]
进一步地,上述步骤7中,对节点重要程度的可视化过程包括如下步骤:
[0066]
步骤7.1将节点的ksn值归一化,具体定义如下:
[0067][0068]
其中ksn(v)表示计算前当前节点ksn值,v表示当前节点,v表示节点集合,k(v) 表示归一化后节点的ksn值。
[0069]
步骤7.2将归一化的值转化为具体模型色彩上的颜色深度,具体定义如下:
[0070]
c(v)=k(v)*α*m
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0071]
其中α为超参数,用于将数值均匀地映射到rgb上,m为具体模型中色彩的表示范围,c(v)表示每个节点的色彩深度。
[0072]
步骤7.3将步骤5生成的潜在节点关系加入步骤3.3创建的邻接矩阵中,从而形成新的区块链网络,由于加入的关系数有限,并不会影响网络的处理。
[0073]
步骤7.4将区块链中的边权重设为1,id与每个地址账户相对应,边的类型为有向边。
[0074]
步骤7.5将步骤7.4产生的数据格式化为gephi接收的数据文件格式,其中source 表示边的开始节点编号。target表示边的目标节点编号。type表示有向图还是无向图。 weight为边的权重。
[0075]
步骤7.6将格式化的数据导入gephi生成可视化关系图。
[0076]
步骤7.7将步骤6.2中产生的节点色彩深度输入gephi得到节点的色彩表示。从而实现节点的重要性及交易追踪的可视化。
[0077]
上述方法可内置于电子设备,所述电子设备为控制设备或存储设备,控制设备内设置有上述一种基于知识图谱的区块链匿名追踪方法,存储设备内存储一种基于知识图谱的区块链匿名追踪方法的程序代码。
[0078]
本发明的有益效果:
[0079]
1、节省区块链数据日益增多导致节点特征向量频繁计算的资源开销
[0080]
2、可根据区块链节点的不同关系推断出可疑目标节点的关系
[0081]
3、将交易追踪的可视化通过区块链节点关系及影响力程度展现出来
[0082]
4、提出了一种可用于解决区块链匿名不可追踪的通用方案
[0083]
5、利用节点的拓扑结构挖掘节点的交易特征,具有普适性。
附图说明
[0084]
图1区块链匿名追踪流程图
[0085]
图2 graph sage运行流程图
[0086]
图3关系评估流程图
[0087]
图4 ksn算法流程图
具体实施方式
[0088]
下面结合附图对本发明作进一步说明。
[0089]
如图1所示,下面对本发明做进一步的说明,需要说明的是,本实例的具体实施是以本技术为前提,给出了详尽的实施过程和实施步骤,但是本发明的保护范围并不受限于本实施实例。
[0090]
假设已知恶意事件发生的时间t,则根据本发明具体的实施方式如下
[0091]
(1)步骤1使用区块链解析工具对区块链切片文件进行解析,得到相应的交易信息,如时间戳、地址账户名、金额等。
[0092]
(2)根据可疑事件发生的时间及金额,对可疑事件的发生时间及涉及的金额大小对应的区块链切片文件进行筛选得到相应的地址账户范围。将地址账户间隐藏的规则定义为r
x
,依存句法树规则库中的规则集合定义为r={r1,
…
,rn},通过将规则与规则库中的规则进行匹配的得到地址账户间对应的逻辑关系。
[0093]
(3)根据步骤(2)中得到的逻辑关系及涉及的地址账户范围对节点(地址账户) 进行嵌入式学习,根据公式
[0094]
i(v)=graphsage(v)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0095]
计算节点v的特征表示i(v)。
[0096]
(4),首先将所有交易集合定义为t,t={t1,t2,t3,
…
,tm},m表示交易总数。对于每一笔交易将其定义为一个五元组t=(i,o,vi,vo,f),i表示输入地址账户集合, i={i1,i2,i3,
…
,in},n为输入地址账户数量;o={o1,o2,o3,
…
,ok},其中o表示输出地址账户集合,,k为输出地址账户数量;vi表示所有的地址账户输入价值总和,vo表示所有的地址账户输出价值总和,f表示交易费用。
[0097]
然后按照交易类型对实体进行识别:
[0098]
本发明将数字货币交易类型分为三大类:coinbase产币交易、多输入输出交易、找零交易。
[0099]
a)对coinbase产币交易进行分析
[0100]
产币交易中无输入地址账户,在矿池模式出现之前为用户自行挖矿模式,此时产币交易的输出地址账户显然属于同一实体;在矿池模式出现后,挖矿奖励会首先奖励给矿主的私有地址账户之后再将奖励按照算例进行分配,因此矿池模式的输出地址账户也可以视为同一实体。对于产币交易的地址账户有如下定义:对于若vi=0,则属于同一实体。
[0101]
b)对多输入输出交易进行分析
[0102]
除了产币交易之外,数字货币交易中多输入输出交易占了绝大部分,在多输入输出交易中,一笔交易有多个输入和输出,在数字货币系统中用户想要花费某一地址账户上的余额必须拥有该地址所对应的私钥,而一般用户都会对自己拥有的私钥妥善保存,因此通常将对多输入输出交易的输入地址账户都视为由同一实体控制。因此对多输入输出交易的地址账户有如下定义:
[0103]
对于若该交易有多个输入(2个或2个以上的输入)地址账户,则将视为同一实体拥有的地址账户。
[0104]
c)对找零交易进行分析
[0105]
一般而言,在进行数字货币交易时总会出现某一地址账户中的金额并不恰好等于所要支付的金额,此时找零交易应运而生,在这种交易下用户将找零的钱转到自己拥有的地址账户中,否则按照数字货币的交易机制,多余的钱将被视为交易手续费发放给矿工。因此对于找零交易而言,如果交易t是找零交易,则满足以下条件之一:
[0106]
①
该交易一定不是产币交易。
[0107]
②
该交易只有两个输出地址。
[0108]
③
找零地址os∈o在交易t之前从未出现过。
[0109]
④
如果找零交易有多个输入,则该交易很有可能经过了混币服务。
[0110]
识别找零地址的步骤如下:
[0111]
首先输入交易集合t={t1,t2,t3,
…
,tm},对于交易集合中的ts,读取其交易输入输出地址账户数目,分别记为vi,vo,交易金额记为fi,按照上述条件进行判断,若满足其中任意一个则将地址账户记录到找零地址账户集合c中。有了上述数据后对找零交易的地址账户有如下定义:
[0112]
对于若该交易满足找零交易的条件,则交易的输入输出地址账户vi,vo属于同一实体。
[0113]
(5)使用机器学习对特征表示之间的关系进行训练并将训练集的30%用于验证,从正样本中随机抽取样本并将s或o替换为其他实体,通过优化交叉熵损失函数使模型给正样本的打分高于负样本,从而达到训练模型的目的。将建立好的关系检测模型用于可疑地址的检测,以判断地址间是否存在潜在的交易关系。原始数据集、验证集、训练集的关系如公式所示
[0114][0115]
其中d表示原始数据集,s表示训练集,t表示测试集。
[0116]
(6)根据步骤6.1,将区块链网络视为无向图,并对每个节点构造二阶以内的邻居节点集合,记为τ(v),即从节点v出发2步内可到达的邻居节点集合。节点v的k-shell 值记为ks(v)。k-shell值通过递归地剥除网络边缘节点所有度为1的节点来解释网络的层次特征,位于核心的节点具有较高的影响力。
[0117]
步骤6.2:
[0118]
a).去除网络边缘中度为1的节点,若剩余网络中还存在度为1的节点,则继续操作直到网络边缘不存在度为1的节点.
[0119]
b).将所有被去除的度为1节点的k-shell值记为ks(v)=1。
[0120]
c).以此去除度为2,3,4,
…
,的节点,即完成了区块链网络的k-shell分解.
[0121]
d).计算节点的ksn值,如公式所示:
[0122][0123]
节点本身距离网络核心越近,则节点的ksn值越大,其重要性越高。
[0124]
(7)将步骤6中产生的节点ksn值归一化,具体定义如下:
[0125]
[0126]
其中ksn(v)表示计算前当前节点ksn值,v表示当前节点,v表示节点集合,k(v) 表示归一化后节点的ksn值。
[0127]
将归一化的值转化为具体模型色彩上的颜色深度,具体定义如下:
[0128]
c(v)=k(v)*α*m
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0129]
其中α为超参数,用于将数值均匀地映射到rgb上,m为具体模型中色彩的表示范围,c(v)表示每个节点的色彩深度。随后将步骤4生成的潜在节点关系加入步骤3.3 创建的邻接矩阵中,从而形成新的区块链网络,由于加入的关系数有限,并不会影响网络的处理。由于本发明构建的区块链网络中并未考虑边的权重因此将区块链中的边权重设为1,id与每个地址账户相对应,边的类型为有向边,并将步骤7.4产生的数据格式化为gephi接收的数据文件格式,其中source表示边的开始节点编号。target表示边的目标节点编号。type表示有向图还是无向图。weight为边的权重。在处理完数据后将格式化的数据导入gephi生成可视化关系图。最后将步骤6.2中产生的节点色彩深度输入 gephi得到节点的色彩表示。从而实现节点的重要性及交易追踪的可视化。
[0130]
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技术所创的等效方式或变更均应包含在本发明的保护范围之内。
技术特征:1.一种基于知识图谱的区块链匿名追踪方法,其特征在于,包括如下:s1、对区块链切片文件进行解析,得到相应的交易信息,如金额,地址账户,时间戳;s2、根据可疑事件发生的时间及金额,对可疑事件的发生时间及涉及的金额大小对应的区块链切片文件进行筛选得到相应的地址账户范围,将可疑地址或账户记为a={a1,
…
,a
n
},其中a
i
表示第i个地址或账户;地址或账户的交易价值记为m={m1,
…
,m
n
},m
i
表示在切片起止条件间α
i
交易的价值大小;将地址账户间隐藏的规则定义为r
x
,依存句法树规则库中的规则集合定义为r={r1,
…
,r
n
},通过将规则r
x
与规则库中的规则进行匹配的得到对应的逻辑关系;s3、根据上述步骤s2得到的逻辑关系及地址账户采用graph sage算法进行嵌入式学习;s4、对步骤s1解析得到的区块链数据进行启发式实体识别,得到每个账户地址对应的区块链实体,按序号依次进行标识;s5、使用机器学习对节点间的关系进行训练从而对可疑地址分析推理得到实体间潜在的关系;s6、利用ksn算法以更加全面的网络拓扑特征来评估节点重要程度。2.根据权利要求1所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s1中,区块链解析包括如下:s1.1通过区块链的钱包下载交易数据;s1.2对区块数据进行结构化解析区块数据信息,将解析到的比特币数据的关键字段进行提取并存储到key-value数据库中。3.根据权利要求1所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s3中,graph sage算法进行嵌入式学习包括如下:s3.1从解析好的区块链数据库中读取相应数据,如时间戳、地址或账户关系;s3.2将读取出的数据转化为低维向量,其中每个地址的向量维度相同,对相应的地址或账户进行初始化,使之变为固定维度的低维向量;s3.3将区块链网络中的地址账户按照逻辑关系表示成邻接矩阵a,其中每个地址账户对应唯一id,每个id都对应着该地址账户的初始特征表示向量;s3.4将s3.3产生的表示地址账户逻辑关系的邻接矩阵a以及各个地址账户的初始向量化表示(也称节点特征)作为graph sage算法的输入,这里将每个地址账户视为图结构中的一个节点,通过graph sage算法的不断迭代执行最终生成了每个节点的向量表示。4.根据权利要求3所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s3.4中,graph sage算法的执行包括:步骤3.4.1首先对每个节点统一采样一个固定大小的邻域集,在每个迭代k处抽取不同的均匀样本;步骤3.4.2其次每个节点在其直接邻域中聚合节点的表示转化为一个向量时的向量表示被定义为输入节点特征,表示为:其中表示聚合领域的特征表示,u表示节点v的邻居,n(v)表示由邻居组成的节点
邻域,表示当前邻居节点特征,经过聚合函数后生成邻域的当前特征表示步骤3.4.3在聚合完相邻的特征向量后,graph sage将节点的当前表示与聚合邻域向量相连接,这个连接向量通过非线性激活函数σ的全连接层馈送,转化为下一步骤使用的参数,表示为表示为:其中表示在下一步迭代中的输入特征表示,w
k
表示第k层的权重矩阵,σ表示激活函数一般为sigmoid;步骤3.4.4在graph sage经过k次迭代后,对特征表示进行归一化最终生成每个节点的特征表示5.根据权利要求1所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s4中,对区块链实体的识别过程包括如下:步骤4.1对所有区块链地址账户按照交易类型进行启发式实体识别,具体如下:步骤4.1.1将所有交易集合定义为t,t={t1,t2,t3,
…
,t
m
},m表示交易总数;步骤4.1.2对于每一笔交易将其定义为一个五元组t=(i,o,v
i
,v
o
,f),i表示输入地址账户集合,i={i1,i2,i3,
…
,i
n
},n为输入地址账户数量;o={o1,o2,o3,
…
,o
k
},其中o表示输出地址账户集合,,k为输出地址账户数量;v
i
表示所有的地址账户输入价值总和,v
o
表示所有的地址账户输出价值总和,f表示交易费用,其中v
i
,v
o
,f集合的计算如公式3,4,5所示:,f集合的计算如公式3,4,5所示:,f集合的计算如公式3,4,5所示:其中表示单个输入地址账户i
s
的输入价值,表示单个输入地址账户o
s
的输出价值;步骤4.2按照区块链的不同交易类型对实体进行识别,从而将不同的地址账户聚类到不同的实体。6.根据权利要求1所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s5中,对节点向量表示关系的评估包括如下步骤:s5.1每个节点与其特征一一对应表示,从网络中抽取相应的关系及实体,并存留30%的测试集;s5.2使用dismult作为打分函数,函数的定义如下所示:其中e
s
和e
o
是使用graph sage学习到的节点特征表示,r
r
是关系r对应的对角矩阵;s5.3使用负采样训练机器学习模型,对每个正样本采样ω个负样本,即将s或o替换为其他实体,通过优化交叉熵损失函数使模型给正样本的打分高于负样本,具体定义如下所示:
其中是t正样本和负样本集合,l是sigmoid函数,y=1表示正样本,y=0表示负样本;步骤5.4将训练好的模型用于可疑地址的检测,以判断是否存在潜在的关系。7.根据权利要求1所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s6中,对节点重要程度的评估包括如下步骤:s6.1将区块链网络视为无向图,并对每个节点生成二阶以内邻居节点集合,即从节点v出发2步以内可到达的邻居节点集合,记该集合为τ(v);s6.2节点v的k-shell值记为ks(v),k-shell值通过递归地剥除网络边缘节点所有度为k的节点来解释网络的层次特征,位于核心的节点具有较高的影响力;s6.3节点v的ksn(the k-shell and neighborhood centrality)值定义如下:节点本身距离网络核心越近,则节点的ksn值越大,则其重要性越高。8.根据权利要求7所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,所述s6.2对节点k-shell值地计算如下:s6.2.1首先去除网络中度为k=1的节点,若剩余网络中还存在k=1的节点,则继续去除这些节点;s6.2.2将所有被删除的度k=1的节点的k-shell值记为ks=1;s6.2.3依次令k=2,3,4,
…
,即完成了网络的k-shell分解。9.根据权利要求1-8任一项所述的一种基于知识图谱的区块链匿名追踪方法,其特征在于,还包括s7、将节点的重要程度使用gephi算法,进行不同程度的染色实现交易追踪的可视化;具体如下:步骤7.1将节点的ksn值归一化,具体定义如下:其中ksn(v)表示计算前当前节点ksn值,v表示当前节点,v表示节点集合,k(v)表示归一化后节点的ksn值;步骤7.2将归一化的值转化为具体模型色彩上的颜色深度,具体定义如下:c(v)=k(v)*α*m
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)其中α为超参数,用于将数值均匀地映射到rgb上,m为具体模型中色彩的表示范围,c(v)表示每个节点的色彩深度;步骤7.3将生成的潜在节点关系加入邻接矩阵中,从而形成新的区块链网络;步骤7.4将区块链中的边权重设为1,id与每个地址账户相对应,边的类型为有向边;步骤7.5将步骤7.4产生的数据格式化为gephi接收的数据文件格式,其中source表示边的开始节点编号,target表示边的目标节点编号,type表示有向图还是无向图,weight为边的权重;步骤7.6将格式化的数据导入gephi生成可视化关系图;
步骤7.7将步骤6.2中产生的节点色彩深度输入gephi得到节点的色彩表示,从而实现节点的重要性及交易追踪的可视化。10.一种电子设备,其特征在于,所述电子设备为控制设备或存储设备,所述控制设备内设置有权利要求1-8任一项所述的一种基于知识图谱的区块链匿名追踪方法,所述存储设备内存储权利要求1-8任一项所述的一种基于知识图谱的区块链匿名追踪方法的程序代码。
技术总结本发明公开了一种基于知识图谱的区块链匿名追踪方法及电子设备,首先根据已知可疑地址账户按照交易价值进行筛选,得到交易发生时间及相应地址账户范围,并根据交易的流向及价值对区块链进行切片分析;然后通过对切片分析后得到的图谱进行依存句法树分析提取出图谱中隐含的逻辑规则,其次使用GraphSAGE算法学习得到各个节点在低维空间的向量表示以供逻辑推理分析任务使用。紧接着由关系评估函数对节点的向量表示进行评估从而推理得到节点间潜在的逻辑关系并采用K-shell算法评估节点在区块链网络中的重要程度,最后使用可视化工具将节点的重要程度或影响力表示出来以观察节点间的关系及影响范围,推测出地址账户间的隐藏关系,从而发现实体间的关系。从而发现实体间的关系。从而发现实体间的关系。
技术研发人员:李致远 何恩寒 徐丙磊 毕俊蕾 吴越
受保护的技术使用者:江苏大学
技术研发日:2022.05.27
技术公布日:2022/11/1