恭喜河海大学张鹏程获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网恭喜河海大学申请的专利基于预训练模型的以太坊智能合约漏洞检测方法及系统获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN114817932B 。
龙图腾网通过国家知识产权局官网在2025-05-27发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202210444092.7,技术领域涉及:G06F21/57;该发明授权基于预训练模型的以太坊智能合约漏洞检测方法及系统是由张鹏程;王奔;楚涵婷;吉顺慧设计研发完成,并于2022-04-26向国家知识产权局提交的专利申请。
本基于预训练模型的以太坊智能合约漏洞检测方法及系统在说明书摘要公布了:本发明提出了一种基于预训练模型的以太坊智能合约漏洞检测方法及系统。本发明为了获取更有效的漏洞语义或语法信息,意在基于两种不同的代码表征形式,其一,通过分析智能合约程序的数据流和控制流等信息,采用程序切片技术,自动化地提取漏洞代码切片;其二,通过分析合约的AST,采用语法解析器编译智能合约,采用自定义遍历方式,自动化地获取AST结构化信息。同时,为了达到更好的检测效果,本发明使用预训练CodeBert模型融合两种信息,实现特征的融合,最终实现对当前以太坊智能合约环境下危害等级严重的漏洞的检测。本发明面向智能合约开发人员,实现了基于代码融合表征的以太坊智能合约自动化漏洞检测,达到合约安全保障的目的。
本发明授权基于预训练模型的以太坊智能合约漏洞检测方法及系统在权利要求书中公布了:1.一种基于预训练模型的以太坊智能合约漏洞检测方法,其特征在于,包括如下步骤:步骤1:收集智能合约数据集,根据漏洞合约的标准特征,提取智能合约中的目标函数片段,将智能合约的目标函数片段集合以及合约漏洞标签组成样本集;所述目标函数片段集合中包括一个或多个目标函数片段;步骤2:根据漏洞标准,找到智能合约目标函数片段集合中相关的变量或者语句,经过数据流和控制流分析后,获取智能合约程序切片信息集合;步骤3:调用语法解析器编译智能合约目标函数片段集合中各目标函数片段,并遍历生成的各目标函数片段的AST,获取智能合约AST结构化信息集合;步骤4:对智能合约程序切片信息集合和AST结构化信息集合进行规范化、分词和编码;步骤5:采用两个网络模型进行两种代码表征信息的训练,并采用预训练模型CodeBert拼接不同的代码表征,基于融合的特征实现智能合约漏洞的检测;步骤1中提取智能合约中目标函数片段的方法,包括如下步骤:步骤11:根据智能合约源代码中原始合约版本,调用相应的编译器Solc版本进行合约的编译;步骤12:对于Solc编译成功的合约,生成相应的合约抽象语法树文件;步骤13:利用Slither生成函数全局调用图,根据合约全局函数调用路径,获得全局的函数调用关系;步骤14:利用Slither生成单个函数内部的控制流图,获取函数内部变量的控制依赖关系和数据依赖关系;步骤15:根据步骤13和步骤14,拼接组成合约的全局控制流图,获取一个合约完整的控制流和数据流信息;步骤16:在步骤15全局控制流图的基础上,对于智能合约数据集,根据漏洞类型的标准和模式,分析变量关系,提取相应的函数片段;步骤2中获取智能合约程序切片信息集合的方法,包括如下步骤:步骤21:根据漏洞分类框架或者漏洞准则,对于智能合约目标函数片段集合中的一个或者多个目标函数,确定相关的变量集合或语句集合;步骤22:根据全局控制流图,进行变量或者语句的数据依赖分析,把所有相关数据依赖的变量或者语句全部提取出来,生成目标函数片段集合的候选数据依赖集;步骤23:根据全局控制流图,进行变量或者语句的控制依赖分析,把所有相关的控制依赖的变量或者语句全部提取出来,生成目标函数片段集合的候选控制依赖集;步骤24:按照原始合约中代码的顺序,合并所有候选数据依赖集和候选控制依赖集,生成智能合约程序切片信息集合;所述步骤3中获取智能合约AST结构化信息集合的方法,包括如下步骤:步骤31:使用语法解析器ANTLR编译目标函数片段集合中各目标函数片段,生成编译的AST片段集合;步骤32:采用深度优先遍历的方式,遍历编译的AST片段集合,生成AST结构化信息集合;所述步骤4包括如下步骤:步骤41:规范化漏洞信息:使用FUN{#}替换合约中的目标函数名称,其中#表示数字,根据目标函数的前后位置取值;去除停用词和标点符号;将单字符变量和常量替换为约定的固定字符串;拆分驼峰命名变量中的单词;步骤42:分词:将程序切片信息集合和AST结构化信息集合中所有文本进行分词,并生成dic词典和inv_dic词典,用word表示词典中的单词,idx表示单词word在词典中的位置,则dic词典的键值对格式为“word:idx”,inv_dic词典的键值对格式为“idx:word”;步骤43:编码:利用word2vec模型将数据集中的单词进行向量化表示,并最终形成词嵌入矩阵;所述步骤5包括如下步骤:步骤51:分别采用程序切片模型和AST结构化信息模型训练两种不同的代码表征;步骤52:采用预训练模型CodeBert作为融合模型,融合模型的输入为程序切片模型和AST结构化信息模型输出代码表征的拼接,按照预训练模型CodeBert的结构处理输入,输入序列I被转成输入向量X0,transformer层生成上下文表示Xn=transformernXn-1,n∈[1,N],N为transformer层数,最后添加线性分类器并使用输出预测概率的softMax函数来预测;步骤53:基于训练集对模型进行寻参调优后,保存表现最优的模型的参数。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人河海大学,其通讯地址为:210024 江苏省南京市鼓楼区西康路1号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。