【技术实现步骤摘要】
一种基于多分类支持向量机的智能合约未知漏洞检测方法
[0001]本专利技术涉及漏洞检测方法
,具体为一种基于多分类支持向量机的智能合约未知漏洞检测方法。
技术介绍
[0002]近些年机器学习的发展速度非常迅猛,因此研究者们开始尝试用机器学习的方法来检测智能合约漏洞,以太坊的出现标志着区块链进入了2.0的时代,区块链2.0是以以太坊为首的支持智能合约的区块链平台。智能合约是一段在区块链上运行的计算机程序,由图灵完备的高级语言编写。每当用户对已在以太坊上部署的智能合约发起一笔交易进行调用时,智能合约就会在以太坊虚拟机上运行,如今,智能合约已经在多个领域上得到了应用,比如金融服务、物联网、基础设施等。智能合约通常涉及大量金融资产交易,以太坊网络的公开透明性以及智能合约一旦部署在以太坊网络上时便无法进行修改,种种原因都让智能合约成为黑客攻击的目标。目前由智能合约安全漏洞引发的案例并不少见,智能合约出现安全漏洞的原因是多样的。首先,相比运行在计算机上传统的程序,智能合约是在去中心化的区块链上运行的程序,智能合约一般是由Solid ...
【技术保护点】
【技术特征摘要】
1.一种基于多分类支持向量机的智能合约未知漏洞检测方法,其特征在于,包括以下步骤:S1,在以太坊客户端Geth进行插桩,重放交易获取正常和有漏洞的操作码序列;S2,对收集到的操作码序列进行简化操作;S3,利用N
‑
gram算法对简化后的操作码序列进行2
‑
gram处理;S4,利用TF
‑
IDF算法对经过2
‑
gram处理后的操作码序列进行向量化得到特征向量;S5,将特征向量输入多分类支持向量机进行训练;S6,将待测的操作码序列经过简化,2
‑
gram处理和TF
‑
IDF向量化后输入到分类模型检测未知漏洞;S7,在检测阶段,针对每条待测操作码序列,并对分类模型输出的所有漏洞类别的概率值与给定的条件阈值进行比较分析,完成对未知漏洞的判定。2.根据权利要求1所述的一种基于多分类支持向量机的智能合约未知漏洞检测方法,其特征在于,步骤S1中所述插桩是指在以太坊客户端Geth上插入代码段用以收集交易数据;包括:区块号,时间戳,nonce值等区块参数;参与交易的账户地址与转账金额等交易信息;执行的智能合约地址;Balance账户余额;汇编操作码与操作数组成的操作码序列等相关信息,通过已插桩的以太坊客户端Geth获取正常操作码序列集和漏洞操作码序列集。3.根据权利要求1所述的一种基于多分类支持向量机的智能合约未知漏洞检测方法,其特征在于,所述步骤S2中,简化操作码序列是指:S201,对栈操作功能相似的操作码PUSH1、PUSH2、...、PUSH32简化为PUSH;S202,SWAP1~SWAP6、DUP1~DUP16和LOG1~LOG4分别简化为SWAP、DUP和LOG;S203,代表区块信息的6种操作码TIMESTAMP、BLOCKHASH、DIFFICULTY、NUMBER、COINBASE和GASLIMIT被简化为CONSTANT1;S204,地址相关的操作码简化为CONSTANT2;S205,加减乘除运算和模...
【专利技术属性】
技术研发人员:王国军,翟广鑫,李培强,顾婉仪,李旭彬,黎相彬,
申请(专利权)人:广州大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。