A method and device for testing intelligent contracts are disclosed, in which the methods for testing intelligent contracts include: detecting logical risks in intelligent contracts by using operation codes for detecting and locating logical risks; locating at least one logical risk detected in intelligent contracts based on location information in operation codes for detecting and locating logical risks. A function; and testing an intelligent contract based on at least one of the functions. According to embodiments of the present disclosure, smart contracts can be tested more pertinently.
【技术实现步骤摘要】
用于测试智能合约的方法和装置
本公开涉及信息处理领域,具体涉及一种能够更有针对性地测试智能合约的用于测试智能合约的方法和装置。
技术介绍
基于以太坊区块链的应用发展变得越来越普及,然而,存在对于以太坊区块链上的智能合约发生的一些严重的攻击。对于区块链应用开发者而言,智能合约的安全性问题变得越来越重要。传统的方法可以检测逻辑风险,但是不能定位逻辑风险。而且,关于智能合约结构分析的传统方法仅支持单个文件,而不能支持多文件智能合约分析。同时,关于如何更有效地生成目标测试例存在较少的信息。
技术实现思路
在下文中给出了关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。鉴于以上问题,本公开的目的是提供能够解决现有技术中的一个或多个缺点的用于测试智能合约的方法和装置。根据本公开的一方面,提供了一种用于测试智能合约的方法,包括:利用用于检测并定位逻辑风险的操作码,检测智能合约中的逻辑风险;基于用于检测并定位逻辑风险的操作码中的定位信息,定位出智能合约中的包含所检测到的逻辑风险的至少一个函数;以及基于所述至少一个函数,测试智能合约。根据本公开的另一方面,提供了一种用于测试智能合约的装置,包括:检测逻辑风险单元,被配置成利用用于检测并定位逻辑风险的操作码,检测智能合约中的逻辑风险;定位逻辑风险单元,被配置成基于用于检测并定位逻辑风险的操作码中的定位 ...
【技术保护点】
1.一种用于测试智能合约的方法,包括:利用用于检测并定位逻辑风险的操作码,检测所述智能合约中的逻辑风险;基于所述用于检测并定位逻辑风险的操作码中的定位信息,定位出所述智能合约中的包含所检测到的逻辑风险的至少一个函数;以及基于所述至少一个函数,测试所述智能合约。
【技术特征摘要】
1.一种用于测试智能合约的方法,包括:利用用于检测并定位逻辑风险的操作码,检测所述智能合约中的逻辑风险;基于所述用于检测并定位逻辑风险的操作码中的定位信息,定位出所述智能合约中的包含所检测到的逻辑风险的至少一个函数;以及基于所述至少一个函数,测试所述智能合约。2.根据权利要求1所述的方法,其中,通过对用于检测逻辑风险的操作码与具有定位信息的操作码进行映射,将所述定位信息添加到所述用于检测逻辑风险的操作码中,从而生成所述用于检测并定位逻辑风险的操作码。3.根据权利要求1所述的方法,还包括:通过对所述智能合约进行拓扑分析,生成用于表示所有元数据之间的调用关系的拓扑图;在所述拓扑图中,查找最小入口函数集合,其中,所述最小入口函数集合中的每个函数均未被其他元数据调用,并且所述最小入口函数集合包括用于遍历所述拓扑图中的所有元数据所需的最小数量的函数;以及基于所述最小入口函数集合中的每个函数,测试所述智能合约。4.根据权利要求3所述的方法,还包括:在所述拓扑图中,查找被频繁调用的函数和变量;以及基于所查找到的被频繁调用的函数和变量,测试所述智能合约。5.根据权利要求4所述的方法,还包括:基于在先前测试中未被直接调用的函数,测试所述智能合约。6.根据权利要...
【专利技术属性】
技术研发人员:周恩策,皮冰锋,华松,孙俊,
申请(专利权)人:富士通株式会社,
类型:发明
国别省市:日本,JP
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。