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