[发明专利]智能合约审计方法、装置、计算机设备及存储介质有效
申请号: | 201910961984.2 | 申请日: | 2019-10-11 |
公开(公告)号: | CN110727948B | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 尚进 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/41 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 邢惠童 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 智能 合约 审计 方法 装置 计算机 设备 存储 介质 | ||
1.一种智能合约的审计方法,其特征在于,所述方法由服务器执行,所述方法包括:
接收编辑终端上传的智能合约的源代码,所述智能合约是用于在区块链中运行的合约程序;所述智能合约的源代码是所述编辑终端在编写审计结果指示所述智能合约的源代码不存在安全问题的情况下发送的;所述编写审计结果由所述编辑终端按照静态规则匹配的方式对所述智能合约的源代码的安全问题进行静态扫描获得;
查询所述智能合约的合约格式对应的审计参数,所述审计参数包括编译参数和扫描参数;不同的合约格式对应的审计参数不同;
根据所述编译参数对所述智能合约的源代码进行编译;
在对所述智能合约的源代码编译成功后,根据所述扫描参数对所述智能合约进行安全问题扫描,获得扫描审计结果;将所述扫描审计结果返回给所述编辑终端;
在对所述智能合约的源代码编译失败后,获取所述智能合约的源代码的编译错误信息;从所述编译错误信息中筛选安全问题对应的错误信息;根据筛选结果获取编译审计结果;将所述编译审计结果返回给所述编辑终端;
当所述扫描审计结果指示所述智能合约的源代码不存在安全问题时,将所述智能合约发送给审核终端;接收所述审核终端返回的人工审计结果,所述人工审计结果是对所述智能合约进行人工安全问题审核获得的结果;将所述人工审计结果返回给所述编辑终端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述人工审计结果指示所述智能合约的源代码不存在安全问题,则将所述智能合约发布至区块链中。
3.根据权利要求1或2所述的方法,其特征在于,所述在对所述智能合约的源代码编译成功后,根据所述扫描参数对所述智能合约进行安全问题扫描,获得扫描审计结果,包括:
在对所述智能合约的源代码编译成功后,根据所述扫描参数,按照静态规则匹配的方式对所述智能合约的源代码的安全问题进行静态扫描,获得第一扫描结果;
根据所述扫描参数,按照约束求解的方式对所述智能合约的源代码的安全问题进行动态扫描,获得第二扫描结果;
根据所述第一扫描结果和所述第二扫描结果获取所述扫描审计结果。
4.根据权利要求1或2所述的方法,其特征在于,
所述编译参数包括被所述智能合约引用的其它合约的存储地址,以及,编译器的版本号中的至少一种;
所述扫描参数包括:扫描时间和扫描次数中的至少一种。
5.一种智能合约的审计方法,其特征在于,所述方法由编辑终端执行,所述方法包括:
接收在编辑界面中编辑的智能合约的源代码;
按照静态规则匹配的方式对所述智能合约的源代码的安全问题进行静态扫描,获得编写审计结果;
当所述编写审计结果指示所述智能合约的源代码不存在安全问题时,将所述智能合约的源代码上传给服务器;
接收所述服务器返回的,对所述智能合约的源代码进行安全问题扫描的审计结果;所述服务器对所述智能合约的源代码进行安全问题扫描所使用的审计参数,是所述服务器查询所述智能合约的合约格式得到的;不同的合约格式对应的审计参数不同;
展示所述服务器返回的审计结果;
其中,所述服务器返回的审计结果包括扫描审计结果、编译审计结果以及人工审计结果中的至少一种;
所述扫描审计结果是所述服务器对所述智能合约的源代码编译成功后,对所述智能合约进行安全问题扫描获得的审计结果;
所述编译审计结果是所述服务器对所述智能合约的源代码编译失败后,从编译错误信息中筛选安全问题对应的错误信息,并根据筛选结果获取的审计结果;
所述人工审计结果是所述扫描审计结果指示所述智能合约的源代码不存在安全问题时,对所述智能合约进行人工安全问题审核获得的结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910961984.2/1.html,转载请声明来源钻瓜专利网。