本发明涉及区块链,尤其涉及一种基于图大模型的区块链系统高中心性智能合约识别方法。
背景技术:
1、区块链技术作为一种去中心化的分布式账本技术,近年来在金融、供应链、物联网等多个领域得到广泛应用。智能合约作为区块链系统的核心组成部分,其可靠性和安全性直接影响整个系统的稳定性和可信度。然而,随着区块链系统规模的不断扩大,系统中的智能合约的数量越来越庞大,智能合约之间的调用关系日益复杂,传统的区块链测试方法仅考虑智能合约的静态特征,难以在动态变化的复杂场景下快速、准确地识别区块链系统中的高中心性智能合约。
技术实现思路
1、本发明提供一种基于图大模型的区块链系统高中心性智能合约识别方法,用以解决现有技术中传统的区块链测试方法仅考虑智能合约的静态特征,难以在动态变化的复杂场景下快速、准确地识别区块链系统中的高中心性智能合约的缺陷。
2、本发明提供一种基于图大模型的区块链系统高中心性智能合约识别方法,包括:
3、以区块链系统中的各智能合约为节点,以所述各智能合约间的实时调用关系为边,构建智能合约调用图,确定所述智能合约调用图的邻接矩阵;
4、对每一节点的源代码进行解释,得到所述每一节点的代码解释文本,对所述每一节点的代码解释文本进行向量化处理,得到所述每一节点的代码语义特征向量,对所述每一节点的原始描述文本进行向量化处理,得到所述每一节点的原始描述特征向量;
5、将所述代码语义特征向量和所述原始描述特征向量进行融合,得到所述每一节点的第一融合特征向量;
6、将所述每一节点的第一融合特征向量和所述智能合约调用图的邻接矩阵输入至预先构建的图注意力网络,得到所述图注意力网络输出的所述每一节点的嵌入向量,所述图注意力网络是基于样本智能合约调用图的样本节点的样本融合特征向量和样本邻接矩阵,以及所述样本节点的嵌入向量标签进行训练得到的;
7、基于所述每一节点的嵌入向量和所述邻接矩阵,对所述每一节点进行评估,识别高中心性智能合约。
8、在一些实施例中,所述对每一节点的源代码进行解释,得到所述每一节点的代码解释文本,包括:
9、获取所述每一节点的源代码;
10、对所述每一节点的源代码进行预处理,得到所述每一节点的代码;
11、将所述每一节点的代码输入至预先训练的gpt-4模型,得到所述gpt-4模型输出的所述每一节点的代码解释文本;
12、其中,所述gpt-4模型是基于样本智能合约调用图的样本节点的样本代码,以及所述样本节点的代码解释文本标签进行训练得到的。
13、在一些实施例中,所述对所述每一节点的代码解释文本进行向量化处理,得到所述每一节点的代码语义特征向量,对所述每一节点的原始描述文本进行向量化处理,得到所述每一节点的原始描述特征向量,包括:
14、获取所述每一节点的原始描述文本;
15、将所述每一节点的代码解释文本输入至预先训练的sentencebert模型,得到所述sentencebert模型输出的所述每一节点的代码语义特征向量;
16、将所述每一节点的原始描述文本输入至所述sentencebert模型,得到所述sentencebert模型输出的所述每一节点的原始描述特征向量;
17、其中,所述sentencebert模型是基于样本智能合约调用图的样本节点的样本代码解释文本和样本原始描述文本,以及所述样本节点的代码语义特征向量标签和原始描述特征向量标签进行训练得到的。
18、在一些实施例中,所述基于所述每一节点的嵌入向量和所述邻接矩阵,对所述每一节点进行评估,识别高中心性智能合约,包括:
19、基于所述邻接矩阵,确定所述每一节点的度中心性、介数中心性和特征向量中心性;
20、根据所述每一节点的嵌入向量和所述每一节点的度中心性、介数中心性和特征向量中心性,对所述每一节点的中心性进行评分,确定所述每一节点的得分;
21、对所述每一节点的得分进行排序,得到排序结果,根据所述排序结果,从所述各智能合约中筛选出多个高中心性智能合约。
22、在一些实施例中,所述以区块链系统中的各智能合约为节点,以所述各智能合约间的实时调用关系为边,构建智能合约调用图包括:
23、以区块链系统中的各智能合约为节点,以所述各智能合约间的实时调用关系为边,构建智能合约调用文本属性图;
24、其中,所述智能合约调用文本属性图包括每一节点的文本属性信息,所述文本属性信息包括源代码和原始描述文本。
25、在一些实施例中,所述确定所述智能合约调用图的邻接矩阵,包括:
26、基于所述各智能合约间的实时调用频率,确定每一边的权重;
27、根据所述每一边和所述每一边的权重,确定所述智能合约调用图的邻接矩阵。
28、在一些实施例中,所述图注意力网络包括特征自适应融合层、多头注意力层和输出层;
29、对应地,所述将所述每一节点的第一融合特征向量和所述智能合约调用图的邻接矩阵输入至预先构建的图注意力网络,得到所述图注意力网络输出的所述每一节点的嵌入向量,包括:
30、将所述每一节点的第一融合特征向量和所述智能合约调用图的邻接矩阵输入至所述特征自适应融合层,得到所述特征自适应融合层输出的所述每一节点的第二融合特征向量;
31、将所述每一节点的第二融合特征向量输入至所述多头注意力层,得到所述多头注意力层输出的所述每一节点的注意力特征向量;
32、将所述每一节点的注意力特征向量输入至所述输出层,得到所述输出层输出的所述每一节点的嵌入向量。
33、在一些实施例中,所述图注意力网络的训练过程包括:
34、以样本区块链系统中的各样本智能合约为样本节点,以所述各样本智能合约间的样本调用关系为样本边,构建样本智能合约调用图,确定所述样本智能合约调用图的样本邻接矩阵;
35、对每一样本节点的样本源代码进行解释,得到所述每一样本节点的样本代码解释文本,对所述每一样本节点的样本代码解释文本进行向量化处理,得到所述每一样本节点的样本代码语义特征向量,对所述每一样本节点的样本原始描述文本进行向量化处理,得到所述每一样本节点的样本原始描述特征向量;
36、将所述样本代码语义特征向量和所述样本原始描述特征向量进行融合,得到所述每一样本节点的第一样本融合特征向量;
37、确定所述每一样本节点的嵌入向量标签;
38、以所述每一样本节点的第一样本融合特征向量和所述样本智能合约调用图的样本邻接矩阵为训练样本,以所述每一样本节点的嵌入向量标签为样本标签,训练初始图注意力网络,训练完成后,得到所述图注意力网络。
39、在一些实施例中,所述gpt-4模型的训练过程包括:
40、以样本区块链系统中的各样本智能合约为样本节点,以所述各样本智能合约间的样本调用关系为样本边,构建样本智能合约调用图;
41、获取每一样本节点的样本源代码;
42、对所述每一样本节点的样本源代码进行预处理,得到所述每一样本节点的样本代码;
43、确定所述每一样本节点的代码解释文本标签;
44、以所述每一样本节点的样本代码为训练样本,以所述每一样本节点的代码解释文本标签为样本标签,训练初始gpt-4模型,训练完成后,得到所述gpt-4模型。
45、在一些实施例中,所述sentencebert模型的训练过程包括:
46、以样本区块链系统中的各样本智能合约为样本节点,以所述各样本智能合约间的样本调用关系为样本边,构建样本智能合约调用图;
47、获取每一样本节点的样本源代码和所述每一样本节点的样本原始描述文本;
48、对每一样本节点的样本源代码进行解释,得到所述每一样本节点的样本代码解释文本;
49、确定所述每一样本节点的代码语义特征向量标签和所述每一样本节点的原始描述特征向量标签;
50、以所述每一样本节点的样本代码解释文本为训练样本,以所述每一样本节点的代码语义特征向量标签为样本标签,训练初始sentencebert模型,以所述每一样本节点的样本原始描述文本为训练样本,以所述每一样本节点的原始描述特征向量标签为样本标签,训练初始sentencebert模型,训练完成后,得到所述sentencebert模型。
51、本发明提供的基于图大模型的区块链系统高中心性智能合约识别方法,通过根据区块链系统中的各智能合约的实时调用关系,构建智能合约调用图,确定智能合约调用图的邻接矩阵,对每一节点的源代码进行解释,得到每一节点的代码解释文本,对每一节点的代码解释文本和原始描述文本进行向量化处理,得到每一节点的代码语义特征向量和原始描述特征向量,将两者进行融合,得到每一节点的第一融合特征向量,利用预先训练的图注意力网络将每一节点的第一融合特征向量和邻接矩阵融合,得到每一节点的嵌入向量,基于每一节点的嵌入向量和邻接矩阵,对每一节点进行评估,综合考虑智能合约的静态特征和动态调用关系,对高中心性智能合约进行识别,提高了高中心性智能合约识别的效率和准确性。