[发明专利]基于多示例和注意力机制的智能合约分析方法及装置在审
| 申请号: | 202310167280.4 | 申请日: | 2023-02-27 | 
| 公开(公告)号: | CN116361806A | 公开(公告)日: | 2023-06-30 | 
| 发明(设计)人: | 章睿;李兆轩;薛锐 | 申请(专利权)人: | 中国科学院信息工程研究所 | 
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06N3/08;G06F18/24;G06N3/0442 | 
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 余长江 | 
| 地址: | 100085*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 基于 示例 注意力 机制 智能 合约 分析 方法 装置 | ||
本发明公开了一种基于多示例和注意力机制的智能合约分析方法及装置。所述方法包括:获取智能合约的操作码;基于所述操作码,构建所述智能合约的程序控制流图;对所述程序控制流图执行深度优先遍历,以得到由T个操作码组成的实例;对所述实例进行编码,并基于注意力机制的双向长短期循环神经网络对编码结果进行分类,以得到该实例的安全结论以及权重;基于各实例的安全结论以及权重,得到所述智能合约的分析结果。本发明可以有效地保护区块链上运行的智能合约安全以及用户的隐私及财产安全。
技术领域
本发明涉及以太坊智能合约安全技术领域,具体涉及一种基于多示例和注意力机制的智能合约分析方法及装置。
背景技术
智能合约是在区块链上运行的程序。目前,数以万计的智能合约被部署在以太坊区块链平台上,已经在钱包、众筹、在线游戏和跨行业金融等领域实现了广泛的应用。这使得智能合约持有价值超过100亿美元的虚拟货币。一旦智能合约存在安全漏洞,恶意用户可能会利用漏洞发起攻击,窃取用户账户中的财产。除了智能合约所承载的经济价值外,这些攻击还源于:1)智能合约运行在一个无需许可的网络中,这意味着攻击者可以自由地检查所有的交易和字节码,并试图找出合约中的漏洞。2)共识协议使得智能合约一旦部署就不可更改,这需要开发者预测合约未来可能遇到的所有可能状态,这无疑是困难的。因此,在将智能合约部署到以太坊之前,对合约进行有效漏洞审查,确保智能合约无错误且设计良好非常重要。
现有的合约分析技术采用了模式匹配(SmartCheck和Slither)、符号执行(Oyente和Mythril)、模糊测试(Contractfuzzer和ILF)和机器学习(DR-GCN和S-gram)来识别漏洞(包含合约漏洞Bug和代码优化)。然而,目前还存在以下三个关键的挑战。
挑战1:(需求)支持智能合约的源代码、字节码/操作码的分析。
智能合约通常使用高级编程语言开发,例如Solidity。当开发人员将智能合约部署到以太坊时,合约将首先被编译成以太坊虚拟机(Ethereum Virtual Machine,EVM)字节码。然后,以太坊系统上的每个节点都将收到合约字节码,并在其账本中拥有一份副本。在以后运行合约时,EVM会将字节码解析为操作码序列并执行。智能合约的源代码由于其易读性而被许多方法分析,例如模式匹配(NeuCheck和Zeus),相似代码匹配(SMARTEMBED)和机器学习(Peculiar和DeeSCVHunter)。然而,根据最新记录,在以太坊上运行的100万个智能合约中,只有不到2%的人公开了它们的源代码。因此,这些工具很难被直接用于分析以太坊上庞大数量的智能合约。同时基于字节码分析由于存在以下原因,很难进行实现。1)字节码丢失了一些合约原始语义。2)合约中往往会引入了很多无关的干扰,即那些与漏洞无关的语句,称为噪声代码,可能会混淆代码匹配。
挑战2:(智能化无人化)降低对预先人工定义规则/模式的依赖和专家的参与。
尽管已经有一些基于字节码的漏洞检测研究,如符号执行(teEther和DefectChecker)和模糊测试(Contractfuzzer和SMARTIAN),检测和预防越来越多的合约漏洞的需求仍然在增长。这些方法的一个主要不足是它们需要专家定义的某些漏洞模式/预言或规则(统称为模式)来构建漏洞检测器或代码检查器。然而由于以下原因,使得他们不足以应对以太坊上多变的合约漏洞。1)人工定义的模式具有容易出错的风险,并且一些复杂漏洞的规则较难制定。同时,攻击者可能会使用技巧绕过规则的固定模式。2)随着Solidity编译器的发展,字节码具有可变的表现形式,字节码生成的多样性会给固定的规则形式带来困难。3)随着攻击者和防御者之间的竞争,不断编写新模式以响应攻击者创建的新漏洞可能太慢且成本太高。
挑战3:(实用化)帮助开发者更安全地完成合约生命周期,例如漏洞识别、验证、修复、模拟和监控。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310167280.4/2.html,转载请声明来源钻瓜专利网。





