[发明专利]Solidity智能合约相似性检测方法及系统有效
申请号: | 202110420735.X | 申请日: | 2021-04-19 |
公开(公告)号: | CN113268732B | 公开(公告)日: | 2022-12-20 |
发明(设计)人: | 祝迪;庞建民;周鑫;岳峰;王军;李明亮;王其涵;韩文杰;刘光明 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/41;G06F40/194 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | solidity 智能 合约 相似性 检测 方法 系统 | ||
1.一种Solidity智能合约相似性检测方法,其特征在于,包含如下内容:
收集以太坊不同版本智能合约源码,并分别通过编译和编译优化获取两种类型的中间表示,通过对两种类型的中间表示进行基本块标记来获取由基本块和相似基本块组成的相似基本块对,形成智能合约相似性数据集;
针对相似性数据集,通过向量空间嵌入生成基本块序列向量,通过自然语言处理模型获取基本块的差异化负样本和硬负样本;
构建用于对智能合约进行相似性度量的三元组网络模型,将相似性数据集中基本块作为锚、相似基本块作为正样本、并将差异化负样本和/或硬负样本作为负样本对三元组网络模型进行训练优化,基于训练优化后的三元组网络模型对目标智能合约进行相似性检测。
2.根据权利要求1所述的Solidity智能合约相似性检测方法,其特征在于,基本块标记中,首先对中间表示中指令进行规范化,根据基本块定义生成基本块序列;然后依据基本块标记对中间表示中的基本块和相似基本块进行匹配汇总,获取相似性数据集。
3.根据权利要求1或2所述的Solidity智能合约相似性检测方法,其特征在于,向量空间嵌入中,首先将数据集中基本块转化为token,然后使用word2vec进行向量空间嵌入生成基本块序列向量。
4.根据权利要求1所述的Solidity智能合约相似性检测方法,其特征在于,自然语言处理模型采用Transformer模型,利用Transformer模型来获取基本块之间用于相似性度量的向量空间距离,将相似性由高到低进行排序获取差异性负样本和硬负样本。
5.根据权利要求1或4所述的Solidity智能合约相似性检测方法,其特征在于,数据集中的基本块通过自然语言处理模型并按预设比例生成与基本块对应的差异性负样本和硬负样本。
6.根据权利要求1所述的Solidity智能合约相似性检测方法,其特征在于,由Transformer模型组成三元组网络模型,并利用三元组损失函数进行模型训练的误差计算。
7.根据权利要求1所述的Solidity智能合约相似性检测方法,其特征在于,三元组网络模型训练优化中,使用adam优化器对模型参数优化。
8.一种Solidity智能合约相似性检测系统,其特征在于,包含:数据收集模块、样本构建模块和训练检测模块,其中,
数据收集模块,用于收集以太坊不同版本智能合约源码,并分别通过编译和编译优化获取两种类型的中间表示,通过对两种类型的中间表示进行基本块标记来获取由基本块和相似基本块组成的相似基本块对,形成智能合约相似性数据集;
样本构建模块,用于针对相似性数据集,通过向量空间嵌入生成基本块序列向量,通过自然语言处理模型获取基本块的差异化负样本和硬负样本;
训练检测模块,用于构建用于对智能合约进行相似性度量的三元组网络模型,将相似性数据集中基本块作为锚、相似基本块作为正样本、并将差异化负样本和/或硬负样本作为负样本对三元组网络模型进行训练优化,基于训练优化后的三元组网络模型对目标智能合约进行相似性检测。
9.一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行权利要求1~7任一项所述的方法。
10.一种计算机可读介质,其上存储有被处理器运行的计算机程序,所述计算机程序用于执行权利要求1~7任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110420735.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:显示面板和显示装置
- 下一篇:一种I/O信号转接模块