智能合约的可信配置方法、装置、计算机设备及存储介质

文档序号:7946 发布日期:2021-09-17 浏览:32次 英文

智能合约的可信配置方法、装置、计算机设备及存储介质

技术领域

本申请涉及到区块链的智能合约领域,特别是涉及到一种智能合约的可信配置方法、装置、计算机设备及存储介质。

背景技术

现有技术中,智能合约所使用的变量参数都需要用ORACLE预言机输入,无论是软件预言机如网站链接,或者硬件预言机如物联网参数,其输入的参数存在运算不可信、数据可能被篡改等问题,造成目前的智能合约的合法性及可信度较低,同时,验证智能合约的合法性及可信度的成本较高。

发明内容

本申请的主要目的为提供一种智能合约的可信配置方法、装置、计算机设备及存储介质,旨在解决目前的智能合约的合法性及可信度较低的问题。

为了实现上述发明目的,本申请提出一种智能合约的可信配置方法,包括:

获取智能合约,所述智能合约中包含若干个待签名的合约变量;

获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方;

接收所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书;

若所述数字签名与数字证书均校验通过,执行所述智能合约。

进一步地,所述获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方之后,还包括:

获取待签名的合约变量的顺序关系;

按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方。

进一步地,所述按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方,包括:

将所述智能合约发送至第一授权参与方,所述第一授权参与方为第一顺序的合约变量的授权参与方;

当接收到所述第一授权参与方的授权信息后,将所述智能合约发送至第二授权参与方:所述第二授权参与方为第二顺序的合约变量的授权参与方,所述第一顺序的合约变量与第二顺序的合约变量为前后顺序关系。

进一步地,所述若所述数字签名与数字证书均校验通过,执行所述智能合约,包括:

按照所述顺序关系依次校验所述数字签名与数字证书;

若所述数字签名与数字证书均校验通过,执行所述智能合约。

进一步地,所述若所述数字签名与数字证书均校验通过,执行所述智能合约之后,还包括:

获取所述数字证书的有效时间;

选取所述有效时间的最小值,将所述最小值作为所述智能合约的有效时间;

当到达所述智能合约的有效时间后,暂停执行所述智能合约。

进一步地,所述暂停执行所述智能合约之后,还包括:

获取目标授权参与方;所述目标授权参与方为数字证书到达有效时间的授权参与方;

向所述目标授权参与方发送数字证书到达有效时间的提示信息。

进一步地,所述执行所述智能合约之后,还包括:

获取所述智能合约的执行结果;

将所述执行结果与所述智能合约及数字签名与数字证书在区块链网络中完成上链。

本申请还提供一种智能合约的可信配置装置,包括:

合约获取模块,用于获取智能合约,所述智能合约中包含若干个待签名的合约变量;

参与方获取模块,用于获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方;

签名获取模块,用于接收所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书;

校验执行模块,用于若所述数字签名与数字证书均校验通过,执行所述智能合约。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述智能合约的可信配置方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述智能合约的可信配置方法的步骤。

本申请例提供了一种可信智能合约的配置方法,首先获取智能合约,以及获取智能合约中包含的若干个待签名的合约变量,再从智能合约的合约内容中获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方,再接收每一个所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书,然后对所述授权参与方的数字签名与数字证书进行逐一校验,若所述数字签名与数字证书均校验通过,完整智能合约的可信认证,此时智能合约中的合约变量均具有真实性和可追溯性,每一个合约变量均有对应授权参与方的数字签名与数字证书的授权,保证了合约变量的真实、有效,然后执行所述智能合约,保证智能合约的运算的可信度,提高了智能合约的安全性与可靠性。

附图说明

图1为本申请智能合约的可信配置方法的一实施例流程示意图;

图2为本申请智能合约的可信配置方法的另一实施例流程示意图;

图3为本申请智能合约的可信配置装置的一实施例结构示意图;

图4为本申请计算机设备的一实施例结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请实施例提供一种智能合约的可信配置方法,包括步骤S10-S40,对于所述智能合约的可信配置方法的各个步骤的详细阐述如下。

S10、获取智能合约,所述智能合约中包含若干个待签名的合约变量。

本实施例中应用于基于区块链的智能合约应用场景,智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,通过制定一套合约规则,所述合约规则包括合约的执行过程以及预期执行结果,合约的执行过程中包含了若干个变量,该变量定义为合约变量,合约变量中包含有已确定的变量以及待确定的变量,所述已确定的变量为所有合约参与方确定,所述待确定的变量需要相关的合约参与方进行授权后才得以确定,将所述待确定的合约变量定义为待签名的合约变量。

S20、获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方。

本实施例中,在获取智能合约,并获取所述智能合约中包含的若干个待签名的合约变量后,根据所述智能合约的内容获取每个待签名的合约变量的关联信息,每个合约变量均有对应的合约参与方信息,将合约变量与参与方的关系定义为合约变量的关联信息,根据所述关联信息便可确定每一个合约变量的合约参与方,本实施例是筛选出待签名的合约变量,将待签名的合约变量的合约参与方定义为授权参与方,即该合约变量的变动需要所述授权参与方确认后,该合约变量才为有效的合约变量,例如,所述合约内容中包括“用户授权("甲方","数值变量,转出金额")”的内容,其中,待签名的合约变量为"数值变量,转出金额",授权参与方为"甲方"。

S30、接收所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书。

本实施例中,在获取了待签名的合约变量以及确定待签名的合约变量的授权参与方后,还要接收所述授权参与方针针对所述待签名的合约变量进行数字签名的授权信息,即每一个授权参与方可以查看所述智能合约的合约内容,从所述合约内容中可以查看到与自己相关的待签名的合约变量,然后授权参与方调用自己的数字签名与数字证书对所述待签名的合约变量进行数字签名,从而对所述待签名的合约变量进行授权,所述授权信息包含所述授权参与方的数字签名与数字证书,即为所述智能合约增加所述授权信息。

S40、若所述数字签名与数字证书均校验通过,执行所述智能合约。

本实施例中,在接收授权参与方针对所述待签名的合约变量进行数字签名的授权信息后,针对所述数字签名与数字证书进行逐一校验,首先验证所述数字证书与授权参与方是否匹配,若匹配则确定所述数字证书校验通过,再验证所述数字签名与授权参与方是否匹配,若匹配则确定所述数字签名校验通过,只有当所述数字签名与数字证书均校验通过,完成所述待签名的合约变量的认证,完成智能合约的认证,然后执行所述智能合约。本实施例中,若所述智能合约的授权参与方为一个,则当该授权参与方的数字签名与数字证书均校验通过后,则完成智能合约的认证;若所述智能合约的授权参与方为至少两个,当所有授权参与方的数字签名与数字证书均校验通过后,才完成智能合约的认证。

本实施例提供了一种可信智能合约的配置方法,首先获取智能合约,以及获取智能合约中包含的若干个待签名的合约变量,再从智能合约的合约内容中获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方,再接收每一个所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书,然后对所述授权参与方的数字签名与数字证书进行逐一校验,若所述数字签名与数字证书均校验通过,完整智能合约的可信认证,此时智能合约中的合约变量均具有真实性和可追溯性,每一个合约变量均有对应授权参与方的数字签名与数字证书的授权,保证了合约变量的真实、有效,然后执行所述智能合约,保证智能合约的运算的可信度,提高了智能合约的安全性与可靠性。

在一个实施例中,所述获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方之后,还包括:

获取待签名的合约变量的顺序关系;

按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方。

本实施例中,智能合约在执行的过程中,各个合约变量的执行有着先后顺序,并且不同的合约变量存在相互影响的现象,即当一个合约变量确定后,才能确定下一个合约变量,在获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方之后,获取待签名的合约变量的顺序关系,即各待签名的合约变量的影响顺序,按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方,例如待签名的合约变量A、B、C、D,其中,待签名的合约变量A、B为前后顺序关系,待签名的合约变量A、C、D为平级顺序关系,因此按照所述顺序关系先将所述智能合约发送至A、C、D,再将所述智能合约发送至B,具体的,当接收到授权参与方针对所述待签名的合约变量A进行数字签名的授权信息后,才将所述智能合约发送至待签名的合约变量B的授权参与方。

在一个实施例中,所述按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方,包括:

将所述智能合约发送至第一授权参与方,所述第一授权参与方为第一顺序的合约变量的授权参与方;

当接收到所述第一授权参与方的授权信息后,将所述智能合约发送至第二授权参与方:所述第二授权参与方为第二顺序的合约变量的授权参与方,所述第一顺序的合约变量与第二顺序的合约变量为前后顺序关系。

本实施例中,在上述实施例的基础上,在按照按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方时,由于合约变量存在着顺序关系,不同合约变量所关联的授权参与方亦存在着顺序关系,定义第一授权参与方与第二授权参与方,然后将所述智能合约发送至第一授权参与方,所述第一授权参与方为第一顺序的合约变量的授权参与方,其中,所述第一授权参与方为第一顺序的合约变量的授权参与方,然后,再等待第一授权参与方针对所述第一顺序的合约变量的授权信息,当接收到所述第一授权参与方的授权信息后,将所述智能合约发送至第二授权参与方:所述第二授权参与方为第二顺序的合约变量的授权参与方,所述第一顺序的合约变量与第二顺序的合约变量为前后顺序关系,例如待签名的合约变量A、B为前后顺序关系,其中合约变量A为第一顺序,合约变量B为第二顺序,按照所述顺序关系先将所述智能合约发送至合约变量A对应的第一授权参与方,当接收到第一授权参与方针对所述待签名的合约变量A进行数字签名的授权信息后,才将所述智能合约发送至待签名的合约变量B的第二授权参与方,完成合约变量的先后授权关系,保证每一个合约变量均为有效、合法的合约变量。

在一个实施例中,所述若所述数字签名与数字证书均校验通过,执行所述智能合约,包括:

按照所述顺序关系依次校验所述数字签名与数字证书;

若所述数字签名与数字证书均校验通过,执行所述智能合约。

本实施例中,在校验授权参与方的数字签名与数字证书时,由于授权参与方针对合约变量的授权信息有着顺序关系,按照按照所述顺序关系依次校验所述数字签名与数字证书,即先校验顺序在前的授权参与方的数字签名与数字证书,若校验通过,再校验顺序在后的授权参与方,直到所有授权参与方的数字签名与数字证书均校验通过,则确认所述智能合约中的各个合约变量为合法、有效的合约变量,确认所述智能合约生效,然后执行所述智能合约;若校验顺序在前的授权参与方的数字签名与数字证书不通过,此时则不再校验处于该授权参与方顺序之后的其他授权参与方,减少校验的计算量,避免无效的校验所耗费的资源。

在一个实施例中,如图2所示,所述若所述数字签名与数字证书均校验通过,执行所述智能合约之后,还包括:

S51:获取所述数字证书的有效时间;

S52:选取所述有效时间的最小值,将所述最小值作为所述智能合约的有效时间;

S53:当到达所述智能合约的有效时间后,暂停执行所述智能合约。

本实施例中,在所述数字签名与数字证书均校验通过,确认所述智能合约为合法、有效的智能合约后,获取所述数字证书的有效时间,由于不同授权参与方的数字证书的有效时间不相同,因此需要根据不同授权参与方的数字证书的有效时间确定智能合约的有效时间,在一种实施方式中,选取所述有效时间的最小值,将所述最小值作为所述智能合约的有效时间,当所述智能合约到达所述最小值的有效时间后,所述智能合约则视为不合法、无效的智能合约,此时智能合约暂停执行,通过根据数字证书的有效时间确定智能合约的有效时间,能够避免智能合约超出有效的时间后仍执行,提高智能合约执行的合法性。

在一个实施例中,所述暂停执行所述智能合约之后,还包括:

获取目标授权参与方;所述目标授权参与方为数字证书到达有效时间的授权参与方;

向所述目标授权参与方发送数字证书到达有效时间的提示信息。

本实施例中,在暂停执行所述智能合约之后,需要向数字证书到达有效时间的授权参与方发送提示信息,具体的,获取目标授权参与方;所述目标授权参与方为数字证书到达有效时间的授权参与方,然后向所述目标授权参与方发送数字证书到达有效时间的提示信息,通过所述提示信息提醒数字证书到达有效时间的目标授权参与方,更新其数字证书或延期其数字证书,保证智能合约能够及时恢复有效性。

在一个实施例中,所述执行所述智能合约之后,还包括:

获取所述智能合约的执行结果;

将所述执行结果与所述智能合约及数字签名与数字证书在区块链网络中完成上链。

本实施例中,在执行所述智能合约之后,获得每一次智能合约的执行结果,当每一次得到执行结果后,将所述执行结果与所述智能合约及数字签名与数字证书在区块链网络中完成上链,上链后的智能合约及每一次的执行结果,均为校验过的合法有效的,且公开及不可篡改,保证了对智能合约中每一个过程的数据追溯,提高了智能合约的实用性。

参照图3,本申请还提供一种智能合约的可信配置装置,包括:

合约获取模块10,用于获取智能合约,所述智能合约中包含若干个待签名的合约变量;

参与方获取模块20,用于获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方;

签名获取模块30,用于接收所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书;

校验执行模块40,用于若所述数字签名与数字证书均校验通过,执行所述智能合约。

如上所述,可以理解地,本申请中提出的所述智能合约的可信配置装置的各组成部分可以实现如上所述智能合约的可信配置方法任一项的功能。

在一个实施例中,所述参与方获取模块20还包括执行:

获取待签名的合约变量的顺序关系;

按照所述顺序关系将智能合约依次发送至所述待签名的合约变量的授权参与方。

在一个实施例中,所述参与方获取模块20还包括执行:

将所述智能合约发送至第一授权参与方,所述第一授权参与方为第一顺序的合约变量的授权参与方;

当接收到所述第一授权参与方的授权信息后,将所述智能合约发送至第二授权参与方:所述第二授权参与方为第二顺序的合约变量的授权参与方,所述第一顺序的合约变量与第二顺序的合约变量为前后顺序关系。

在一个实施例中,所述校验执行模块40还包括执行:

按照所述顺序关系依次校验所述数字签名与数字证书;

若所述数字签名与数字证书均校验通过,执行所述智能合约。

在一个实施例中,所述校验执行模块40还包括执行:

获取所述数字证书的有效时间;

选取所述有效时间的最小值,将所述最小值作为所述智能合约的有效时间;

当到达所述智能合约的有效时间后,暂停执行所述智能合约。

在一个实施例中,所述校验执行模块40还包括执行:

获取目标授权参与方;所述目标授权参与方为数字证书到达有效时间的授权参与方;

向所述目标授权参与方发送数字证书到达有效时间的提示信息。

在一个实施例中,所述装置还包括上链模块,用于执行:

获取所述智能合约的执行结果;

将所述执行结果与所述智能合约及数字签名与数字证书在区块链网络中完成上链。

参照图4,本申请实施例中还提供一种计算机设备,该计算机设备可以是移动终端,其内部结构可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和显示装置及输入装置。其中,该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的输入装置用于接收用户的输入。该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质。该存储介质存储有操作系统、计算机程序和数据库。该计算机设备的数据库用于存放数据。该计算机程序被处理器执行时以实现一种智能合约的可信配置方法。

上述处理器执行上述的智能合约的可信配置方法,包括:获取智能合约,所述智能合约中包含若干个待签名的合约变量;获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方;接收所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书;若所述数字签名与数字证书均校验通过,执行所述智能合约。所述计算机设备提供了一种智能合约的可信配置方法,首先获取智能合约,以及获取智能合约中包含的若干个待签名的合约变量,再从智能合约的合约内容中获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方,再接收每一个所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书,然后对所述授权参与方的数字签名与数字证书进行逐一校验,若所述数字签名与数字证书均校验通过,完整智能合约的可信认证,此时智能合约中的合约变量均具有真实性和可追溯性,每一个合约变量均有对应授权参与方的数字签名与数字证书的授权,保证了合约变量的真实、有效,然后执行所述智能合约,保证智能合约的运算的可信度,提高了智能合约的安全性与可靠性。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被所述处理器执行时实现一种智能合约的可信配置方法,包括步骤:获取智能合约,所述智能合约中包含若干个待签名的合约变量;获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方;接收所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书;若所述数字签名与数字证书均校验通过,执行所述智能合约。

所述计算机可读存储介质提供了一种可信智能合约的配置方法,首先获取智能合约,以及获取智能合约中包含的若干个待签名的合约变量,再从智能合约的合约内容中获取每个待签名的合约变量的关联信息,根据所述关联信息确定每个所述待签名的合约变量的授权参与方,再接收每一个所述授权参与方针对所述待签名的合约变量进行数字签名的授权信息,所述授权信息包含所述授权参与方的数字签名与数字证书,然后对所述授权参与方的数字签名与数字证书进行逐一校验,若所述数字签名与数字证书均校验通过,完整智能合约的可信认证,此时智能合约中的合约变量均具有真实性和可追溯性,每一个合约变量均有对应授权参与方的数字签名与数字证书的授权,保证了合约变量的真实、有效,然后执行所述智能合约,保证智能合约的运算的可信度,提高了智能合约的安全性与可靠性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。

本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。

非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围。

凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种基于人机协同的规模化Fuzzing优化系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类