【技术实现步骤摘要】
调用合约的方法及装置
本说明书一个或多个实施例涉及可验证计算
,尤其涉及一种调用合约的方法及装置。
技术介绍
在相关技术中,针对各种场景下的隐私需求,一种方式是通过同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等加密技术实现隐私保护,但也随之带来了严重的性能损失。可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种调用合约的方法及装置。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种调用合约的方法,包括:数据使用方生 ...
【技术保护点】
1.一种调用合约的方法,包括:/n数据使用方生成针对链下合约的调用请求,所述调用请求中包含通过对目标明文数据进行加密得到的目标密文数据和针对所述目标明文数据的使用权的可验证声明;/n所述数据使用方通过区块链的预言机机制向部署有所述链下合约的链下隐私计算节点提交所述调用请求,所述调用请求用于指示所述链下隐私计算节点在调用条件被满足的情况下,在所述链下隐私计算节点创建的链下可信执行环境内执行所述链下合约以对所述目标明文数据进行处理,所述调用条件包括根据所述可验证声明确定出所述目标明文数据的数据拥有方向所述数据使用方授予了所述使用权。/n
【技术特征摘要】
1.一种调用合约的方法,包括:
数据使用方生成针对链下合约的调用请求,所述调用请求中包含通过对目标明文数据进行加密得到的目标密文数据和针对所述目标明文数据的使用权的可验证声明;
所述数据使用方通过区块链的预言机机制向部署有所述链下合约的链下隐私计算节点提交所述调用请求,所述调用请求用于指示所述链下隐私计算节点在调用条件被满足的情况下,在所述链下隐私计算节点创建的链下可信执行环境内执行所述链下合约以对所述目标明文数据进行处理,所述调用条件包括根据所述可验证声明确定出所述目标明文数据的数据拥有方向所述数据使用方授予了所述使用权。
2.根据权利要求1所述的方法,所述数据使用方通过区块链的预言机机制向部署有所述链下合约的链下隐私计算节点提交所述调用请求,包括:
所述数据使用方向区块链网络提交链下合约调用交易,所述链下合约调用交易中包含所述调用请求,所述链下合约调用交易用于指示所述区块链网络中的区块链节点调用预言机合约产生包含所述调用请求的合约事件,所述调用请求由链下的预言机服务器在监听到所述合约事件的情况下获取,并传输至所述链下隐私计算节点。
3.根据权利要求2所述的方法,执行所述链下合约得到的执行结果被所述链下隐私计算节点返回至所述预言机服务器,并由所述预言机服务器传输至所述所述预言机合约,以由所述区块链网络中的区块链节点获取。
4.根据权利要求1所述的方法,所述数据使用方通过区块链的预言机机制向部署有所述链下合约的链下隐私计算节点提交所述调用请求,包括:
所述数据使用方向区块链节点提交所述调用请求,由所述区块链节点通过所述预言机机制向所述链下隐私计算节点转发所述调用请求;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述数据使用方向区块链节点提交所述调用请求,由所述区块链节点通过所述预言机机制向所述链下隐私计算集群的控制节点转发所述调用请求,所述调用请求由所述控制节点转发至所述链下隐私计算节点。
5.根据权利要求1所述的方法,在以下校验操作均通过的情况下,所述链下隐私计算节点确定出所述数据拥有方向所述数据使用方授予了所述使用权:
针对所述调用请求中记录的所述数据拥有方的身份的第一真实性校验操作、针对所述调用请求中记录的所述数据使用方的身份的第二真实性校验操作、针对所述可验证声明的实际颁发方为所述数据拥有方的第三真实性校验操作,以及针对所述可验证声明的实际颁发对象为所述数据使用方的第四真实性校验操作。
6.根据权利要求4所述的方法,
在通过第一用户公钥对所述调用请求中对应于所述目标明文数据的第一签名信息进行签名验证且签名验证通过的情况下,判定所述第一真实性校验操作通过,所述第一用户公钥与所述调用请求中记录的所述数据拥有方的第一去中心化身份标识符相对应;
在通过第二用户公钥对所述调用请求中对应于所述调用请求的第二签名信息进行签名验证且签名验证通过的情况下,判定所述第二真实性校验操作通过,所述第二用户公钥与所述调用请求中记录的所述数据使用方的第二去中心化身份标识符相对应;
在所述可验证声明的实际颁发方的去中心化身份标识符与所述第一去中心化身份标识符相匹配的情况下,判定所述第三真实性校验操作通过;
在所述可验证声明的实际颁发对象的去中心化身份标识符与所述第二去中心化身份标识符相匹配的情况下,判定所述第四真实性校验操作通过。
7.根据权利要求6所述的方法,通过以下方式确定出所述实际颁发方的去中心化身份标识符和所述实际颁发对象的去中心化身份标识符:
读取所述调用请求中可验证声明记录的颁发方的去中心化身份标识符,并获取与读取到的去中心化身份标识符对应的第三用户公钥;
采用所述第三用户公钥对所述调用请求中可验证声明记录的签名进行签名验证,并在签名验证通过的情况下将所述调用请求中可验证声明记录的颁发方的去中心化身份标识符作为所述实际颁发方的去中心化身份标识符;以及,
将所述调用请求中可验证声明记录的颁发对象的去中心化身份标识符作为所述实际颁发对象的去中心化身份标识符。
8.根据权利要求1所述的方法,所述调用条件还包括所述调用请求指示的调用操作符合所述可验证声明定义的调用规则。
9.根据权利要求8所述的方法,所述调用规则包括以下至少之一:
所述链下合约中允许处理所述目标明文数据的合约函数、所述目标明文数据的使用权的有效期、允许调用所述链下合约对所述目标明文数据进行处理的次数和允许调用所述链下合约对所述目标明文数据进行处理的频率。
10.根据权利要求1所述的方法,所述目标密文数据由所述数据拥有方采用所述链下合约的合约身份公钥对所述目标明文数据进行加密得到,所述链下可信执行环境内维护有对应于所述合约身份公钥的合约身份私钥,所述目标密文数据由所述链下隐私计算节点在所述链下可信执行环境内采用所述合约身份私钥进行解密。
11.根据权利要求1所述的方法,还包括:
所述数据使用方获取所述链下隐私计算节点通过所述预言机机制反馈至区块链节点的执行结果,所述执行结果由所述链下隐私计算节点执行所述链下合约得到,并在所述链下可信执行环境内被采用所述链下合约的合约身份私钥进行签名;
所述数据使用方在采用所述链下合约的合约身份公钥对所述执行结果进行签名验证且签名验证通过的情况下,判定所述执行结果由所述链下合约生成。
12.根据权利要求1所述的方法,在提交所述调用请求之前,所述方法还包括:
所述数据使用方获取针对所述链下可信执行环境的远程证明报告,所述远程证明报告由认证服务器对所述链下隐私计算节点针对所述链下可信执行环境产生的自荐信息进行验证后生成;
所述数据使用方在根据所述远程证明报告确定所述链下可信执行环境可信的情况下,获取部署于所述链下隐私计算节点处的所述链下合约的待验证合约信息,所述待验证合约信息被所述链下隐私计算节点在所述链下可信执行环境内采用所述链下隐私计算节点的身份私钥进行签名,所述身份私钥由所述链下隐私计算节点在所述链下可信执行环境内维护;
所述数据使用方采用所述链下隐私计算节点的身份公钥对所述待验证合约信息进行签名验证,以及根据所述链下合约的合约信息对所述待验证合约信息进行合约信息验证,并在签名验证和合约信息验证通过的情况下,确定所述数据使用方在通过所述预言机机制对所述链下合约发起调用时,所述链下合约由所述链下隐私计算节点在所述链下可信执行环境中执行。
13.根据权利要求12所述的方法,所述数据使用方获取针对所述链下可信执行环境的远程证明报告,包括:
所述数据使用方向所述链下隐私计算节点发起挑战,并接收所述链下隐私计算节点返回的远程证明报告;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述数据使用方向所述链下隐私计算集群的控制节点发起挑战,并接收所述控制节点返回的远程证明报告。
14.根据权利要求12所述的方法,所述数据使用方根据所述远程证明报告对所述链下可信执行环境进行验证,包括:
根据所述认证服务器的公钥对所述远程证明报告进行签名验证;
在签名验证通过且所述远程证明报告包含的远程认证结果为通过认证的情况下,从所述远程证明报告携带的所述自荐信息内提取出第一待检验哈希值,所述第一待检验哈希值为所述链下可信执行环境的预设信息的哈希值;
将预先获得的针对所述链下可信执行环境的第一标准哈希值与所述第一待检验哈希值进行比较,并将比较结果一致作为确认所述链下可信执行环境可信的前提条件。
15.根据权利要求12所述的方法,还包括:
所述数据使用方获取所述链下隐私计算节点提供的第一身份信息,并对获取到的第一身份信息进行哈希计算以得到第二待校验哈希值,所述第一身份信息包含所述链下隐私计算节点的身份公钥和所述链下隐私计算节点的其他身份信息;
所述数据使用方获取所述链下隐私计算节点提供的第二标准哈希值,所述第二标准哈希值由所述链下隐私计算节点在所述链下可信执行环境内生成自身的身份信息后对生成的身份信息进行哈希计算得到;
所述数据使用方将所述第二待校验哈希值与所述第二标准哈希值进行比较,并在比较结果一致的情况下获取所述链下隐私计算节点的第一身份信息中包含的所述身份公钥。
16.根据权利要求12所述的方法,所述数据使用方根据所述远程证明报告对所述链下可信执行环境进行验证,包括:
根据所述认证服务器的公钥对所述远程证明报告进行签名验证并在签名验证通过且所述远程证明报告包含的远程认证结果为通过认证的情况下,获取所述链下隐私计算节点提供的第二身份信息,并对获取到的第二身份信息进行哈希计算以得到第三待校验哈希值,所述第二身份信息包含所述链下隐私计算节点的身份公钥、所述链下隐私计算节点的其他身份信息和第四待校验哈希值,所述第四待校验哈希值为所述链下可信执行环境的预设信息的哈希值;
获取所述链下隐私计算节点提供的第三标准哈希值,并将所述第三待校验哈希值与第三标准哈希值进行比较,所述第三标准哈希值由所述链下隐私计算节点在所述链下可信执行环境内生成自身的身份信息后对生成的身份信息进行哈希计算得到;
在所述第三待校验哈希值与所述第三标准哈希值一致的情况下,将预先获得的针对所述链下可信执行环境的第四标准哈希值与所述第四待校验哈希值进行比较,并将比较结果一致作为确认所述链下可信执行环境可信的前提条件;其中,所述第二身份信息包含的所述身份公钥用于对所述待验证合约信息进行签名验证。
17.根据权利要求1所述的方法,所述调用请求由所述数据使用方采用所述链下隐私计算节点的身份公钥进行加密,所述链下可信执行环境内维护有对应于所述身份公钥的身份私钥,所述调用请求由所述链下隐私计算节点在所述链下可信执行环境内采用所述身份私钥进行解密。
18.根据权利要求15-17中任一所述的方法,
所述链下隐私计算节点的身份私钥为所述链下隐私计算节点的节点身份密钥中的节点身份私钥,所述链下隐私计算节点的身份公钥为所述节点身份密钥中的节点身份公钥;其中,在区块链节点与所述链下隐私计算节点进行交互以部署或调用链下合约的过程中,所述节点身份密钥用于对交互数据进行加密解密和/或签名签名验证;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述链下隐私计算节点的身份公钥为所述链下隐私计算集群的集群身份密钥中的集群身份公钥,所述链下隐私计算节点的身份私钥为所述集群身份密钥中的集群身份私钥;其中,在区块链节点与所述链下隐私计算集群中的各节点进行交互以部署或调用链下合约的过程中,所述集群身份密钥用于对交互数据进行加密解密和/或签名签名验证。
19.一种调用合约的方法,包括:
链下隐私计算节点接收数据使用方通过区块链的预言机机制提交的针对所述链下隐私计算节点部署的链下合约的调用请求,所述调用请求中包含通过对目标明文数据进行加密得到的目标密文数据和针对所述目标明文数据的使用权的可验证声明;
所述链下隐私计算节点在调用条件被满足的情况下在所述链下隐私计算节点创建的链下可信执行环境内执行所述链下合约以对所述目标明文数据进行处理,所述调用条件包括根据所述可验证声明确定出所述目标明文数据的数据拥有方向所述数据使用方授予了所述使用权。
20.根据权利要求19所述的方法,所述链下隐私计算节点接收数据使用方通过区块链的预言机机制提交的针对所述链下隐私计算节点部署的链下合约的调用请求,包括:
所述链下隐私计算节点获取预言机服务器从监听到的合约事件中读取的所述调用请求,所述合约事件由区块链网络中的区块链节点响应于所述数据使用方提交的链下合约调用交易,通过调用预言机合约生成,所述链下合约调用交易中包含所述调用请求。
21.根据权利要求20所述的方法,还包括:
所述链下隐私计算节点将执行所述链下合约得到的执行结果返回至所述预言机服务器,所述执行结果由所述预言机服务器传输至所述所述预言机合约,以由所述区块链网络中的区块链节点获取。
22.根据权利要求19所述的方法,所述链下隐私计算节点接收数据使用方通过区块链的预言机机制提交的针对所述链下隐私计算节点部署的链下合约的调用请求,包括:
所述链下隐私计算节点接收区块链节点通过所述预言机机制转发的所述调用请求,所述调用请求由所述数据使用方提交至所述区块链节点;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述链下隐私计算节点接收所述链下隐私计算集群的控制节点转发的所述调用请求,所述调用请求由所述数据使用方提交至所述区块链节点,并由所述区块链节点通过所述预言机机制转发至所述控制节点。
23.根据权利要求19所述的方法,所述链下隐私计算节点在以下校验操作均通过的情况下确定出所述数据拥有方向所述数据使用方授予了所述使用权:
针对所述调用请求中记录的所述数据拥有方的身份的第一真实性校验操作、针对所述调用请求中记录的所述数据使用方的身份的第二真实性校验操作、针对所述可验证声明的实际颁发方为所述数据拥有方的第三真实性校验操作,以及针对所述可验证声明的实际颁发对象为所述数据使用方的第四真实性校验操作。
24.根据权利要求23所述的方法,
所述链下隐私计算节点在通过第一用户公钥对所述调用请求中对应于所述目标明文数据的第一签名信息进行签名验证且签名验证通过的情况下,判定所述第一真实性校验操作通过,所述第一用户公钥与所述调用请求中记录的所述数据拥有方的第一去中心化身份标识符相对应;
所述链下隐私计算节点在通过第二用户公钥对所述调用请求中对应于所述调用请求的第二签名信息进行签名验证且签名验证通过的情况下,判定所述第二真实性校验操作通过,所述第二用户公钥与所述调用请求中记录的所述数据使用方的第二去中心化身份标识符相对应;
所述链下隐私计算节点在所述可验证声明的实际颁发方的去中心化身份标识符与所述第一去中心化身份标识符相匹配的情况下,判定所述第三真实性校验操作通过;
所述链下隐私计算节点在所述可验证声明的实际颁发对象的去中心化身份标识符与所述第二去中心化身份标识符相匹配的情况下,判定所述第四真实性校验操作通过。
25.根据权利要求24所述的方法,所述链下隐私计算节点确定出所述实际颁发方的去中心化身份标识符和所述实际颁发对象的去中心化身份标识符,包括:
读取所述调用请求中可验证声明记录的颁发方的去中心化身份标识符,并获取与读取到的去中心化身份标识符对应的第三用户公钥;
采用所述第三用户公钥对所述调用请求中可验证声明记录的签名进行签名验证,并在签名验证通过的情况下将所述调用请求中可验证声明记录的颁发方的去中心化身份标识符作为所述实际颁发方的去中心化身份标识符;以及,
将所述调用请求中可验证声明记录的颁发对象的去中心化身份标识符作为所述实际颁发对象的去中心化身份标识符。
26.根据权利要求19所述的方法,所述调用条件还包括所述调用请求指示的调用操作符合所述可验证声明定义的调用规则。
27.根据权利要求26所述的方法,所述调用规则包括以下至少之一:
所述链下合约中允许处理所述目标明文数据的合约函数、所述目标明文数据的使用权的有效期、允许调用所述链下合约对所述目标明文数据进行处理的次数和允许调用所述链下合约对所述目标明文数据进行处理的频率。
28.根据权利要求19所述的方法,所述目标密文数据由所述数据拥有方采用所述链下合约的合约身份公钥对所述目标明文数据进行加密得到,所述链下可信执行环境内维护有对应于所述合约身份公钥的合约身份私钥,所述目标密文数据由所述链下隐私计算节点在所述链下可信执行环境内采用所述合约身份私钥进行解密。
29.根据权利要求19所述的方法,还包括:
所述链下隐私计算节点在所述链下可信执行环境内采用所述链下合约的合约身份私钥对执行所述链下合约得到的执行结果进行签名;
所述链下隐私计算节点通过所述预言机机制将所述执行结果反馈至区块链节点以由所述数据使用方获取,所述数据使用方在采用所述链下合约的合约身份公钥对所述执行结果进行签名验证且签名验证通过的情况下,判定所述执行结果由所述链下合约生成。
30.根据权利要求19所述的方法,在接收所述调用请求之前,所述方法还包括:
链下隐私计算节点向数据使用方提供针对所述链下可信执行环境的远程证明报告,所述远程证明报告由认证服务器对所述链下隐私计算节点针对所述链下可信执行环境产生的自荐信息进行验证后生成;
所述链下隐私计算节点向所述数据使用方提供部署于所述链下隐私计算节点处的所述链下合约的待验证合约信息,所述待验证合约信息被所述链下隐私计算节点在所述链下可信执行环境内采用所述链下隐私计算节点的身份私钥进行签名,所述身份私钥由所述链下隐私计算节点在所述链下可信执行环境内维护;
所述待验证合约信息由所述数据使用方在根据所述远程证明报告确定所述链下可信执行环境可信的情况下,采用所述链下隐私计算节点的身份公钥对所述待验证合约信息进行签名验证,以及根据所述链下合约的合约信息对所述待验证合约信息进行合约信息验证,并在签名验证和合约信息验证通过的情况下,确定所述数据使用方在通过区块链节点的预言机机制对所述链下合约发起调用时,所述链下合约由所述链下隐私计算节点在所述链下可信执行环境中执行。
31.根据权利要求30所述的方法,所述链下隐私计算节点向数据使用方提供针对所述链下可信执行环境的远程证明报告,包括:
接收所述数据使用方向所述链下隐私计算节点发起的挑战,向所述数据使用方返回所述远程证明报告;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,在所述链下隐私计算集群的控制节点接收到所述数据使用方发起的挑战后,向所述控制节点发送所述远程证明报告,所述远程证明报告由所述控制节点返回至所述数据使用方。
32.根据权利要求30所述的方法,所述远程证明报告携带的所述自荐信息内包含第一待检验哈希值,所述第一待检验哈希值为所述链下可信执行环境的预设信息的哈希值,所述第一待检验哈希值用于所述数据使用方在根据所述认证服务器的公钥对所述远程证明报告进行签名验证并签名验证通过且所述远程证明报告包含的远程认证结果为通过认证的情况下,与预先获得的针对所述链下可信执行环境的第一标准哈希值进行比较,且比较结果一致被作为所述数据使用方确认所述链下可信执行环境可信的前提条件。
33.根据权利要求30所述的方法,还包括:
所述链下隐私计算节点向所述数据使用方提供第一身份信息,所述第一身份信息包含所述链下隐私计算节点的身份公钥和所述链下隐私计算节点的其他身份信息,所述第一身份信息被所述数据使用方进行哈希计算以得到第二待校验哈希值;
所述链下隐私计算节点向所述数据使用方提供第二标准哈希值,所述...
【专利技术属性】
技术研发人员:吴行行,邱鸿霖,吴因佥,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。