[发明专利]一种基于智能合约知识图谱的合约缺陷检测方法在审
申请号: | 202110249359.2 | 申请日: | 2021-03-08 |
公开(公告)号: | CN112860263A | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 李必信;胡甜媛;潘振宇 | 申请(专利权)人: | 东南大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/36;G06F16/242 |
代理公司: | 南京众联专利代理有限公司 32206 | 代理人: | 张天哲 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 智能 合约 知识 图谱 缺陷 检测 方法 | ||
1.一种基于智能合约知识图谱的合约缺陷检测方法,其特征在于,该方法包括如下步骤:
步骤1)定义智能合约缺陷模式
分析包含不同智能合约缺陷的智能合约源码,归纳合约缺陷特征,针对不同合约缺陷类型,定义智能合约缺陷模式DefectPattern;
步骤2)生成待检测智能合约的抽象语法树
针对输入的Solidity编写的智能合约源码,基于Solidity语法,通过智能合约源码解析工具生成智能合约抽象语法树SmartContractAST;
步骤3)构建待检测智能合约的知识图谱
在所述步骤2)生成的智能合约抽象语法树SmartContractAST的基础上,分析智能合约源码依赖关系,抽取智能合约的基础知识实体及其关系,形式为E1,R,E2,其中E1,E2表示智能合约的实体,R表示智能合约实体之间的依赖关系,将智能合约的基础知识实体及其关联存储在RDF三元组数据库中,从而构建智能合约知识图谱SmartContractKG;
步骤4)应用知识图谱查询语句进行推理查询,将智能合约和缺陷模式匹配
编写智能合约缺陷匹配所需的推理规则,在所述步骤3)获得的智能合约知识图谱SmartContractKG的基础上,应用知识图谱查询语句进行推理查询,将智能合约缺陷检测过程,转换为使用知识图谱查询语言进行推理查询的过程,即智能合约和缺陷模式匹配;
步骤5)根据智能合约和缺陷模式匹配情况,报告智能合约缺陷检测结果。
2.根据权利要求1所述的一种基于智能合约知识图谱的合约缺陷检测方法,其特征在于,步骤2)中所述的Solidity语法是Antlr4支持的Solidity.g4语法文件,Antlr4是一种语法解析工具,通过定义Solidity.g4语法文件,生成智能合约源码的抽象语法树SmartContractAST,并在SmartContractAST的基础上进行操作。
3.根据权利要求2所述的一种基于智能合约知识图谱的合约缺陷检测方法,其特征在于,步骤3)中所述的智能合约知识图谱构建在步骤2)生成抽象语法树SmartContractAST的基础上实现,智能合约源码中的每个元素都对应抽象语法树上的一个结点,使用Visitor设计模式遍历智能合约的抽象语法树,提取智能合约知识实体以及对应的关系属性,其中,智能合约知识实体包括合约、变量、函数、赋值表达式、方法调用、变量操作、If判断、For循环,基于智能合约知识实体和实体间的关系构建智能合约知识图谱SmartContractKG,智能合约知识图谱的构建过程就是将智能合约源码中的程序依赖关系转换为RDF三元组,通过RDF三元组表征待检测智能合约,使用OWL语言进行描述。
4.根据权利要求3所述的一种基于智能合约知识图谱的合约缺陷检测方法,其特征在于,步骤4)中所述的应用知识图谱查询语句进行推理查询在步骤3)构建的智能合约知识图谱SmartContractKG上实现;
4-1)在所述步骤1)定义的智能合约缺陷模式DefectPattern的基础上,根据合约缺陷的特征,结合智能合约知识图谱构建的规则,编写智能合约缺陷匹配所需的查询推理规则,应用查询语句SPARQL进行表示;
4-2)在所述步骤3)获得的智能合约知识图谱SmartContractKG的基础上,应用知识图谱查询语句SPARQL进行推理查询,将智能合约缺陷检测过程,转换为使用知识图谱查询语言进行推理查询的过程,即智能合约和缺陷模式匹配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110249359.2/1.html,转载请声明来源钻瓜专利网。