[发明专利]Solidity智能合约相似性检测方法及系统有效
申请号: | 202110420735.X | 申请日: | 2021-04-19 |
公开(公告)号: | CN113268732B | 公开(公告)日: | 2022-12-20 |
发明(设计)人: | 祝迪;庞建民;周鑫;岳峰;王军;李明亮;王其涵;韩文杰;刘光明 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/41;G06F40/194 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | solidity 智能 合约 相似性 检测 方法 系统 | ||
本发明涉及一种Solidity智能合约相似性检测方法及系统,通过收集以太坊不同版本智能合约源码,通过编译和编译优化获取两种类型的中间表示,通过对中间表示进行基本块标记来获取由基本块和相似基本块组成的相似基本块对,形成智能合约相似性数据集;通过向量空间嵌入生成基本块序列向量,通过自然语言处理模型获取基本块的差异化负样本和硬负样本;将相似性数据集中基本块作为锚、相似基本块作为正样本、并将差异化负样本和/或硬负样本作为负样本对三元组网络模型进行训练优化,基于训练优化后的三元组网络模型对目标智能合约进行相似性检测。本发明提高相似性检测准确率,可适用于大规模背景下的智能合约漏洞挖掘、恶意合约检测和合约升级安全检测等。
技术领域
本发明属于智能合约审计分析技术领域,特别涉及一种Solidity智能合约相似性检测方法及系统。
背景技术
随着医疗健康、物联网、金融信息等多方面的快速发展,区块链技术在其中的应用也逐渐在社会中得到认可。目前以太坊是最大的区块链,不仅拥有最大的活跃人数,还有最多数量的智能合约在其中运行。智能合约是区块链中的去中心化应用,可以使用智能合约在无第三方证明的情况下完成透明、不可篡改、可追溯的信息传递和货币交易。但是目前以太坊的智能合约作为程序的一种,也面临着恶意合约部署、代码漏洞、合约升级安全威胁等问题。
目前对智能合约安全审计主要有三种方式:静态分析、动态分析及借助机器学习。其中,动态分析通过仿真、模糊测试等手段在软件运行时记录其运行状态,对其运行状态建立相似度匹配模型,虽然误报率不高,但使用的资源较大且耗时,不适配日益增长的智能合约数量,由于搭建运行环境的复杂性和执行效率低的缺点,无法有效应对大规模智能合约漏洞的实时挖掘,配置各种软件运行环境耗时费力,软件运行所产生的不良后果难以预测和消除。静态分析通常指在不运行目标程序的前提下通过分析目标程序的语法和语义,并结合数据流、控制流分析建立相似度匹配或漏洞检测模型,执行率较高,但是无法获得合约运行的上下文信息,故误报率较高。近年来,伴随着人工智能的快速发展,机器学习等学习模型开始被应用在合约安全审计领域。借助机器学习使用大规模的数据集对机器学习模型进行训练,以此来得到适合智能合约安全审计的机器学习模型,通过对大规模软件数据的预训练建立起学习模型,借助模型可以对未知的智能合约进行安全审计,可以在保证准确率的基础上,用较少的时间和资源进行安全审计。但是目前使用机器学习对智能合约进行安全审计的方法大多是从源码层面和方法粒度进行的,导致机器学习的模型无法有效的对智能合约进行语义的提取,准确率不高。随着区块链技术应用快速发展,智能合约数量的爆炸性增长。合约代码的重用越来越频繁,智能合约的相似度检测也越来越重要,由智能合约相似性检测基础上可以进行对智能合约漏洞搜索、恶意合约检测和合约升级威胁检测等。目前,对智能合约的相似性检测缺乏数据集支撑,另外,以太坊智能合约的开发语言Solidity版本和其编译器版本较多,给智能合约安全审计和相似性分析带来了困难。
发明内容
为此,本发明提供一种Solidity智能合约相似性检测方法及系统,在基本块粒度和中间表示层面实现对跨版本的智能合约进行相似性度量,提高相似性检测准确率,可适用于大规模背景下的智能合约漏洞挖掘、恶意合约检测和合约升级安全检测等。
按照本发明所提供的设计方案,提供一种Solidity智能合约相似性检测方法,包含如下内容:
收集以太坊不同版本智能合约源码,并分别通过编译和编译优化获取两种类型的中间表示,通过对两种类型的中间表示进行基本块标记来获取由基本块和相似基本块组成的相似基本块对,形成智能合约相似性数据集;
针对相似性数据集,通过向量空间嵌入生成基本块序列向量,通过自然语言处理模型获取基本块的差异化负样本和硬负样本;
构建用于对智能合约进行相似性度量的三元组网络模型,将相似性数据集中基本块作为锚、相似基本块作为正样本、并将差异化负样本和/或硬负样本作为负样本对三元组网络模型进行训练优化,基于训练优化后的三元组网络模型对目标智能合约进行相似性检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110420735.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:显示面板和显示装置
- 下一篇:一种I/O信号转接模块