智能合约执行方法、装置、存储介质及电子设备制造方法及图纸

技术编号:30315728 阅读:36 留言:0更新日期:2021-10-09 23:04
本公开涉及一种智能合约执行方法、装置、存储介质及电子设备,所述方法包括:响应于接收到合约调用请求,根据所述合约调用请求中的调用参数确定与所述合约调用请求相对应的功能需求;从区块链中获取对应于所述功能需求的二进制资源,所述二进制资源是通过对第三方功能组件进行转化得到的;将获取到的所述二进制资源转化为可执行文件;执行所述可执行文件,以满足所述功能需求。通过这样的方式,在面临相关的功能需求时,无需在智能合约中编写相应的功能代码,而可以通过调用第三方功能组件的二进制资源的方式实现所述功能。也就是说,可以通过上述技术方案丰富智能合约的功能。以通过上述技术方案丰富智能合约的功能。以通过上述技术方案丰富智能合约的功能。

【技术实现步骤摘要】
智能合约执行方法、装置、存储介质及电子设备


[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]通过如下计算式计算数字摘要m所对应的密文c
m

[0027]c
m
=E(m,r)=g
m
r
t
modt2,r∈Z
n

[0028]所述对每一所述密文求和,包括:通过如下计算式计算同态校验和c:
[0029][0030]其中,所述目标同态加密密钥为(t,g,r),i为数字摘要的数量值,x∈[1,i]且x为整数,mod为求余函数,Z
n
为整数域。
[0031]可选地,所述目标同态加密密钥通过如下方式确定:
[0032]随机确定第一质数以及第二质数,所述第一质数以及所述第二质数的位数相同,且所述第一质数以及所述第二质数的位数大于位数阈值;
[0033]将所述第一质数和所述第二质数的乘积作为所述目标同态加密密钥中的参数t;
[0034]确定目标随机整数作为所述目标同态加密密钥中的参数g,其中,且参数t整除参数g的阶,为剩余系下存在乘法逆元;
[0035]从Z
n
中确定随机数作为所述目标同态加密密钥中的参数r。
[0036]可选地,所述从区块链中获取对应于所述功能需求的二进制资源,包括:
[0037]在所述二进制资源的容量大于内存容量阈值时,将所述二进制资源分割为多个二进制资源分片;
[0038]依次将所述二进制资源分片加载至内存中进行释放。
[0039]根据本公开实施例的第二方面,提供一种智能合约执行装置,包括:
[0040]确定模块,用于响应于接收到合约调用请求,根据所述合约调用请求中的调用参数确定与所述合约调用请求相对应的功能需求;
[0041]资源获取模块,用于从区块链中获取对应于所述功能需求的二进制资源,所述二进制资源是通过对第三方功能组件进行转化得到的;
[0042]第一资源转化模块,用于将获取到的所述二进制资源转化为可执行文件;
[0043]执行模块,用于执行所述可执行文件,以满足所述功能需求。
[0044]可选地,所述装置还包括:
[0045]功能组件获取模块,用于在所述确定模块确定与所述合约调用请求相对应的功能需求之前,获取所述第三方功能组件;
[0046]第二资源转化模块,用于将所述第三方功能组件的可执行文件转化为二进制资
源;
[0047]资源存储模块,用于将所述二进制资源保存至区块链中;
[0048]记录模块,用于记录所述二进制资源的存储位置信息。
[0049]可选地,所述资源存储模块,包括:
[0050]资源分割子模块,用于在所述二进制资源的容量大于区块容量阈值时,将所述二进制资源分割为多个资源分片;
[0051]资源保存子模块,用于将每一所述资源分片保存至区块链中;
[0052]其中,所述存储位置信息包括目标资源分片所处的区块与所述目标资源分片的上一资源分片所处的区块之间的偏移量,所述目标资源分片为所述多个资源分片中的、除第一个资源分片之外的任意资源分片。
[0053]可选地,所述二进制资源包括多个资源分片,所述合约中包括同态校验字段以及同态校验和,所述同态校验字段包括每一所述资源分片的数字摘要,所述同态校验和通过如下方式确定:针对每一所述数字摘要,基于目标同态加密密钥计算该数字摘要所对应的密文;对每一所述密文求和,得到所述同态校验和;
[0054]所述装置还包括:
[0055]计算模块,用于在所述资源获取模块从区块链中获取对应于所述功能需求的二进制资源之前,根据拥有的同态加密密钥以及所述同态校验字段计算目标同态校验和;
[0056]校验和确定模块,用于确定所述目标同态校验和与所述合约中保存的同态校验和一致。
[0057]可选地,所述针对每一所述数字摘要,基于同态加密密本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约执行方法,其特征在于,包括:响应于接收到合约调用请求,根据所述合约调用请求中的调用参数确定与所述合约调用请求相对应的功能需求;从区块链中获取对应于所述功能需求的二进制资源,所述二进制资源是通过对第三方功能组件进行转化得到的;将获取到的所述二进制资源转化为可执行文件;执行所述可执行文件,以满足所述功能需求。2.根据权利要求1所述的方法,其特征在于,所述响应于接收到合约调用请求,根据所述合约调用请求中的调用参数确定与所述合约调用请求相对应的功能需求之前,还包括:获取所述第三方功能组件;将所述第三方功能组件的可执行文件转化为二进制资源;将所述二进制资源保存至区块链中;记录所述二进制资源的存储位置信息。3.根据权利要求2所述的方法,其特征在于,所述将所述二进制资源保存至区块链中,包括:在所述二进制资源的容量大于区块容量阈值时,将所述二进制资源分割为多个资源分片;将每一所述资源分片保存至区块链中;其中,所述存储位置信息包括目标资源分片所处的区块与所述目标资源分片的上一资源分片所处的区块之间的偏移量,所述目标资源分片为所述多个资源分片中的、除第一个资源分片之外的任意资源分片。4.根据权利要求1所述的方法,其特征在于,所述二进制资源包括多个资源分片,所述合约中包括同态校验字段以及同态校验和,所述同态校验字段包括每一所述资源分片的数字摘要,所述同态校验和通过如下方式确定:针对每一所述数字摘要,基于目标同态加密密钥计算该数字摘要所对应的密文;对每一所述密文求和,得到所述同态校验和;所述从区块链中获取对应于所述功能需求的二进制资源之前,还包括:根据拥有的同态加密密钥以及所述同态校验字段计算目标同态校验和;确定所述目标同态校验和与所述合约中保存的同态校验和一致。5.根据权利要求4所述的方法,其特征在于,所述针对每一所述数字摘要,基于同态加密密钥计算该数字摘要所对应的密文,包括:通过如下计算式计算数字摘要m所对应的密文c
m
:c
m
=E(m,r)=g
m
...

【专利技术属性】
技术研发人员:刘思瀚王诗鈞徐石成何光宇
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:

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

1