智能合约的验证方法和装置制造方法及图纸

技术编号:27032724 阅读:22 留言:0更新日期:2021-01-12 11:16
本说明书实施例提供了一种智能合约的验证方法和装置。根据该实施例的方法,首先,分别对智能合约的每一个接口进行目标安全属性的形式化验证;然后对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;之后,若约减处理得到的程序状态不满足所述目标安全属性,则获取不满足所述目标安全属性的程序状态实例;验证不满足所述目标安全属性的程序状态实例是否均无效,如果否,则所述目标安全属性验证失败。

【技术实现步骤摘要】
智能合约的验证方法和装置
本说明书一个或多个实施例涉及计算机应用
,特别涉及区块链
中智能合约的验证方法和装置。
技术介绍
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。在区块链
中智能合约是一组以数字形式指定的承诺,包括各方在其中履行这些承诺的协议。由于区块链平台的特殊性,智能合约对平台上的参与方来说是完全透明的,而且一旦部署很难被更改。因此在智能合约部署前确保其安全性和正确性就变得十分必要。
技术实现思路
本说明书一个或多个实施例描述了一种智能合约的验证方法和装置,以实现对智能合约的验证。根据第一方面,提供了一种智能合约的验证方法,该方法包括:对智能合约的每一个接口进行目标安全属性的形式化验证;对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;若约减处理得到的程序状态不满足所述目标安全属性,则获取不满足所述目标安全属性的程序状态实例;验证不满足所述目标安全属性的程序状态实例是否均无效,如果否,则所述目标安全属性验证失败。在一个实施例中,该方法还包括:若约减处理得到的程序状态满足所述目标安全属性,则基于约减处理得到的程序状态,继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。在另一个实施例中,该方法还包括:若验证得到不满足所述目标安全属性的程序状态实例均无效,则将该无效的程序状态实例从所述约减处理得到的程序状态中排除,继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。在一个实施例中,在所述转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证之前,还包括:判断所述约减处理得到的程序状态是否达到稳定;如果是,则所述目标安全属性验证通过,结束对所述目标安全属性的验证;否则,基于约减处理得到的程序状态继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。在另一个实施例中,所述约减处理包括程序分析技术中的抽象解释。其中,判断所述约减处理得到的程序状态是否达到稳定包括:若连续N次约减处理得到的程序状态相同,则确定所述约减处理得到的程序状态达到稳定,所述N为大于或等于2的正整数。在一个实施例中,所述验证不满足所述目标安全属性的程序状态实例是否均无效包括:通过所述智能合约的各接口执行对所述程序状态实例的形式化验证,以验证所述程序状态实例是否无效。在另一个实施例中,所述获取不满足所述目标安全属性的程序状态实例包括:从智能合约的不同接口的形式化验证产生的各程序状态中,确定不满足所述目标安全属性的程序状态实例。根据第二方面,提供一种智能合约的验证装置,该装置包括:形式化验证单元,被配置为对智能合约每一个接口进行目标安全属性的形式化验证;约减处理单元,被配置为对各智能合约的不同接口的形式化验证产生的程序状态进行约减处理;状态判别单元,被配置为判断所述约减处理单元约减处理得到的程序状态是否满足所述目标安全属性;实例验证单元,被配置为若所述状态判别单元的判断结果为否,则获取不满足所述目标安全属性的程序状态实例;验证不满足所述目标安全属性的程序状态实例是否均无效;结果确定单元,被配置为若所述实例验证单元的验证结果为否,则确定所述目标安全属性验证失败。在一个实施例中,所述形式化验证单元,进一步被配置为若所述状态判别单元判断出所述约减处理得到的程序状态满足所述目标安全属性,则基于约减处理得到的程序状态,继续对智能合约的每一个接口进行目标安全属性的形式化验证。在一个实施例中,所述形式化验证单元,进一步被配置为若所述实例验证单元的验证结果为是,则将该无效的程序状态实例从所述约减处理得到的程序状态中排除,继续对智能合约的每一个接口进行目标安全属性的形式化验证。在另一个实施例中,所述状态判别单元,进一步被配置为若判断出所述约减处理单元约减处理得到的程序状态满足所述目标安全属性,则进一步判断所述约减处理得到的程序状态是否达到稳定,如果否,触发所述形式化验证单元基于约减处理得到的程序状态,继续对智能合约的每一个接口进行目标安全属性的形式化验证;所述结果确定单元,进一步被配置为若所述状态判别单元判断出所述约减处理得到的程序状态是否达到稳定,则确定所述目标安全属性验证通过。在一个实施例中,所述约减处理包括程序分析技术中的抽象解释。在另一个实施例中,所述状态判别单元,具体被配置为若连续N次约减处理得到的程序状态相同,则确定所述约减处理得到的程序状态达到稳定,所述N为大于或等于2的正整数。在一个实施例中,所述实例验证单元,具体被配置为通过所述智能合约的各接口执行对所述程序状态实例的形式化验证,以验证所述程序状态实例是否无效。在另一个实施例中,所述实例验证单元在获取不满足所述目标安全属性的程序状态实例时,具体被配置为从智能合约的不同接口的形式化验证产生的各程序状态中,确定不满足所述目标安全属性的程序状态实例。根据第三方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。根据本说明书实施例提供的方法和装置,通过对智能合约各接口的目标安全属性进行形式化验证和约减处理相结合,并进一步验证出不满足目标安全属性的程序状态实例均无效时,确定目标安全属性验证失败,从而实现对智能合约的验证。基于此,可以保证部署的智能合约的安全性和正确性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出根据一个实施例的智能合约的验证方法的流程图;图2示出根据另一个实施例的智能合约的验证方法的流程图;图3示出根据一个实施例的智能合约的验证装置的示意性框图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。随着区块链技术的兴起,智能合约由于存在一旦部署难以更改且通常承载着较高经济价值的特点,需要确保其安全性和正确性。目前业界基于测试方案来验证智能合约的方式无法保证正确性和安全性。因为测试方案是列举若干实例来验证智能合约,容易产生误报和漏报。本说明书中,考虑到智能合约在确保其安全性和正确性时,关键点在于验证智能合约的安全属性是否正确。也就是说,需要对智能合约的安全属性进行验证,以确定是否验证通过。因此,采用了形式化验证方式和对程序状态进行约减处理的方式,找出不满足目标安全属性的程序状态实例,并进一步对这些程序状态实例的有效性进行验证来确定目标安全属性是否验证通过。这种方式降低了误报和漏报的情况,提高了智能合约的正确性本文档来自技高网...

【技术保护点】
1.智能合约的验证方法,包括:/n对智能合约的每一个接口进行目标安全属性的形式化验证;/n对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;/n若约减处理得到的程序状态不满足所述目标安全属性,则获取不满足所述目标安全属性的程序状态实例;/n验证不满足所述目标安全属性的程序状态实例是否均无效,如果否,则所述目标安全属性验证失败。/n

【技术特征摘要】
1.智能合约的验证方法,包括:
对智能合约的每一个接口进行目标安全属性的形式化验证;
对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;
若约减处理得到的程序状态不满足所述目标安全属性,则获取不满足所述目标安全属性的程序状态实例;
验证不满足所述目标安全属性的程序状态实例是否均无效,如果否,则所述目标安全属性验证失败。


2.根据权利要求1所述的方法,还包括:
若约减处理得到的程序状态满足所述目标安全属性,则基于约减处理得到的程序状态,继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。


3.根据权利要求1所述的方法,还包括:
若验证得到不满足所述目标安全属性的程序状态实例均无效,则将该无效的程序状态实例从所述约减处理得到的程序状态中排除,继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。


4.根据权利要求2所述的方法,在所述转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证之前,还包括:
判断所述约减处理得到的程序状态是否达到稳定;
如果是,则所述目标安全属性验证通过,结束对所述目标安全属性的验证;
否则,基于约减处理得到的程序状态继续转至执行所述对智能合约的每一个接口进行目标安全属性的形式化验证。


5.根据权利要求1所述的方法,其中,所述约减处理包括程序分析技术中的抽象解释。


6.根据权利要求4所述的方法,其中,判断所述约减处理得到的程序状态是否达到稳定包括:
若连续N次约减处理得到的程序状态相同,则确定所述约减处理得到的程序状态达到稳定,所述N为大于或等于2的正整数。


7.根据权利要求1所述的方法,其中,所述验证不满足所述目标安全属性的程序状态实例是否均无效包括:
通过所述智能合约的各接口执行对所述程序状态实例的形式化验证,以验证所述程序状态实例是否均无效。


8.根据权利要求1至7中任一所述的方法,其中,所述获取不满足所述目标安全属性的程序状态实例包括:
从智能合约的不同接口的形式化验证产生的程序状态中,确定不满足所述目标安全属性的程序状态实例。


9.智能合约的验证装置,包括:
形式化验证单元,被配置为对智能合约的每一个接口进行目标安全属性的形式化验证;
约减处理单元,被配置为对智能合约的不同接口的形式化验证产生的程序状态进行约减处理;
状态判别单元,被配置为判断所述约减处理单元约减处理得到的程序状态是否满足所述目标...

【专利技术属性】
技术研发人员:邬萌王海军
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1