访问外部数据的方法及装置制造方法及图纸

技术编号:24015118 阅读:72 留言:0更新日期:2020-05-02 03:07
本说明书提供一种访问外部数据的方法及装置;该方法应用于链下隐私计算节点,该链下隐私计算节点中建立有可信执行环境,该方法可以在接收到区块链节点发送的链下合约调用请求后,在可信执行环境中执行链下合约,并在链下合约存在外部数据访问需求的情况下,通过预言机向远程服务器发起访问,并基于预言机返回的基于访问结果创建的外部数据请求响应完成对链下合约的执行,进而向区块链节点返回执行结果。本说明书可以在访问外部数据的过程中实现隐私保护。

Methods and devices for accessing external data

【技术实现步骤摘要】
访问外部数据的方法及装置
本说明书一个或多个实施例涉及可验证计算
,尤其涉及一种访问外部数据的方法及装置。
技术介绍
在相关技术中,针对各种场景下的隐私需求,一种方式是通过同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等加密技术实现隐私保护,但也随之带来了严重的性能损失。可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种访问外部数据的方法及装置。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种访问外部数据的方法,包括:链下隐私计算节点在链下可信执行环境中执行被区块链节点调用的链下合约的过程中,响应于所述链下合约的外部数据访问需求,在所述链下可信执行环境中生成外部数据访问请求,并将所述外部数据访问请求加密传输至预言机;所述链下隐私计算节点接收所述预言机加密返回的外部数据请求响应,所述外部数据请求响应由所述预言机根据对远程服务器的访问结果在预言机可信执行环境内生成并加密;所述链下隐私计算节点在所述链下可信执行环境内解密获得所述外部数据请求响应,根据所述外部数据请求响应完成对所述链下合约的执行操作。根据本说明书一个或多个实施例的第二方面,提出了一种访问外部数据的方法,包括:预言机接收链下隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述链下隐私计算节点响应于链下合约的外部数据访问需求而发起;所述链下合约在被区块链节点调用的情况下,由所述链下隐私计算节点在链下可信执行环境内执行;所述预言机在预言机可信执行环境内解密得到所述外部数据访问请求,并根据所述外部数据访问请求访问远程服务器;所述预言机根据访问结果在预言机可信执行环境内创建外部数据请求响应并加密,将加密后的外部数据请求响应返回所述链下隐私计算节点;所述外部数据请求响应用于在所述链下可信执行环境内解密后参与所述链下合约的执行操作。根据本说明书一个或多个实施例的第三方面,提出了一种访问外部数据的方法,包括:预言机集群中的控制节点接收链下隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述链下隐私计算节点在链下可信执行环境内执行被区块链节点调用的链下合约的过程中,响应于所述链下合约的外部数据访问需求而发起;所述控制节点在控制节点可信执行环境内解密得到所述外部数据访问请求,并向集群内被选取的预言机节点转发所述外部数据访问请求,所述外部数据访问请求用于指示被选取的预言机节点对远程服务器进行访问;所述控制节点接收所述被选取的预言机节点根据访问结果返回的外部数据请求响应,并在控制节点可信执行环境内对所述外部数据请求响应进行加密后,将经过加密的外部数据请求响应返回所述链下隐私计算节点。根据本说明书一个或多个实施例的第四方面,提出了一种访问外部数据的方法,包括:隐私计算节点在节点可信执行环境中执行智能合约的过程中,在所述节点可信执行环境中生成外部数据访问请求,并将所述外部数据访问请求加密传输至预言机;所述隐私计算节点接收所述预言机加密返回的外部数据请求响应,所述外部数据请求响应由所述预言机根据对远程服务器的访问结果在预言机可信执行环境内生成并加密;所述隐私计算节点在所述节点可信执行环境内解密获得所述外部数据请求响应,根据所述外部数据请求响应完成对所述智能合约的执行操作。根据本说明书一个或多个实施例的第五方面,提出了一种访问外部数据的方法,包括:预言机接收隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述隐私计算节点在节点可信执行环境内执行智能合约的过程中发起;所述预言机在预言机可信执行环境内解密得到所述外部数据访问请求,并根据所述外部数据访问请求访问远程服务器;所述预言机根据访问结果在预言机可信执行环境内创建外部数据请求响应并加密,将加密后的外部数据请求响应返回所述隐私计算节点;所述外部数据请求响应用于在所述节点可信执行环境内解密后参与所述智能合约的执行操作。根据本说明书一个或多个实施例的第六方面,提出了一种访问外部数据的方法,包括:预言机集群中的控制节点接收隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述隐私计算节点在节点可信执行环境内执行智能合约的过程中发起;所述控制节点在控制节点可信执行环境内解密得到所述外部数据访问请求,并向集群内被选取的预言机节点转发所述外部数据访问请求,所述外部数据访问请求用于指示被选取的预言机节点对远程服务器进行访问;所述控制节点接收所述被选取的预言机节点根据访问结果返回的外部数据请求响应,并在控制节点可信执行环境内对所述外部数据请求响应进行加密后,将经过加密的外部数据请求响应返回所述隐私计算节点。根据本说明书一个或多个实施例的第七方面,提出了一种访问外部数据的装置,包括:请求单元,使链下隐私计算节点在链下可信执行环境中执行被区块链节点调用的链下合约的过程中,响应于所述链下合约的外部数据访问需求,在所述链下可信执行环境中生成外部数据访问请求,并将所述外部数据访问请求加密传输至预言机;响应单元,使所述链下隐私计算节点接收所述预言机加密返回的外部数据请求响应,所述外部数据请求响应由所述预言机根据对远程服务器的访问结果在预言机可信执行环境内生成并加密;反馈单元,使所述链下隐私计算节点在链下可信执行环境内解密获得所述外部数据请求响应,根据所述外部数据请求响应完成对所述链下合约的执行操作。根据本说明书一个或多个实施例的第八方面,提出了一种访问外部数据的装置,包括:接收单元,使预言机接收链下隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述链下隐私计算节点响应于链下合约的外部数据访问需求而发起;所述链下合约在被区块链节点调用的情况下,由所述链下隐私计算节点在链下可信执行环境内执行;访问单元,使所述预言机在预言机可信执行环境内解密得到所述外部数据访问请求,并根据所述外部数据访问请求访问远程服务器;返回单元,使所述预言机根据访问结果在预言机可信执行环境内创建外部数据请求响应并加密,将加密后的外部数据请求响应返回所述链下隐私计算节点;所述外部数据请求响应用于在所述链下可信执行环境内解密后参与所述链下合约的执行操作。根据本说明书一个或多个实施例的第九方面,提出了一种访问外部数据的装置,包括:请求接收单元,使预言机集群中的控制节点接收链下隐私计算节点加密传输的外部数据访问本文档来自技高网...

【技术保护点】
1.一种访问外部数据的方法,包括:/n链下隐私计算节点在链下可信执行环境中执行被区块链节点调用的链下合约的过程中,响应于所述链下合约的外部数据访问需求,在所述链下可信执行环境中生成外部数据访问请求,并将所述外部数据访问请求加密传输至预言机;/n所述链下隐私计算节点接收所述预言机加密返回的外部数据请求响应,所述外部数据请求响应由所述预言机根据对远程服务器的访问结果在预言机可信执行环境内生成并加密;/n所述链下隐私计算节点在所述链下可信执行环境内解密获得所述外部数据请求响应,根据所述外部数据请求响应完成对所述链下合约的执行操作。/n

【技术特征摘要】
1.一种访问外部数据的方法,包括:
链下隐私计算节点在链下可信执行环境中执行被区块链节点调用的链下合约的过程中,响应于所述链下合约的外部数据访问需求,在所述链下可信执行环境中生成外部数据访问请求,并将所述外部数据访问请求加密传输至预言机;
所述链下隐私计算节点接收所述预言机加密返回的外部数据请求响应,所述外部数据请求响应由所述预言机根据对远程服务器的访问结果在预言机可信执行环境内生成并加密;
所述链下隐私计算节点在所述链下可信执行环境内解密获得所述外部数据请求响应,根据所述外部数据请求响应完成对所述链下合约的执行操作。


2.根据权利要求1所述的方法,所述将所述外部数据访问请求加密传输至预言机,包括:
所述链下隐私计算节点在链下可信执行环境内基于预言机加密公钥对所述外部数据访问请求进行加密,并将加密后的外部数据访问请求发送至所述预言机;
其中,所述预言机包括维护有预言机加密私钥的预言机节点;或者,在所述预言机为预言机集群的情况下,所述预言机加密私钥由所述预言机集群的控制节点维护,加密后的外部数据访问请求被所述控制节点解密后转发至所述预言机集群内的预言机节点进行处理。


3.根据权利要求1所述的方法,所述外部数据请求响应由预言机签名私钥进行签名;所述方法还包括:
所述链下隐私计算节点基于预先获取的预言机签名公钥对所述外部数据请求响应进行验签;
其中,所述链下隐私计算节点在确认验签成功的情况下,根据所述外部数据请求响应完成对所述链下合约的执行操作。


4.根据权利要求3所述的方法,
在所述预言机为预言机节点的情况下,预言机签名私钥由所述预言机节点维护;所述方法还包括:所述链下隐私计算节点获取针对所述预言机节点的远程证明报告,所述远程证明报告由认证服务器对所述预言机节点产生的自荐信息进行验证后生成,所述自荐信息与所述预言机节点上创建的可信执行环境相关;在根据所述远程证明报告确定所述预言机节点可信的情况下,所述链下隐私计算节点将预言机签名公钥在本地保存;
在所述预言机为预言机集群的情况下,预言机签名私钥由集群中响应于所述外部数据访问请求的预言机节点维护;所述方法还包括:所述链下隐私计算节点分别获取针对集群中各个预言机节点的远程证明报告,每一远程证明报告由认证服务器对相应预言机节点产生的自荐信息进行验证后生成,所述自荐信息与相应预言机节点上创建的可信执行环境相关;所述链下隐私计算节点根据所述远程证明报告确定出可信的预言机节点,并将相应的预言机签名公钥在本地保存。


5.根据权利要求1所述的方法,所述外部数据请求响应由预言机在预言机可信执行环境内采用链下节点公钥进行加密;所述链下隐私计算节点接收所述预言机加密返回的外部数据请求响应,包括:
所述链下隐私计算节点接收所述预言机加密返回的外部数据请求响应,并在链下可信执行环境中通过链下节点私钥对接收到的外部数据请求响应进行解密。


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


7.根据权利要求1所述的方法,
所述链下隐私计算节点在所述链下可信执行环境中生成外部数据访问请求,并将所述外部数据访问请求加密传输至预言机;包括:所述链下隐私计算节点获取执行所述链下合约产生的第一格式的外部数据访问请求,并将获取到的外部数据访问请求转换为第二格式;所述链下隐私计算节点将转换为第二格式的外部数据访问请求加密传输至预言机;
所述根据所述外部数据请求响应完成对所述链下合约的执行操作,包括:所述链下隐私计算节点将获取到的第二格式的外部数据请求响应转换为第一格式的外部数据请求响应;所述链下隐私计算节点基于所述第一格式的外部数据请求响应完成对所述链下合约的执行操作。


8.根据权利要求1所述的方法,还包括:
所述链下隐私计算节点对所述外部数据访问请求中的字段进行检查;
在检测到所述外部数据访问请求中存在不符合访问要求的字段或请求内容,或者目的IP地址未处于预设白名单的情况下,所述链下隐私计算节点禁止执行访问外部数据的操作。


9.一种访问外部数据的方法,包括:
预言机接收链下隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述链下隐私计算节点响应于链下合约的外部数据访问需求而发起;所述链下合约在被区块链节点调用的情况下,由所述链下隐私计算节点在链下可信执行环境内执行;
所述预言机在预言机可信执行环境内解密得到所述外部数据访问请求,并根据所述外部数据访问请求访问远程服务器;
所述预言机根据访问结果在预言机可信执行环境内创建外部数据请求响应并加密,将加密后的外部数据请求响应返回所述链下隐私计算节点;所述外部数据请求响应用于在所述链下可信执行环境内解密后参与所述链下合约的执行操作。


10.根据权利要求9所述的方法,所述预言机接收链下隐私计算节点加密传输的外部数据访问请求,包括:
在所述预言机为预言机节点的情况下,所述预言机接收所述链下隐私计算节点在链下可信执行环境内基于预言机加密公钥加密的外部数据访问请求,并基于预言机加密私钥对接收到的外部数据访问请求进行解密;或者,
在所述预言机为预言机集群的情况下,所述预言机集群中的控制节点接收所述链下隐私计算节点在链下可信执行环境内基于预言机加密公钥加密的外部数据访问请求,并基于该控制节点维护的预言机加密私钥对所述加密后的外部数据访问请求解密后转发至所述预言机集群内的预言机节点进行处理。


11.根据权利要求9所述的方法,还包括:
所述预言机基于预言机签名私钥对所述外部数据请求响应进行签名。


12.根据权利要求11所述的方法,
在所述预言机为预言机节点的情况下,预言机签名私钥由该预言机节点维护;所述方法还包括:所述预言机向所述链下隐私计算节点返回远程证明报告;所述远程证明报告由认证服务器对该预言机节点产生的自荐信息进行验证后生成,所述自荐信息与该预言机节点上创建的可信执行环境相关;在根据所述远程证明报告确定预言机节点可信的情况下,预言机签名公钥被所述链下隐私计算节点保存在本地;
在所述预言机为预言机集群的情况下,预言机签名私钥由集群中响应于所述外部数据访问请求的预言机节点维护;所述方法还包括:所述预言机集群中的控制节点向所述链下隐私计算节点返回集群中各个预言机节点的远程报告证明,每一远程证明报告由认证服务器对相应预言机节点产生的自荐信息进行验证后生成,所述自荐信息与相应预言机节点上创建的可信执行环境相关;在根据所述远程证明报告确定出可信预言机节点的情况下,所述可信预言机节点的预言机签名公钥被所述链下隐私计算节点保存在本地。


13.根据权利要求9所述的方法,所述预言机根据访问结果在预言机可信执行环境内创建外部数据请求响应并加密,包括:
所述预言机采用链下节点公钥对创建的外部数据请求响应进行加密,并将加密的外部数据请求响应返回给所述链下隐私计算节点;所述加密的外部数据请求响应由所述链下隐私计算节点在接收后基于链下节点私钥进行解密。


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


15.根据权利要求9所述的方法,
所述预言机接收链下隐私计算节点加密传输的外部数据访问请求,包括:所述预言机接收所述链下隐私计算节点发送的第二格式的外部数据访问请求;所述第二格式的外部数据访问请求由所述链下隐私计算节点在执行所述链下合约的情况下产生的第一格式的外部数据访问请求转换得到;
所述将加密后的外部数据请求响应返回所述链下隐私计算节点,包括:所述预言机将第二格式的外部数据请求响应返回所述链下隐私计算节点;所述第二格式的外部数据请求响应由所述链下隐私计算节点转换为第一格式的外部数据请求响应;所述链下隐私计算节点基于所述第一格式的外部数据请求响应完成对所述链下合约的执行操作。


16.一种访问外部数据的方法,包括:
预言机集群中的控制节点接收链下隐私计算节点加密传输的外部数据访问请求,所述外部数据访问请求由所述链下隐私计算节点在链下可信执行环境内执行被区块链节点调用的链下合约的过程中,响应于所述链下合约的外部数据访问需求而发起;
所述控制节点在控制节点可信执行环境内解密得到所述外部数据访问请求,并向集群内被选取的预言机节点转发所述外部数据访问请求,所述外部数据访问请求用于指示被选取的预言机节点对远程服务器进行访问;
所述控制节点接收所述被选取的预言机节点根据访问结果返回的外部数据请求响应,并在控制节点可信执行环境内对所述外部数据请求响应进行加密后,将经过加密的外部数据请求响应返回所述链下隐私计算节点。


17.根据权利要求16所述的方法,所述外部数据请求响应由所述被选取的预言机节点在预言机可信执行环境内创建,并由所述被选取的预言机通过预言机私钥进行签名;所述签名后的外部数据请求响应在所述链下隐私计算节点基于预先获取的预言机公钥验签后,用于完成对所述链下合约的执行操作。


18.根据权利要求16所述的方法,还包括:
所述控制节点向所述链下隐私计算节点发送远程证明报告;所述远程证明报告由所述链下隐私计算节点验证通过后,将所述远程证明对应的预言机节点确定为可信节点;所述可信节点的公钥信息被所述链下隐私计算节点保存在本地。


19.根据权利要求16所述的方法,还包括:
所述控制节点接收所述预言机集群中的预言机节点的远程证明报告,并基于所述远程报告证明验证所述预言机节点是否为可信节点;
所述控制节点在接收到所述链下隐私计算节点发送的外部数据访问请求的情况下,基于负...

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

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

1