(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
专利 一种基于多模态特征的智能合约庞氏骗局检测方法及系统
文档预览
中文文档
16 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:33:32上传分享