[发明专利]一种基于句法树匹配的智能合约相似性检测方法有效

专利信息
申请号: 202110569353.3 申请日: 2021-05-25
公开(公告)号: CN113177107B 公开(公告)日: 2022-05-27
发明(设计)人: 刘振广;徐小俊;钱鹏;刘灵凤;武思凡 申请(专利权)人: 浙江工商大学
主分类号: G06F16/33 分类号: G06F16/33;G06F40/211;G06F40/253;G06F40/30
代理公司: 杭州天勤知识产权代理有限公司 33224 代理人: 王琛
地址: 310018 浙江*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 句法 匹配 智能 合约 相似性 检测 方法
【说明书】:

发明公开了一种基于句法树匹配的智能合约相似性检测方法,其借助抽象语法树提取工具捕获智能合约语法信息,利用编码器的注意力机制获取句法树中各节点的语义信息,最终提取智能合约句法树的高语义特征向量,以特征向量为相似度计算函数的输入得到不同句法树之间的相似值,通过求平均值的方法得到两段智能合约源码的相似性检测结果。本发明有效地解决了以太坊智能合约相似性检测问题,相较于传统的代码克隆检测方法,本发明方法实现了更准确的检测效果,同时具备精确到代码行的相似性检测解释,具有良好的通用性和实用价值。

技术领域

本发明属于程序相似性检测技术领域,具体涉及一种基于句法树匹配的智能合约相似性检测方法。

背景技术

近年来,为了提高软件开发效率,越来越多的研发人员开始利用代码复用技术,例如复用现有的程序代码、复用通用的软件框架、复用常见的设计模式等。然而,盲目地复用现有的程序代码可能会造成很多问题,例如项目额外成本提高、软件易存在漏洞风险、容易侵犯软件著作权。

代码相似性检测是检查代码复用的有效技术之一,也称为代码克隆检测,能够判断两个程序是否存在相同或相似的代码片段。根据代码的相似程度不同,代码相似性检测一般分为四个层次:(1)完全相同的程序代码;(2)完全复用除空格、注释、变量或函数重命名等之外的代码;(3)类型(2)基础上略有修改的代码;(4)实现方式不同但语义或功能相同的代码。传统的检测方法通常只考虑语法层面的代码相似性检测,因此只能达到类型(1)和类型(2)的检测水平,现有的相似性检测方法结合词汇、语法、语义等多维度分析方法,实现了类型(3)和类型(4)层面的代码相似性检测。

智能合约相似性检测是针对区块链智能合约的代码克隆检测,智能合约是由图灵完备语言编写的程序代码,具有不可逆和不可变性,即合约部署后将不能进行修改和更新。若是某个智能合约存在漏洞,可能会导致其克隆的衍生合约也存在相应的漏洞,因此研究针对智能合约代码的相似性检测方法是有必要的,其能够有效地避免合约漏洞的传播,从而进一步提高智能合约的可靠性和安全性。

基于句法树匹配的方法能够有效地解决智能合约相似性检测问题,通过把智能合约代码转换为抽象语法树(AST),再将每个AST分割成多个句法树,得到相应的句法树序列,并利用相似性检测算法计算两个不同句法树的合约相似度矩阵;该方法不仅能实现高效精准地智能合约相似性检测,而且可以给出精确到代码行的相似性解释,具有良好的前瞻性和参考性。

发明内容

鉴于上述,本发明提供了一种基于句法树匹配的智能合约相似性检测方法,能够实现语义层面的智能合约源代码相似性检测。

一种基于句法树匹配的智能合约相似性检测方法,包括如下步骤:

(1)构建抽象语法树:针对以太坊智能合约为研究对象,利用语法树抽取工具从智能合约源码中提取抽象语法树;

(2)构建句法树序列:以智能合约代码段Z1和Z2为拟检测的合约克隆对,利用语法树抽取工具得到Z1和Z2对应的抽象语法树F1和F2,将F1和F2按照相应的语句进行拆分并通过先序遍历对应得到句法树序列S1和S2

(3)句法树特征提取:构建基于Attention机制的句法树编码器,提取句法树序列S1和S2中每个句法树对应的特征向量,进一步得到句法树序列S1的特征向量集合以及句法树序列S2的特征向量集合其中n表示向量的维度,m和k分别表示S1和S2中的句法树个数;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110569353.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top