[发明专利]智能合约的验证方法和装置有效
| 申请号: | 202011435380.3 | 申请日: | 2020-12-11 |
| 公开(公告)号: | CN112215618B | 公开(公告)日: | 2021-02-26 |
| 发明(设计)人: | 邬萌;王海军 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06Q20/40;G06Q40/04 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
| 地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 智能 合约 验证 方法 装置 | ||
本说明书实施例提供了一种智能合约的验证方法和装置。根据该实施例的方法,首先,分别对智能合约的每一个接口进行目标安全属性的形式化验证;然后对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;之后,若约减处理得到的程序状态不满足所述目标安全属性,则获取不满足所述目标安全属性的程序状态实例;验证不满足所述目标安全属性的程序状态实例是否均无效,如果否,则所述目标安全属性验证失败。
技术领域
本说明书一个或多个实施例涉及计算机应用技术领域,特别涉及区块链技术领域中智能合约的验证方法和装置。
背景技术
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。在区块链技术领域中智能合约是一组以数字形式指定的承诺,包括各方在其中履行这些承诺的协议。由于区块链平台的特殊性,智能合约对平台上的参与方来说是完全透明的,而且一旦部署很难被更改。因此在智能合约部署前确保其安全性和正确性就变得十分必要。
发明内容
本说明书一个或多个实施例描述了一种智能合约的验证方法和装置,以实现对智能合约的验证。
根据第一方面,提供了一种智能合约的验证方法,该方法包括:
对智能合约的每一个接口进行目标安全属性的形式化验证;
对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;
若约减处理得到的程序状态不满足所述目标安全属性,则获取不满足所述目标安全属性的程序状态实例;
验证不满足所述目标安全属性的程序状态实例是否均无效,如果否,则所述目标安全属性验证失败。
在一个实施例中,该方法还包括:
若约减处理得到的程序状态满足所述目标安全属性,则基于约减处理得到的程序状态,继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。
在另一个实施例中,该方法还包括:
若验证得到不满足所述目标安全属性的程序状态实例均无效,则将该无效的程序状态实例从所述约减处理得到的程序状态中排除,继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。
在一个实施例中,在所述转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证之前,还包括:
判断所述约减处理得到的程序状态是否达到稳定;
如果是,则所述目标安全属性验证通过,结束对所述目标安全属性的验证;
否则,基于约减处理得到的程序状态继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。
在另一个实施例中,所述约减处理包括程序分析技术中的抽象解释。
其中,判断所述约减处理得到的程序状态是否达到稳定包括:
若连续N次约减处理得到的程序状态相同,则确定所述约减处理得到的程序状态达到稳定,所述N为大于或等于2的正整数。
在一个实施例中,所述验证不满足所述目标安全属性的程序状态实例是否均无效包括:
通过所述智能合约的各接口执行对所述程序状态实例的形式化验证,以验证所述程序状态实例是否无效。
在另一个实施例中,所述获取不满足所述目标安全属性的程序状态实例包括:
从智能合约的不同接口的形式化验证产生的各程序状态中,确定不满足所述目标安全属性的程序状态实例。
根据第二方面,提供一种智能合约的验证装置,该装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011435380.3/2.html,转载请声明来源钻瓜专利网。





