区块链作为对等网络中的一种分布式账本技术,提供一种新型信任体系构建方法。智能合约具有公开透明、实时更新、准确执行等显著特点,在区块链中为信息存储、交易执行和资产管理等功能的实现提供了更安全、高效、可信的方式。但是,智能合约本身存在安全问题,影响了区块链技术的进一步推广使用。
为了保障智能合约安全,智能合约安全缺陷检测相关技术迅速发展。现有的智能合约技术,例如定理证明、模式匹配、符号执行、机器学习,采用静态分析的方式在源代码或者字节码层面分析智能合约,从而判断合约内是否存在缺陷。然而,现有智能合约分析方法无法适用于多版本的智能合约,并且由于智能合约的语法和语义信息缺失,无法实现准确的缺陷定位并具有较高的漏报率。
东南大学课题组聚焦智能合约静态分析方法,提出一种基于知识图谱的Solidity智能合约缺陷检测方法。该方法基于Solidity语法定义智能合约本体层,通过智能合约抽象语法树抽取智能合约的基础知识,构建智能合约知识图谱实例层。在智能合约知识图谱基础上,应用知识图谱查询语句SPARQL进行推理查询,实现缺陷定位。

课题组开发了Solidity智能合约缺陷检测工具SoliDetector,支持已知的35种缺陷定位,并且提供新缺陷类型自定义与检测功能。

日前,相关工作以“Detect Defects of Solidity Smart Contract Based on the Knowledge Graph”为题发表于软件工程研究领域的国际期刊IEEE Transactions on Reliability,作者是胡甜媛、李必信、潘振宇、钱晨,均来自东南大学。该工作获得了国家重点研发计划和江苏省重点研发计划等基金的支持。