发明内容
本发明的目的在于提供一种新型的基于邻居信息聚合的以太坊地址聚类方法及装置,其可以追踪地址节点和其他地址节点之间的关联性,从而更准确的识别区块链交易中地址节点之间的相互关系和来源。
为了达到上述目的,本发明提供一种基于邻居信息聚合的以太坊地址聚类方法,包括:
基于以太坊中的历史交易数据构建地址目标图和地址交易图;
基于交易图中的邻居节点信息建立强关联地址节点模式图和交易所地址模式图,进行地址节点邻居信息聚合;
建立子图同构CSP模型,聚类得到强关联地址节点集和交易所地址集。
本发明还提供一种运行如上述的基于邻居信息聚合的以太坊地址聚类方法的装置,包括:
交易数据获取模块,用于获取区块链的交易数据;
特征选取模块,用于将获取的交易数据进行特征提取,建立强关联地址节点模式图和交易所地址模式图;
信息聚合模块,根据强关联地址节点模式图和交易所地址模式图进行地址信息聚合;
子图同构CSP模型,利用子图同构匹配算法进行求解,聚类得到具有强关联性的以太坊交易地址节点集和交易所地址节点集。
作为本发明的另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于邻居信息聚合的以太坊地址聚类方法的步骤。
作为本发明另一方面的延伸还提供一种计算机终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于邻居信息聚合的以太坊地址聚类方法的步骤。
与相关技术相比较,本发明的基于邻居信息聚合的以太坊地址聚类方法通过构建强关联地址交易模式图和交易所地址交易模式图,对地址节点进行邻居信息聚合,建立子图同构模型,利用子图同构算法求解,可以准确地识别出区块链交易地址中的强关联地址和交易所地址,保证了个人在进行区块链进行交易时的资产和数据安全。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种基于邻居信息聚合的以太坊地址聚类方法,包括:
步骤一、以区块链中的历史交易数据构建地址目标图和地址交易图。
图的定义G=<V,E,L>,将一个以太坊地址定义为有向图中的一个节点V,同时,有向图中的每条边E都代表了两个地址节点间的至少一笔交易;L=<lv,le>是一个标签集,lv是节点的顶点标签集,le是边的边标签集,在以太坊历史交易数据地址交易图中,lv代表地址节点类型,比如是否是交易所地址。le代表的是一组边的权重,E中每条边的权重都是沿着这条边转移的以太币的总量加权。
子图同构的定义:给定目标图G
t=<V
t,E
t,L
t>和模式图G
p=<V
p,E
p,L
p>,以及映射
若存在单射函数f:V
p→V
t满足:
1)
存在f(u)∈V
t,使得<u,f(u)>∈R,且l
v(u)=l
v(f(u));
3)
存在(f(u),f(v))∈E
t,且l
e(u,v)=l
e(f(u),f(v));
那么称G
t的子图sub(G
t)与G
p是子图同构关系,记作
CSP的定义:约束满足问题定义为三元组<X,D,C>,其中:
X={x1,x2,…,xn}为包含n个变量的有限集合;
D={D(x1),D(x2),…,D(xn)}为n个变量的值域;
C={c
1,c
2,…,c
m}为约束集合,约束c
i的变量范围var(c
i)={x
i1,x
i2,…,x
ij},且对应的值域
其中x
il∈X(l=1,2,…,j),D
il为变量x
il的值域,称c
i为定义在变量集{x
i1,x
i2,…,x
ij}上的j元约束。
模式图节点匹配顺序优化:
其中:freq(G,L(u))表示在目标图G中所有与模式图节点u标签一致的节点总数量,deg(u)表示节点u的度。
步骤二、基于交易图中的邻居节点信息建立强关联地址节点模式图和交易所地址模式图,进行地址节点邻居信息聚合。
建立强关联地址节点模式图包括:
S1:以太坊中地址节点A是公开地址;
S2:给公开地址节点A发送交易的地址节点有多个;
S3:地址节点A只给一个地址节点B发送交易;
S4:作为地址节点A交易接收方的地址节点B只给一个地址节点C发送交易;
S5:地址节点C给多个地址节点发送交易;
当目标交易图中有依次满足S1到S5特征的子图,说明地址币点A、B、C是强关联的。
建立交易所地址模式图包括:
S1’:以太坊中地址节点A是交易所地址;
S2’:给地址节点A发送交易的地址节点有多个;
S3’:地址节点A只给一个地址节点B发送交易;
S4’:地址节点B只给地址节点A发送交易;
当目标交易图中有满足上述S1’到S4’特征的子图,说明地址节点B是交易所冷钱包。
地址节点邻居信息聚合包括:
利用图卷积神经网络技术进行特征表示学习,得出包含节点局部邻域信息的特征向量;邻居信息聚合使只有自身属性特征的节点带有局部邻域信息,并以向量的形式表示出来。
在已构建的比特币交易模式图Gp和目标图Gt中,利用模式图和目标图的结构属性特征,分别构建比特币交易模式图Gp和目标图Gt的特征矩阵,并根据下式进行节点信息的传播和汇聚:
其中,N(i)为节点i的所有邻居节点集合,deg(i)为节点i的度,θ是权重矩阵即机器学习中要更新的参数矩阵,
为节点i第k次迭代的特征向量。
步骤三、建立子图同构CSP模型,聚类得到强关联地址节点集和交易所地址集。
建立子图同构CSP模型包括:
通过已构建的比特币交易模式图Gp=<Vp,Ep,Lp>和目标图Gt=<Vt,Et,Lt>,根据子图同构定义,将比特币交易模式图中节点集作为该子图同构模型中的变量集X,目标图中的节点集作为该子图同构模型中各个变量的值域Di,可得子图同构模型P=<X,D,C>,具体如下:
变量集:X=Vp;
约束集C={c1,c2,c3,c4,c5,c6}。
约束集C={c1,c2,c3,c4,c5,c6}中C1表示边约束,C2表示节点标签约束,C3表示边标签约束,C4表示Alldiff约束,C5表示聚合权值约束,C6表示NDC约束;
节点标签约束c
2:
若x
i=d
i,d
i∈D(x
i),则l
v(x
i)=l
v(d
i);
边标签约束c
3:
若x
i=d
i,x
j=d
j,d
i∈D(x
i),
聚合权值约束c
5:
若x
i=d
i,d
i∈D(x
i),则Weight(x
i)≤Weight(d
i);
NDC约束c6:
若x
i=d
i,x
j=d
j,则S(x
i,x
j)≤S(d
i,d
j)且(x
i,d
i)∈N(x
i)×N(d
i),其中N(x
i)是模式图节点x
i的邻居节点,
表示在模式图中节点x
i到节点x
j步长为k的路径数,
表示在目标图中节点d
i到d
j步长为k的路径数。
聚类得到强关联地址节点集和交易所地址集包括:
利用子图同构匹配算法进行求解。子图同构匹配算法主要分为3个步骤:第1步为各个变量初始值域,根据度约束和节点标签约束对值域进行预处理;第2步为邻居信息聚合,利用图卷积神经网络对节点进行信息聚合;第3步为求解匹配顺序,为后续优化变量匹配顺序做准备;第4步为约束求解,对于不满足约束条件的解进行回溯。
算法伪代码如下:
步0:节点的度Ri(Vp,Vt),节点的标签属性attr(Lp,Lt)→D(xv),步1;
步1:N(Gp,Gt)→计算权重W(G′p,G′t),步2;
步2:Rank(Gp,Gt)→优化匹配顺序S,步3;
步3:选择xv∈S,步4,否则,步10;
步4:选择val(vt)∈D(xv),步5,否则,返回步3;
步5:如果满足子图同构模型中的权值约束c5和NDC邻域约束c6,步6,否则,返回步4;
步6:如果满足边约束c1和边标签约束c3,从Vp中移去xv,步7,否则,返回步4;
步7:从D(xv)中移去vv,更新变量的值,步8;
步10:返回解集,结束;
通过该算法可以找出以太坊地址交易目标图集中和模式图匹配的交易子图和地址节点,从而聚类得到具有强关联性的以太坊交易地址节点集和交易所地址节点集。
本发明的基于邻居信息聚合的以太坊地址聚类方法通过构建强关联地址交易模式图和交易所地址交易模式图,对地址节点进行邻居信息聚合,建立子图同构模型,利用子图同构算法求解,可以准确地识别出区块链交易地址中的强关联地址和交易所地址,保证了个人在进行区块链进行交易时的资产和数据安全。
请参阅图2,本发明还提供一种运行如上述的基于邻居信息聚合的以太坊地址聚类方法的装置,包括:
交易数据获取模块10,用于获取区块链的交易数据;所述交互模块10包括:注册单元101,用于在以太坊中进行注册,获取公私钥对;获取单元102,用于根据公私钥对向以太坊网络发布交易数据获取请求,由以太坊网络确定是否为恶意请求或者正确请求。
特征选取模块20,用于将获取的交易数据进行特征提取,建立强关联地址节点模式图和交易所地址模式图;所述特征选取模块包括特征提取单元201,用于根据预设的提取特征对交易数据的节点信息进行特征提取,以获取符合特征条件的节点;特征判断单元202,用于对经过特征提取的节点信息进行判断从而划分出强关联地址节点模式图和交易所地址模式图。
信息聚合模块30,根据强关联地址节点模式图和交易所地址模式图进行地址信息聚合;所述信息聚合模块包括图卷积神经网络单元301和信息聚合单元302,图卷积神经网络单元301进行特征表示学习,得出包含节点局部邻域信息的特征向量,信息聚合单元302用于根据公式
来进行节点信息的传播和汇聚。
子图同构CSP模型40,利用子图同构匹配算法进行求解,聚类得到具有强关联性的以太坊交易地址节点集和交易所地址节点集。
本发明另一方面还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于邻居信息聚合的以太坊地址聚类方法的步骤。
作为本发明另一方面的延伸还提供一种计算机终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于邻居信息聚合的以太坊地址聚类方法的步骤。
所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在终端设备中的执行过程。
所述计算机终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。可包括但不仅限于,处理器、存储器。可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可以是内部存储单元,例如硬盘或内存。所述存储器也可以是外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器还可以既包括内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。