智能合约执行方法、装置、设备、存储介质和程序产品制造方法及图纸

技术编号:39293537 阅读:9 留言:0更新日期:2023-11-07 11:01
本申请涉及一种智能合约执行方法、装置、设备、存储介质和程序产品,涉及区块链技术领域。该方法包括:通过目标节点监测区块高度,在区块链系统每新增一个区块的情况下,通过合约引擎执行当前区块高度下的自动执行的智能合约。其中,目标节点表示区块链系统中的任一节点,智能合约存储于区块链系统内的目标预编译合约中。采用本方法能够提升区块链系统自动执行智能合约的安全性。行智能合约的安全性。行智能合约的安全性。

【技术实现步骤摘要】
智能合约执行方法、装置、设备、存储介质和程序产品


[0001]本申请涉及区块链
,特别是涉及一种智能合约执行方法、装置、设备、存储介质和程序产品。

技术介绍

[0002]随着区块链技术在多个领域的发展,智能合约作为区块链的重要应用之一,也随之得到了广泛的应用。在实际业务场景中,为满足业务需求,通常需要定时自动执行智能合约。
[0003]相关技术中,为自动执行智能合约,通常是在区块链外部设置第三方程序,并通过执行第三方程序来判断智能合约的执行条件,若满足执行条件时,则构造事务以触发智能合约运行。
[0004]然而,相关技术中区块链系统自动执行智能合约的方式存在安全性较低的问题。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种能够提升区块链系统安全性的智能合约执行方法、装置、设备、存储介质和程序产品。
[0006]第一方面,本申请提供了一种智能合约执行方法。该方法包括:
[0007]目标节点监测区块高度;目标节点表示区块链系统中的任一节点;
[0008]在区块链系统每新增一个区块的情况下,目标节点通过合约引擎执行当前区块高度下的自动执行的智能合约;智能合约存储于区块链系统内的目标预编译合约中。
[0009]在其中一个实施例中,目标预编译合约中存储有区块链系统中的智能合约列表;目标节点通过合约引擎执行当前区块高度下的自动执行的智能合约,包括:
[0010]目标节点通过合约引擎从目标预编译合约中获取智能合约列表;智能合约列表包括至少一个自动执行的智能合约;
[0011]目标节点执行智能合约列表中的各智能合约。
[0012]在其中一个实施例中,目标节点执行智能合约列表中的各智能合约,包括:
[0013]目标节点获取智能合约列表中的前置智能合约和后置智能合约;前置智能合约表示执行区块事务前执行的合约;后置智能合约表示执行区块事务后执行的合约;
[0014]目标节点按照各智能合约预设的执行顺序,分别执行前置智能合约中各智能合约和后置智能合约中的各智能合约。
[0015]在其中一个实施例中,该方法还包括:
[0016]目标节点通过更新初始状态哈希值,生成当前区块的状态哈希值;状态哈希值包括正常状态哈希值和增强状态哈希值;正常状态哈希值是根据目标节点执行区块事务得到的;增强状态哈希值是根据目标节点执行区块事务以及自动执行各智能合约得到的;
[0017]目标节点向区块链系统中其他节点发送状态哈希值,以指示其他节点对状态哈希值进行验证;
[0018]若其他节点对状态哈希值验证通过,则更新区块链系统中的所有节点的全局状态。
[0019]在其中一个实施例中,目标节点向区块链系统中其他节点发送状态哈希值,以指示其他节点对状态哈希值进行验证,包括:
[0020]对于其他节点中任一个节点,若节点支持执行当前区块高度下的自动执行的智能合约,则对增强状态哈希值进行验证;
[0021]若节点不支持执行当前区块高度下的自动执行的智能合约,则对正常状态哈希值进行验证。
[0022]在其中一个实施例中,目标预编译合约包括智能合约修改接口、顺序修改接口和合约处理手续费代理地址修改接口;智能合约修改接口用于增加或者删除目标预编译合约中的智能合约;顺序修改接口用于调整目标预编译合约中的智能合约的执行顺序;合约处理手续费代理地址修改接口用于修改目标预编译合约中的智能合约的合约处理手续费代理地址。
[0023]第二方面,本申请还提供了一种智能合约执行装置。该装置包括:
[0024]区块监测模块,用于监测区块高度;
[0025]合约执行模块,用于在区块链系统每新增一个区块的情况下,通过合约引擎执行当前区块高度下的自动执行的智能合约;智能合约存储于区块链系统内的目标预编译合约中。
[0026]第三方面,本申请还提供了一种计算机设备。该计算机设备包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述第一方面中任一项实施例中的方法的步骤。
[0027]第四方面,本申请还提供了一种计算机可读存储介质。该计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一项实施例中的方法的步骤。
[0028]第五方面,本申请还提供了一种计算机程序产品。该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面中任一项实施例中的方法的步骤。
[0029]上述智能合约执行方法、装置、设备、存储介质和程序产品,通过目标节点监测区块高度,在区块链系统每新增一个区块的情况下,通过合约引擎执行当前区块高度下的自动执行的智能合约。其中,目标节点表示区块链系统中的任一节点,智能合约存储于区块链系统内的目标预编译合约中。该方法中,区块链系统中的任一节点监测区块高度,并在每新增一个区块的情况下,执行区块链系统内目标预编译合约中的智能合约,相当于在智能合约的执行过程中,区块高度的监测、智能合约执行条件的判定以及智能合约的获取,均是由目标节点负责的,也就是说,智能合约的整体执行流程是在区块链系统内部进行的,这样的执行方式考虑并隔离了区块链系统外部第三方程序对执行过程的影响,能够在一定程度上提升区块链系统执行智能合约的安全性。
附图说明
[0030]图1为一个实施例中计算机设备的内部结构图;
[0031]图2为一个实施例中智能合约执行方法的流程示意图;
[0032]图3为一个实施例中智能合约列表执行步骤的流程示意图;
[0033]图4为另一个实施例中智能合约列表执行步骤的流程示意图;
[0034]图5为另一个实施例中智能合约执行方法的流程示意图;
[0035]图6为一个实施例中智能合约执行装置的结构框图。
具体实施方式
[0036]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0037]本申请实施例提供的智能合约执行方法,可以应用于计算机设备中,该计算机设备可以是服务器,其内部结构图可以如图1所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能合约执行数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种智能合约执行方法。...

【技术保护点】

【技术特征摘要】
1.一种智能合约执行方法,其特征在于,所述方法包括:目标节点监测区块高度;所述目标节点表示区块链系统中的任一节点;在所述区块链系统每新增一个区块的情况下,所述目标节点通过合约引擎执行当前区块高度下的自动执行的智能合约;所述智能合约存储于所述区块链系统内的目标预编译合约中。2.根据权利要求1所述的方法,其特征在于,所述目标预编译合约中存储有所述区块链系统中的智能合约列表;所述目标节点通过合约引擎执行当前区块高度下的自动执行的智能合约,包括:所述目标节点通过所述合约引擎从所述目标预编译合约中获取所述智能合约列表;所述智能合约列表包括至少一个自动执行的智能合约;所述目标节点执行所述智能合约列表中的各智能合约。3.根据权利要求2所述的方法,其特征在于,所述目标节点执行所述智能合约列表中的各智能合约,包括:所述目标节点获取所述智能合约列表中的前置智能合约和后置智能合约;所述前置智能合约表示执行区块事务前执行的合约;所述后置智能合约表示执行区块事务后执行的合约;所述目标节点按照各智能合约预设的执行顺序,分别执行所述前置智能合约中各智能合约和所述后置智能合约中的各智能合约。4.根据权利要求1

3任一项所述的方法,其特征在于,所述方法还包括:所述目标节点通过更新初始状态哈希值,生成当前区块的状态哈希值;所述状态哈希值包括正常状态哈希值和增强状态哈希值;所述正常状态哈希值是根据所述目标节点执行区块事务得到的;所述增强状态哈希值是根据所述目标节点执行区块事务以及自动执行各所述智能合约得到的;所述目标节点向所述区块链系统中其他节点发送所述状态哈希值,以指示所述其他节点对所述状态哈希值进行验证;若所述其他节点对所述状态哈希值验证通过,则更新所述区...

【专利技术属性】
技术研发人员:魏吉星王家恒乐煜炜
申请(专利权)人:网络通信与安全紫金山实验室
类型:发明
国别省市:

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

1