System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机学科中的信息安全,涉及一种智能合约的源代码分析、检测方法及系统,具体涉及一种精确的智能合约庞氏骗局源代码分析检测方法及系统。
技术介绍
1、智能合约是将协议条款直接写入代码的自动执行合同,是去中心化金融和web3的基础。然而,它们的广泛采用也促进了庞氏骗局的出现,庞氏骗局是一种欺诈性投资操作,使用新投资者的资金向早期投资者支付回报。这些骗局利用智能合约的透明度和自动化,承诺以最小的风险获得高回报,从而吸引新的投资者。这些新投资者的资金用于支付早期投资者,从而给人一种有利可图的错觉。随着新投资者涌入的减少,该骗局不可避免地崩溃,导致大多数参与者遭受重大经济损失。庞氏骗局侵蚀了人们对defi和web3生态系统的信任,造成严重的经济损失,并阻碍了更广泛的应用。因此,对于智能合约庞氏骗局的研究是十分有必要的。
技术实现思路
1、本专利技术旨在针对智能合约庞氏骗局分析和检测问题,提供一种准确且高效的解决方案。本专利技术重点关注智能合约的资金流,以及与庞氏骗局逻辑相关的代码,通过大语言模型的理解自然语言和程序代码的能力,对这些信息进行的深入理解和分析,实现了一种庞氏智能合约检测技术及其工具。
2、本专利技术的方法采用的技术方案是:一种基于大模型的智能合约庞氏骗局源代码检测方法,包括以下步骤:
3、步骤1:编译合约获取智能合约代码的抽象语法树;然后对抽象语法树进行解析,生成合约代码中间表示和包含合约结构化信息的合约;
4、步骤2:通过智能合
5、步骤3:将超结点中的顶点分为了三个层次:合约、函数、表达式;然后利用污点分析的结果,构建与污点变量传播相关函数结点子图,将其中函数结点对应的代码切片,使得切片代码包含了智能合约处理收入资金流的全部逻辑;
6、步骤4:利用大模型进行庞氏合约检测。
7、作为优选,步骤1中,所述智能合约代码的抽象语法树中的结点包含:结点名称,结点的孩子结点以及结点的成员变量。
8、作为优选,步骤1中,所述合约代码中间表示包含:智能合约各种组成部分的中间表示与合约源代码的映射,智能合约状态变量的中间表示,智能合约类型,智能合约中函数的中间表示。
9、作为优选,步骤2中,所述将智能合约建模为一个超结点,为一个有向无权图g,是图标签、顶点集合和边集合的三元组;超结点通过允许图的顶点集合中的结点为基本结点或超结点得到其递归定义;超结点的顶点集合由智能合约中所有函数超结点构成,边集合由智能合约中的函数调用关系确定;函数超结点的顶点集中均为基本结点,代表函数的局部变量和合约的状态变量;边集合则由函数中的表达式确定;
10、通过三种操作获取构建给定超结点需要的全部信息,包括:
11、第一种操作:graph(g)操作,获取图g的标签名称、顶点集合和边集合的三元组;
12、第二种操作:nodes(g)操作,获取图g的顶点集,其中顶点为基本结点或者超结点;
13、第三种操作:edge(g)操作,获取图g的边集,其中每条边的两个顶点为基本结点或超结点。
14、作为优选,步骤2中,所述对合约进行静态污点分析,是为智能合约超结点模型的子图构建过程,将发送给合约的以太币以及发送者地址作为污点源,并且将子图的顶点集初始化为污点变量集合;然后通过三种操作,获取获取所建模的智能合约超结点图中与污点变量相关的结点和边的集合;
15、所述三种操作,用于获取构建给定超结点需要的全部信息,包括:
16、第一种操作:graph(g)操作,获取图g的标签名称、顶点集合和边集合的三元组;
17、第二种操作:nodes(g)操作,获取图g的顶点集,其中顶点为基本结点或者超结点;
18、第三种操作:edge(g)操作,获取图g的边集,其中每条边的两个顶点为基本结点或超结点。
19、作为优选,步骤4中,首先将代码片段和污点传播图组织为提示词,让通过大模型输出对单个函数逻辑和合约整体逻辑的分析报告;然后将合约整体逻辑和庞氏骗局的定义组合为提示词,通过大模型输出检测结果。
20、本专利技术的系统采用的技术方案是:一种基于大模型的智能合约庞氏骗局源代码检测系统,包括:
21、一个或多个处理器;
22、存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的基于大模型的智能合约庞氏骗局源代码检测方法。
23、本专利技术的系统采用的技术方案是:一种基于大模型的智能合约庞氏骗局源代码检测产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行所述的基于大模型的智能合约庞氏骗局源代码检测方法。
24、本专利技术的有益效果主要体现在以下方面:
25、(1)本专利技术提出了一个由大语言模型驱动的检测庞氏智能合约的方法,通过上下文学习和思维链推理实现的两步零样本提示,无需额外的标记数据。
26、(2)本专利技术提出了一种新颖的两阶段零样本思维链提示方法,通过静态污点分析和自动代码切片增强大语言模型,以有效检测庞氏骗局、了解复杂的欺诈模式、跟踪污点数据,并专注于相关代码段,而无需进行大量再培训。
27、(3)本专利技术在各种环境中对ponzisleuth进行全面评估,包括与现有方法的广泛比较、真实世界的检测、开销评估。结果显示,它明显优于当前的方法,尤其是在检测未知的庞氏合约方面。
本文档来自技高网...【技术保护点】
1.一种基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤1中,所述智能合约代码的抽象语法树中的结点包含:结点名称,结点的孩子结点以及结点的成员变量。
3.根据权利要求1所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤1中,所述合约代码中间表示包含:智能合约各种组成部分的中间表示与合约源代码的映射,智能合约状态变量的中间表示,智能合约类型,智能合约中函数的中间表示。
4.根据权利要求1所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤2中,所述将智能合约建模为一个超结点,为一个有向无权图G,是图标签、顶点集合和边集合的三元组;超结点通过允许图的顶点集合中的结点为基本结点或超结点得到其递归定义;超结点的顶点集合由智能合约中所有函数超结点构成,边集合由智能合约中的函数调用关系确定;函数超结点的顶点集中均为基本结点,代表函数的局部变量和合约的状态变量;边集合则由函数中的表达式确定;
5.根据权利要求1
6.根据权利要求1-5任一项所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤4中,首先将代码片段和污点传播图组织为提示词,通过大模型输出对单个函数逻辑和合约整体逻辑的分析报告;然后将合约整体逻辑和庞氏骗局的定义组合为提示词,通过大模型输出检测结果。
7.一种基于大模型的智能合约庞氏骗局源代码检测系统,其特征在于,包括:
8.一种基于大模型的智能合约庞氏骗局源代码检测产品,包括计算机程序指令,其特征在于:当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1至6中任一项所述的基于大模型的智能合约庞氏骗局源代码检测方法。
...【技术特征摘要】
1.一种基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤1中,所述智能合约代码的抽象语法树中的结点包含:结点名称,结点的孩子结点以及结点的成员变量。
3.根据权利要求1所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤1中,所述合约代码中间表示包含:智能合约各种组成部分的中间表示与合约源代码的映射,智能合约状态变量的中间表示,智能合约类型,智能合约中函数的中间表示。
4.根据权利要求1所述的基于大模型的智能合约庞氏骗局源代码检测方法,其特征在于:步骤2中,所述将智能合约建模为一个超结点,为一个有向无权图g,是图标签、顶点集合和边集合的三元组;超结点通过允许图的顶点集合中的结点为基本结点或超结点得到其递归定义;超结点的顶点集合由智能合约中所有函数超结点构成,边集合由智能合约中的函数调用关系确定;函数超结点的顶点集中均为基本结点,代表函数的局部变量和合约的状态变量;边集合则由函...
【专利技术属性】
技术研发人员:陈晶,吴聪,王子为,熊翘楚,杜瑞颖,
申请(专利权)人:武汉大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。