[发明专利]基于智能合约的检测方法及装置、存储介质、电子装置在审
申请号: | 202010706712.0 | 申请日: | 2020-07-21 |
公开(公告)号: | CN111861465A | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 李鹏霄;彭成维;王红兵;时磊;项菲;翟羽佳;马宏远 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38 |
代理公司: | 北京国谦专利代理事务所(普通合伙) 11752 | 代理人: | 肖应国 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 智能 合约 检测 方法 装置 存储 介质 电子 | ||
1.一种基于智能合约的检测方法,其特征在于,包括:
确定区块链上的智能合约,其中,所述智能合约包括:在所述区块链上的数字资产;
根据所述数字资产的状态对所述智能合约进行检测操作,其中,所述检测操作至少包括以下之一:检测所述智能合约的链上交易、检测在所述智能合约中提取的数字资产、检测所述数字资产的匹配条件。
2.根据权利要求1所述的方法,其特征在于,根据所述数字资产的状态对所述智能合约进行检测操作包括:
遍历与所述智能合约相关的所述数字资产的状态;
根据所述数字资产的状态,检测所述智能合约的链上交易。
3.根据权利要求2所述的方法,其特征在于,所述检测所述智能合约的链上交易包括:
将创建合约的发送方的地址作为初始地址,加入到第一地址列表,其中,所述第一地址列表初始为空;
将调用所述数字资产增发函数的发送方的地址加入所述第一地址列表;
将调用所述数字资产代持函数的发送方的地址加入所述第一地址列表;
在调用转移所述数字资产的发送方的地址在所述第一地址列表中的情况下,将转移接收方的地址加入到所述第一地址列表;
在调用转移所述数字资产的发送方的地址不在所述第一地址列表的情况下,将所述转移所述数字资产的操作作为异常交易。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数字资产的状态对所述智能合约进行检测操作包括:
提取所述数字资产的特征量;其中,所述特征量至少包括如下之一:数字资产总量,初始账户地址、增发函数的信息;
检测在所述智能合约中提取的数字资产数字资产总量、初始账户地址或者增发函数的信息。
5.根据权利要求4所述的方法,其特征在于,所述提取所述数字资产的特征量包括:
遍历所述智能合约的交易列表,提取初始化函数中的数字资产总量;
和/或,遍历所述智能合约的函数列表匹配预设的接口函数,提取得到所述数字资产的初始账户地址或者增发函数的信息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述数字资产的状态对所述智能合约进行检测操作包括:
检测所述数字资产的匹配条件是否满足预设规则,其中,所述预设规则根据语法特征或数据流特征描述所述数字资产的增发漏洞或行为;
在检测所述数字资产的匹配条件满足预设规则的情况下,记录所述数字资产的状态。
7.根据权利要求6所述的方法,其特征在于,所述检测所述数字资产的匹配条件包括:
确定所述智能合约的字面值,得到字面值字典;
根据所述字面值字典遍历所述智能合约中的函数,确定所述数字资产增发的函数;
遍历所述数字资产增发的函数中的语句,确定数组赋值语句;
根据所述数组赋值语句检测所述数字资产的匹配条件。
8.一种基于智能合约的检测装置,其特征在于,包括:
确定模块,用于确定区块链上的智能合约,其中,所述智能合约包括:在所述区块链上的数字资产;
检测模块,用于根据所述数字资产的状态对所述智能合约进行检测操作,其中,所述检测操作至少包括以下之一:检测所述智能合约的链上交易、检测在所述智能合约中提取的数字资产、检测所述数字资产的匹配条件。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010706712.0/1.html,转载请声明来源钻瓜专利网。