standard library
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210165284.4 (22)申请日 2022.02.18 (71)申请人 扬州大学 地址 225009 江苏省扬州市大 学南路88号 (72)发明人 蔡杰 李斌 张佳乐 孙小兵  陈玮彤  (74)专利代理 机构 南京苏高专利商标事务所 (普通合伙) 32204 专利代理师 柏尚春 (51)Int.Cl. G06F 21/56(2013.01) G06Q 20/40(2012.01) G06Q 20/38(2012.01) G06F 40/30(2020.01) G06N 3/04(2006.01)G06N 3/08(2006.01) (54)发明名称 一种基于多模态特征的智能合约庞氏骗局 检测方法及系统 (57)摘要 本发明公开了一种基于多模态特征的智能 合约庞氏骗局检测方法及系统, 该方法首先对智 能合约源代码进行序列化表示学习, 得到全局词 法特征; 然后利用静态分析构建智能合约交易属 性图, 并通过图神经网络提取局部交易特征; 利 用注意力机制融合全局词法特征和局部交易特 征, 在次基础上进行庞氏骗局智 能合约检测。 本 发明的优势在于: 结合智能合约的全局词法和局 部交易两种模态特征, 充分提取智能合约代码语 义, 提升检测的准确性; 利用程序切片技术和代 码图表示在保留庞氏骗局语义相关代码同时去 除噪声代码, 提升了检测准确性; 本发明基于代 码特征和深度学习的检测方法, 不依赖其它数据 和专家规则, 提高检测适用范围和 效率, 降低了 检测成本 。 权利要求书4页 说明书10页 附图1页 CN 114547611 A 2022.05.27 CN 114547611 A 1.一种基于多模态特 征的智能合约庞氏骗局检测方法, 其特 征在于, 包括以下步骤: (1)构建智能合约源代码数据集, 并利用论坛数据和人工审计方法对数据集中的庞氏 骗局智能合约样本进行 标记; (2)对智能合约进行词法分析, 得到抽象语法树, 使用代码结构化遍历技术将抽象语法 树展开为序列, 得到智能合约序列化表示; (3)利用庞氏骗局智能合约的语法特征作为切片准则, 对智能合约源码进行程序切片, 抽取与庞氏骗局语义相关语句组成切片集合; 并对切片语句集合进 行控制流、 数据流分析, 构建智能合约交易属性图; (4)利用transformer  encoder作为特征提取模型, 将智能合约序列化输入模型中进行 特征提取, 得到智能合约全局特 征向量; (5)利用图卷积神经网络和图自注意力池化操作, 对智能合约交易属性图进行特征提 取, 得到与智能合约交易局部特 征向量; (6)将步骤(4)和步骤(5)得到的智能合约全局词法特征向量和局部交易特征向量进行 融合, 得到智能合约复合特 征向量, 并输入多层感知机预测当前智能合约是否是庞氏骗局。 2.根据权利要求1所述的基于多模态特征的智能合约庞氏骗局检测方法, 其特征在于, 所述步骤(1)包括以下步骤: (1.1)在对收集到的智能合约源码进行人工审计, 确认智能合约样本是否为庞氏骗局 智能合约, 将确认为庞氏骗局的智能合约加入集合Setponzi={c1,...,cN}, 其中N表示庞氏 骗局智能合约的数量; (1.2)通过B igQuery数据库收集智能合约地址, 通过Etherscan平台得到对应的智能合 约源代码, 并通过手工确认其中非庞氏合约样本集合, 这些样本组成非庞氏合约集合 Setno_ponzi={c1,...,cM}, 其中M表示非庞氏骗局智能合约样本数量; (1.1)综合(1.1)和(1.2)得到的智能合约样本, 得到智能合约数据集Set=Setponzi∪ Setno_ponzi, 且数据集中智能合约样本数为S=M+N。 3.根据权利要求1所述的基于多模态特征的智能合约庞氏骗局检测方法, 其特征在于, 所述步骤(2)包括以下步骤: (2.1)利用solidity编译器将智能合约样本ci编译为抽象语法树, 遍历该抽象语法树并 提取根节点类型为FunctionDefinition的子树, 构建当前智能合约样本ci所包含函数的抽 象语法树 集合 其中K表示当前智能合约ci函数数量; ( 2 .2) 利 用 结 构 化 遍 历 将 函 数 抽 象 语 法 树 展 开 成 t o k e n 序 列 其中 表示当前函数token序列长度; 合并所有函数的t oken序列 集合, 得到当前智能合约样本 ci的序列化表示 ( 2 .3 ) 合 并 所 有 智 能 合 约 样 本 的 序 列 化 表 示 , 组 成 智 能 合 约 语 料 库 利用FastText模型在 该语料库上进行训练, 得到任意tokeni对应 的初始特 征向量 4.根据权利要求1所述的基于多模态特征的智能合约庞氏骗局检测方法, 其特征在于, 所述步骤(3)包括以下步骤:权 利 要 求 书 1/4 页 2 CN 114547611 A 2(3.1)针对智能合约样本 ci∈Set及其函数抽象语法树 集合 利用语法 分析遍历所有 函数抽象语法树 判断当前函数是否包含转账操作, 如果存在转账操作则 将该函数 加入当前合约样本对应敏感函数集合 其余函数组成非敏感函数集 (3.2)敏感函数集中的任意函数 对其抽象语法树 进行语义分析, 得到该函 数程序依赖图 利用3种转账交易接口作为切片准则, 根据图可达性原理对 进 行后向切片, 得到当前函数的交易切片属性图 且图中节点v∈V表示函数 fi中与交易行为存在语义依赖关系的语句, 图中边e∈E, 包括: 控制流、 数据流、 控制依赖和 数据依赖四种类型; (3.3)遍历 并搜索其中所有节点使用的全局变量, 并组成当前函数fi的交易敏感 全局变量集合 合并所有敏感函数内的交易敏感全局变量, 得到当前智能合约ci 的交易敏感全局变量 集合 (3.4)遍历当前智能合约样本ci中非交易敏感函数 对应抽象语法树, 判断该 函数是否使用交易敏感全局变量 如果使用则将当前函数从非交易敏感函数 集合 转移到交易敏感函数集合 中, 并将当前函数使用的交易敏感全局变量作为 切片准则, 生成该函数的交易切片属性图 (3.5)对任意交易敏感全局变量 遍历当前智能合约寻找该变量的定义 语句, 组成全局 变量定义语句集合Vdef; 合并所有交易敏感函数的交易切片属性图, 和全局 变量定义语句集合Vdef, 生成当前合约样 本的合约交易属性图TPG=(V,E); 其中节点v∈V表 示当前智能合约中与交易行为相关的交易敏感全局变量定义、 交易敏感全局变量使用和交 易接口调用等语句; 图中边e∈E包括: 数据流、 控制流、 数据 依赖、 控制依赖和交易敏感变量 修改五种类型。 5.根据权利要求1所述的基于多模态特征的智能合约庞氏骗局检测方法, 其特征在于, 所述步骤(4)包括以下步骤: (4.1)针对任意智能合约样本ci, 将(2.3)生成当前样本的序列化表示 分为多个 batch, 并且每 个batch所包含的token数量为l'; (4.2)针对 任意batc h, 计算每 个token的位置编码向量PE, 计算方法为: PE(pos,2i)=sin(pos/10 0002i/d) PE(pos,2i+1)=cos(pos/10 0002i/d) 其中, pos代表当前token在batch中的位置; d是当token位置编码向量的维度大小; i代 表位置编码向量的下 标; (4.3)将token的位置编码向量与token初始特征向量相加得到当前batch中tokeni的初 始化向量 合并所有batch中所有token初始化向量表示, 得到智能合约序列化权 利 要 求 书 2/4 页 3 CN 114547611 A 3

PDF文档 专利 一种基于多模态特征的智能合约庞氏骗局检测方法及系统

文档预览
中文文档 16 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 第 1 页 专利 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 第 2 页 专利 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-18 22:33:32上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。