部署合约的方法及装置制造方法及图纸

技术编号:24010991 阅读:24 留言:0更新日期:2020-05-02 01:44
本说明书一个或多个实施例提供一种部署合约的方法及装置,方法包括:客户端获取针对链下隐私计算节点的远程证明报告,远程证明报告由认证服务器对链下隐私计算节点产生的自荐信息进行验证后生成,自荐信息与链下隐私计算节点上创建的链下可信执行环境相关;客户端在根据远程证明报告确定链下隐私计算节点可信的情况下,将链下合约的字节码加密传输至链下隐私计算节点,由链下隐私计算节点在链下可信执行环境中解密得到字节码并部署;其中,在区块链节点通过预言机机制对链下合约发起调用的情况下,部署的字节码可在链下可信执行环境中执行,且执行结果可通过预言机机制反馈至区块链节点。本说明书可以实现计算过程的隐私保护。

Method and installation of deployment contract

【技术实现步骤摘要】
部署合约的方法及装置
本说明书一个或多个实施例涉及可验证计算
,尤其涉及一种部署合约的方法及装置。
技术介绍
在相关技术中,针对各种场景下的隐私需求,一种方式是通过同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等加密技术实现隐私保护,但也随之带来了严重的性能损失。可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种部署合约的方法及装置,能够在链下环境内安全实现部署合约的操作。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种部署合约的方法,包括:本文档来自技高网...

【技术保护点】
1.一种部署合约的方法,包括:/n客户端获取针对链下隐私计算节点的远程证明报告,所述远程证明报告由认证服务器对所述链下隐私计算节点产生的自荐信息进行验证后生成,所述自荐信息与所述链下隐私计算节点上创建的链下可信执行环境相关;/n所述客户端在根据所述远程证明报告确定所述链下隐私计算节点可信的情况下,将链下合约的字节码加密传输至所述链下隐私计算节点,由所述链下隐私计算节点在所述链下可信执行环境中解密得到所述字节码并部署;其中,在区块链节点通过预言机机制对所述链下合约发起调用的情况下,部署的所述字节码在所述链下可信执行环境中执行,且执行结果通过所述预言机机制反馈至所述区块链节点。/n

【技术特征摘要】
1.一种部署合约的方法,包括:
客户端获取针对链下隐私计算节点的远程证明报告,所述远程证明报告由认证服务器对所述链下隐私计算节点产生的自荐信息进行验证后生成,所述自荐信息与所述链下隐私计算节点上创建的链下可信执行环境相关;
所述客户端在根据所述远程证明报告确定所述链下隐私计算节点可信的情况下,将链下合约的字节码加密传输至所述链下隐私计算节点,由所述链下隐私计算节点在所述链下可信执行环境中解密得到所述字节码并部署;其中,在区块链节点通过预言机机制对所述链下合约发起调用的情况下,部署的所述字节码在所述链下可信执行环境中执行,且执行结果通过所述预言机机制反馈至所述区块链节点。


2.根据权利要求1所述的方法,所述客户端获取针对链下隐私计算节点的远程证明报告,包括:
所述客户端向所述链下隐私计算节点发起挑战,并接收所述链下隐私计算节点返回的远程证明报告;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述客户端向所述链下隐私计算集群的控制节点发起挑战,并接收所述控制节点返回的远程证明报告。


3.根据权利要求2所述的方法,所述客户端向所述链下隐私计算节点或所述控制节点发起挑战,包括:
所述客户端向区块链节点提交挑战交易,所述挑战交易所含的挑战信息可由所述区块链节点通过预言机机制传输至所述链下隐私计算节点或所述控制节点;或者,
所述客户端向所述链下隐私计算节点或所述控制节点发起链下挑战。


4.根据权利要求2所述的方法,所述客户端向所述链下隐私计算集群的控制节点发起挑战,包括:
所述客户端向所述控制节点发起挑战且挑战目标被设定为所述链下隐私计算节点,使所述控制节点返回所述链下隐私计算节点的远程证明报告;或者,
所述客户端向所述控制节点发起挑战且挑战目标未设定,使所述控制节点从所述链下隐私计算集群中选取所述链下隐私计算节点并返回所述链下隐私计算节点的远程证明报告。


5.根据权利要求1所述的方法,
所述远程证明报告由所述链下隐私计算节点响应于所述客户端发起的挑战而触发产生;或者,
所述远程证明报告由所述链下隐私计算节点响应于其他挑战者的挑战而触发产生。


6.根据权利要求1所述的方法,所述客户端根据所述远程证明报告对所述链下隐私计算节点进行验证,包括:
所述客户端根据所述认证服务器的公钥对所述远程证明报告进行签名验证;
在签名通过验证且所述远程证明报告所含的远程认证结果为通过认证的情况下,所述客户端从所述远程证明报告携带的所述自荐信息内提取出第一待检验哈希值,所述第一待检验哈希值为所述链下可信执行环境的预设信息的哈希值;
所述客户端将预先获得的针对所述链下可信执行环境的可信哈希值与所述第一待检验哈希值进行比较,并将比较结果一致作为确认所述链下隐私计算节点可信的前提条件。


7.根据权利要求1所述的方法,所述客户端根据所述远程证明报告对所述链下隐私计算节点进行验证,包括:
所述客户端获取所述链下隐私计算节点提供的节点身份信息,所述节点身份信息与代表所述链下隐私计算节点的身份的密钥相关;
所述客户端从所述远程证明报告携带的所述自荐信息内提取出第二待检验哈希值,所述第二待检验哈希值为所述链下隐私计算节点生成所述自荐信息时的节点身份信息的哈希值;
所述客户端计算获取的节点身份信息的哈希值,将计算出的哈希值与所述第二待检验哈希值进行比较,并将比较结果一致作为确认所述链下隐私计算节点可信的前提条件。


8.根据权利要求1所述的方法,所述客户端根据所述远程证明报告对所述链下隐私计算节点进行验证,包括:
所述客户端获取所述链下隐私计算节点提供的节点身份信息,所述节点身份信息与代表所述链下隐私计算节点的身份的密钥相关,且所述节点身份信息包含与所述链下可信执行环境相关的信息;
所述客户端根据所述认证服务器的公钥对所述远程证明报告进行签名验证;
在签名通过验证且所述远程证明报告所含的远程认证结果为通过认证的情况下,所述客户端从所述远程证明报告携带的所述自荐信息内提取出待检验哈希值,所述待检验哈希值为所述链下隐私计算节点生成所述自荐信息时的节点身份信息的哈希值;
所述客户端计算获取的节点身份信息的哈希值,将计算出的哈希值与所述待检验哈希值进行比较,并将比较结果一致作为确认所述链下隐私计算节点可信的前提条件。


9.根据权利要求1所述的方法,所述客户端将链下合约的字节码加密传输至所述链下隐私计算节点,包括:
所述客户端生成链下合约部署交易,所述链下合约部署交易中包含对所述字节码进行加密得到的字节码密文;以及,所述客户端将所述链下合约部署交易加密后提交至区块链节点,加密后的链下合约部署交易可在所述区块链节点处创建的链上可信执行环境内被解密,并由所述区块链节点通过预言机机制将解密交易得到的字节码密文传输至所述链下隐私计算节点;或者,
所述客户端在链下将所述字节码加密传输至所述链下隐私计算节点。


10.根据权利要求1所述的方法,所述客户端将链下合约的字节码加密传输至所述链下隐私计算节点,包括:
所述客户端直接将所述字节码加密传输至所述链下隐私计算节点;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述客户端将所述字节码加密传输至所述链下隐私计算集群的控制节点,并由所述控制节点转发至所述链下隐私计算节点;其中,所述控制节点还转发至所述链下隐私计算集群中的其他链下隐私计算节点。


11.根据权利要求1所述的方法,所述字节码由非对称密钥对的公钥进行加密后传输,且所述非对称密钥对的私钥被所述链下隐私计算节点所维护。


12.根据权利要求11所述的方法,在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述非对称密钥对的私钥仅被所述链下隐私计算节点所维护,或者所述非对称密钥对的私钥被所述链下隐私计算集群内的所有链下隐私计算节点共同维护。


13.根据权利要求1所述的方法,所述链下可信执行环境中部署有若干执行引擎;所述方法还包括:
所述客户端向所述链下隐私计算节点发送与所述字节码相关联的执行引擎指定信息,所述执行引擎指定信息向所述链下隐私计算节点指示用于执行所述字节码的执行引擎。


14.根据权利要求1所述的方法,还包括:
所述客户端接收部署结果信息,所述部署结果信息包含所述链下隐私计算节点对所部署的字节码进行哈希运算得到的第一哈希值;
所述客户端将所述第一哈希值与自身持有的字节码的第二哈希值进行比较,并在比较结果一致的情况下确认所述链下合约在所述链下隐私计算节点处部署成功。


15.一种部署合约的方法,包括:
链下隐私计算节点接收源自客户端的挑战,向所述客户端提供远程证明报告,所述远程证明报告由认证服务器对所述链下隐私计算节点产生的自荐信息进行验证后生成,所述自荐信息与所述链下隐私计算节点上创建的链下可信执行环境相关;
所述链下隐私计算节点接收所述客户端加密传输的链下合约的字节码,所述字节码由所述客户端在根据所述远程证明报告确定所述链下隐私计算节点可信的情况下发送;
所述链下隐私计算节点在所述链下可信执行环境中解密得到所述字节码,并对所述字节码进行部署;其中,在区块链节点通过预言机机制对所述链下合约发起调用的情况下,部署的所述字节码在所述链下可信执行环境中执行,且执行结果通过所述预言机机制反馈至所述区块链节点。


16.根据权利要求15所述的方法,所述链下隐私计算节点接收源自客户端的挑战,包括:
所述链下隐私计算节点接收区块链节点通过预言机机制传输的挑战信息,所述挑战信息由所述区块链节点从所述客户端提交的挑战交易中提取得到;或者,
所述链下隐私计算节点接收所述客户端发起的链下挑战。


17.根据权利要求15所述的方法,所述链下隐私计算节点接收源自客户端的挑战,包括:
所述链下隐私计算节点接收所述客户端直接发起的挑战;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述链下隐私计算节点接收所述链下隐私计算集群的控制节点转发的挑战,所述挑战由所述客户端向所述控制节点发起且挑战目标被所述客户端设定为所述链下隐私计算节点;或者,
所述链下隐私计算节点接收所述链下隐私计算集群的控制节点转发的挑战,所述挑战由所述客户端向所述控制节点发起且挑战目标未设定,所述链下隐私计算节点由所述控制节点从所述链下隐私计算集群中选取。


18.根据权利要求15所述的方法,还包括:
所述链下隐私计算节点响应于所述挑战而产生所述自荐信息,所述远程证明报告由所述认证服务器对所述自荐信息进行验证后生成;或者,
所述链下隐私计算节点响应于其他挑战者的挑战而产生所述自荐信息,所述远程证明报告由所述认证服务器对所述自荐信息进行验证后生成。


19.根据权利要求15所述的方法,所述远程证明报告由所述认证服务器进行签名,所述远程证明报告携带所述自荐信息,所述自荐信息包含第一待检验哈希值,所述第一待检验哈希值为所述链下可信执行环境的预设信息的哈希值,所述第一待检验哈希值用于与所述客户端预先获得的针对所述链下可信执行环境的可信哈希值进行比较,且比较结果一致被作为所述客户端确认所述链下隐私计算节点可信的前提条件。


20.根据权利要求15所述的方法,还包括:
所述链下隐私计算节点向所述客户端提供的节点身份信息,所述节点身份信息与代表所述链下隐私计算节点的身份的密钥相关;
其中,所述自荐信息内还包含第二待检验哈希值,所述第二待检验哈希值为所述链下隐私计算节点生成所述自荐信息时的节点身份信息的哈希值,所述第二待检验哈希值用于与所述节点身份信息进行比较,且比较结果一致被作为所述客户端确认所述链下隐私计算节点可信的前提条件。


21.根据权利要求15所述的方法,还包括:
所述链下隐私计算节点向所述客户端提供的节点身份信息,所述节点身份信息与代表所述链下隐私计算节点的身份的密钥相关,且所述节点身份信息包含与所述链下可信执行环境相关的信息;
其中,所述远程证明报告由所述认证服务器进行签名;所述远程证明报告携带所述自荐信息,所述自荐信息包含待检验哈希值,所述待检验哈希值用于与所述客户端获得的节点身份信息的哈希值进行比较,且比较结果一致被作为所述客户端确认所述链下隐私计算节点可信的前提条件。


22.根据权利要求15所述的方法,所述链下隐私计算节点接收所述客户端加密传输的链下合约的字节码,包括:
所述链下隐私计算节点接收区块链节点通过预言机机制传输的字节码密文,所述字节码密文由所述区块链节点在自身创建的链上可信执行环境内对客户端提交的加密后的链下合约部署交易进行解密后得到;或者,
所述链下隐私计算节点接收所述客户端链下加密传输的所述字节码。


23.根据权利要求15所述的方法,所述链下隐私计算节点接收所述客户端加密传输的链下合约的字节码,包括:
所述链下隐私计算节点直接从所述客户端处获得加密传输的所述字节码;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述链下隐私计算节点接收所述链下隐私计算集群的控制节点转发的字节码密文,所述字节码密文由所述客户端传输至所述控制节点。


24.根据权利要求15所述的方法,所述字节码由非对称密钥对的公钥进行加密后传输,且所述非对称密钥对的私钥被所述链下隐私计算节点所维护。


25.根据权利要求24所述的方法,在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述非对称密钥对的私钥仅被所述链下隐私计算节点所维护,或者所述非对称密钥对的私钥被所述链下隐私计算集群内的所有链下隐私计算节点共同维护。


26.根据权利要求15所述的方法,所述链下可信执行环境中部署有若干执行引擎;所述方法还包括:
所述链下隐私计算节点接收所述客户端发送的与所述字节码相关联的执行引擎指定信息;
所述链下隐私计算节点根据所述执行引擎指定信息为所述字节码设定相应的执行引擎。


27.根据权利要求15所述的方法,还包括:
所述链下隐私计算节点生成部署结果信息,所述部署结果信息包含所述链下隐私计算节点对所部署的字节码进行哈希运算得到的第一哈希值;
所述链下隐私计算节点向所述客户端返回所述部署结果信息,所述第一哈希值用于与所述客户端持有的字节码的第二哈希值进行比较,且比较结果一致被作为所述客户端确认所述链下合约在所述链下隐私计算节点处部署成功的前提条件。


28.一种部署合约的方法,包括:
区块链节点接收客户端发起的挑战交易,并向所述客户端返回链下隐私计算节点的远程证明报告,所述远程证明报告由认证服务器对所述链下隐私计算节点产生的自荐信息进行验证后生成,所述自荐信息与所述链下隐私计算节点上创建的链下可信执行环境相关;
所述区块链节点接收所述客户端发起的经过加密的链下合约部署交易,在链上可信执行环境中解密得到所述链下合约部署交易所含的字节码密文,所述字节码密文由所述客户端对链下合约的字节码进行加密得到,所述链下合约部署交易由所述客户端在根据所述远程证明报告确定所述链下隐私计算节点可信的情况下发起;
所述区块链节点通过预言机机制将所述字节码密文传输至所述链下隐私计算节点,由所述链下隐私计算节点在所述链下可信执行环境中解密得到所述字节码并部署;其中,在所述区块链节点通过预言机机制对所述链下合约发起调用的情况下,部署的所述字节码在所述链下可信执行环境中执行,且执行结果通过所述预言机机制反馈至所述区块链节点。


29.根据权利要求28所述的方法,所述区块链节点向所述客户端返回链下隐私计算节点的远程证明报告,包括:
所述区块链节点将经过加密的所述挑战交易读入所述链上可信执行环境中进行解密,得到所述挑战交易所含的挑战信息;
所述区块链节点通过预言机机制将所述挑战信息传输至所述链下隐私计算节点,或者传输至所述链下隐私计算节点所属链下隐私计算集群的控制节点;
所述区块链节点接收所述链下隐私计算节点或所述控制节点返回的远程证明报告并提供至所述客户端。


30.根据权利要求28所述的方法,所述区块链节点通过预言机机制将所述字节码密文传输至链下隐私计算节点,包括:
所述区块链节点通过预言机机制直接将所述字节码密文传输至链下隐私计算节点;或者,
在所述链下隐私计算节点属于链下隐私计算集群的情况下,所述区块链节点通过预言机机制将所述字节码密文传输至所述链下隐私计算集群的控制节点,并由所述控制节点转发至所述链下隐私计算节点;其中,所述字节码密文还被所述控制节点转发至所述链下隐私计算集群中的其他链下隐私计算节点。


31.根据权利要求28所述的方法,
所述远程证明报告由所述链下隐私计算节点响应于所述客户端的挑战而触发产生;或者,
所述远程证明报告由所述链下隐私计算节点响应于其他挑战者的挑战而触发产生。


32.根据权利要求28所述的方法,所述远程证明报告由所述认证服务器进行签名,且所述远程证明报告携带所述自荐信息,所述自荐信息包含第一待检验哈希值,所述第一待检验哈希值为所述链下可信执行环境的预设信息的哈希值,所述第一待检验哈希值用于与所述客户端预先获得的针对所述链下可信执行环境的可信哈希值进行比较,且比较结果一致被作为所述客户端确认所述链下隐私计算节点可信的前提条件。


33.根据权利要求28所述的方法,还包括:
所述区块链节点接收所述链下隐私计算节点返回的节点身份信息,并提供至所述客户端,所述节点身份信息与代表所述链下隐私计算节点的身份的密钥相关;
其中,所述自荐信息内还包含第二待检验哈希值,所述第二待检验哈希值为所述链下隐私计算节点生成所述自荐信息时的节点身份信息的哈希值,所述第二待检验哈希值用于与所述节点身份信息进行比较,且比较结果一致被作为所述客户端确认所述链下隐私计算节点可信的前提条件。


34.根据权利要求28所述的方法,还包括:
所述区块链节点接收所述链下隐私计算节点返回的节点身份信息,并提供至所述客户端,所述节点身份信息与代表所述链下隐私计算节点的身份的密钥相关,且所述节点身份信息包含与所述链下可信执行环境相关的信息;
其中,所述远程证明报告由所述认证服务器进行签名;所述远程证明报告携带所述自荐信息,所述自荐信息包含待检验哈希值,所述待检验哈希值用于与所述客户端获得的节点身份信息的哈希值进行比较,且比较结果一致被作为所述客户端确认所述链下隐私计算节点可信的前提条件。


35.根据权利要求28...

【专利技术属性】
技术研发人员:吴因佥邱鸿霖吴行行
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1