区块链中实现合约调用的方法及节点、存储介质技术

技术编号:26259580 阅读:36 留言:0更新日期:2020-11-06 17:54
本说明书一个或多个实施例提供一种区块链中实现合约调用的方法及节点、存储介质,该方法可以包括:第一区块链节点在可信执行环境中执行明文类型的智能合约,以确定所述明文类型的智能合约调用的智能合约;当被调用的智能合约为隐私类型时,第一区块链节点对所述被调用的智能合约进行解密,以在所述可信执行环境中执行。

【技术实现步骤摘要】
区块链中实现合约调用的方法及节点、存储介质
本说明书一个或多个实施例涉及区块链
,尤其涉及一种区块链中实现合约调用的方法及节点、存储介质。
技术介绍
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等复杂度高,通用性差,而且还可能带来严重的性能损失。在解决隐私方面,可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱本文档来自技高网...

【技术保护点】
1.一种区块链中实现合约调用的方法,包括:/n区块链节点接收交易,所述交易用于调用明文类型的智能合约;/n所述区块链节点将所述交易传入可信执行环境,在所述可信执行环境中执行所述明文类型的智能合约,并在所述可信执行环境中解密和执行所述明文类型的智能合约进一步调用的隐私类型的智能合约;或者,/n所述区块链节点将所述交易传入常规执行环境,在所述常规执行环境中执行所述明文类型的智能合约,并在所述常规执行环境中执行所述明文类型的智能合约进一步调用的另一明文类型的智能合约。/n

【技术特征摘要】
1.一种区块链中实现合约调用的方法,包括:
区块链节点接收交易,所述交易用于调用明文类型的智能合约;
所述区块链节点将所述交易传入可信执行环境,在所述可信执行环境中执行所述明文类型的智能合约,并在所述可信执行环境中解密和执行所述明文类型的智能合约进一步调用的隐私类型的智能合约;或者,
所述区块链节点将所述交易传入常规执行环境,在所述常规执行环境中执行所述明文类型的智能合约,并在所述常规执行环境中执行所述明文类型的智能合约进一步调用的另一明文类型的智能合约。


2.根据权利要求1所述的方法,还包括:
当所述交易为经加密的隐私交易时,或者当所述交易调用的明文类型的智能合约被标注为隐私处理类型时,所述区块链节点将所述交易传入所述可信执行环境;否则,所述区块链节点将所述交易传入所述常规执行环境。


3.根据权利要求2所述的方法,还包括:
所述区块链节点根据所述交易中类型字段的取值确定所述交易的类型;其中,类型字段的第一取值用于表明所属交易为明文交易,类型字段的第二取值用于表明所属交易为隐私交易。


4.根据权利要求1所述的方法,所述区块链节点通过所述可信执行环境内部署的虚拟机执行读入所述可信执行环境内的智能合约;以及,通过所述常规执行环境中部署的虚拟机执行读入所述常规执行环境内的智能合约。


5.根据权利要求1所述的方法,
所述明文类型的智能合约直接进一步调用所述隐私类型的智能合约;或,
所述明文类型的智能合约间接调用所述隐私类型的智能合约,且所述间接调用涉及到的智能合约均被读入可信执行环境中执行。


6.根据权利要求1所述的方法,还包括:
所述区块链节点确定所述明文类型的智能合约进一步调用的智能合约的调用条件;
所述区块链节点在所述调用条件被满足时,执行所述明文类型的智能合约进一步调用的智能合约。


7.根据权利要求6所述的方法,所述调用条件包括:
调用方处于调用白名单中;或,
调用方未处于调用黑名单中。


8.根据权利要求7所述的方法,所述调用方包括以下至少之一:发起调用的用户、所述智能合约的合约地址、发起调用的函数。


9.根据权利要求7所述的方法,
所述调用白名单或所述调用黑名单位于所述被调用的智能合约中;或,
所述调用白名单或所述调用黑名单位于所述被调用的智能合约所调用的另一智能合约中。


10.根据权利要求1所述的方法,还包括:
所述区块链节点将明文执行结果加密为密文执行结果后从所述可信执行环境中输出,并通过在所述可信执行环境之外执行存储功能代码,以将所述密文执行结果存储至所述可信执行环境之外的外部存储空间。


11.根据权利要求10所述的方法,还包括:
所述区块链节点在可信执行环境内执行写缓存功能代码,以将所述明文执行结果存入所述可信执行环境内的写缓存中;
其中,所述区块链节点将所述写缓存中的数据加密后从所述可信执行环境输出,以存储至所述外部存储空间。


12.根据权利要求11所述的方法,所述缓存功能代码以明文形式存储于所述可信执行环境中;或,所述写缓存功能代码以密文形式存储于所述可信执行环境之外。


13.根据权利要求10所述的方法,还包括:
所述区块链节点根据客户端发起的查询请求,对所述明文执行结果加密后从所述可信执行环境输出,以返回至所述客户端。


14.根据权利要求13所述的方法,所述对所述明文执行结果加密后从可信执行环境输出,包括:
所述区块链节点从所述外部存储空间中读取所述密文执行结果,将所述密文执行结果解密为所述明文执行结果后,读入所述可信执行环境;对所述明文执行结果加密后从可信执行环境输出;或,
所述区块链节点从可信执行环境内的读缓存中读取所述明文执行结果,并对所述明文执行结果加密后从可信执行环境输出;其中,所述明文执行结果由所述区块链节点预先在可信执行环境内执行读缓存功能代码,从所述外部存储空间中读取所述密文执行结果,将所述密文执行结果解密为所述明文执行结果后,读入所述可信执行环境并存入所述读缓存中。


15.一种区块链中实现合约调用的方法,包括:
区块链节点接收交易,所述交易用于调用明文类型或隐私类型的智能合约;
所述区块链节点将所述交易传入可信执行环境,在所述可信执行环境中解密和执行所述隐私类型的智能合约,并在所述可信执行环境中解密和执行所述隐私类型的智能合约进一步调用的隐私类型的智能合约;或者,
所述区块链节点将所述交易传入常规执行环境,在所述常规执行环境中执行所述明文类型的智能合约,并在所述常规执行环境中执行所述明文类型的智能合约进一步调用的另一明文类型的智能合约。


16.根据权利要求15所述的方法,还包括:
当所述交易为经加密的隐私交易时,或者当所述交易调用的明文类型的智能合约被标注为隐私处理类型时,所述区块链节点将所述交易传入所述可信执行环境;否则,所述区块链节点将所述交易传入所述常规执行环境。


17.根据权利要求16所述的方法,还包括:
所述区块链节点根据所述交易中类型字段的取值确定所述交易的类型;其中,类型字段的第一取值用于表明所属交易为明文交易,类型字段的第二取值用于表明所属交易为隐私交易。


18.根据权利要求15所述的方法,所述区块链节点通过所述可信执行环境内部署的虚拟机执行读入所述可信执行环境内的智能合约;以及,通过所述常规执行环境中部署的虚拟机执行读入所述常规执行环境内的智能合约。


19.根据权利要求15所述的方法,
所述隐私类型的智能合约直接进一步调用隐私类型的智能合约;或,
所述隐私类型的智能合约间接调用隐私类型的智能合约,且所述间接调用涉及到的智能合约均被读入可信执行环境中执行。


20.根据权利要求15所述的方法,还包括:
所述区块链节点确定所述交易调用的智能合约进一步调用的智能合约的调用条件;
所述区块链节点在所述调用条件被满足时,执行所述交易调用的智能合约进一步调用的智能合约。


21.根据权利要求20所述的方法,所述调用条件包括:
调用方处于调用白名单中;或,
调用方未处于调用黑名单中。


22.根据权利要求21所述的方法,所述调用方包括以下至少之一:发起调用的用户、所述智能合约的合约地址、发起调用的函数。


23.根据权利要求21所述的方法,
所述调用白名单或所述调用黑名单位于所述被调用的智能合约中;或,
所述调用白名单或所述调用黑名单位于所述被调用的智能合约所调用的另一智能合约中。


24.根据权利要求15所述的方法,还包括:
所述区块链节点将明文执行结果加密为密文执行结果后从所述可信执行环境中输出,并通过在所述可信执行环境之外执行存储功能代码,以将所述密文执行结果存储至所述可信执行环境之外的外部存储空间。


25.根据权利要求24所述的方法,还包括:
所述区块链节点在可信执行环境内执行写缓存功能代码,以将所述明文执行结果存入所述可信执行环境内的写缓存中;
其中,所述区块链节点将所述写缓存中的数据加密后从所述可信执行环境输出,以存储至所述外部存储空间。


26.根据权利要求25所述的方法,所述缓存功能代码以...

【专利技术属性】
技术研发人员:闫莺魏长征宋旭阳赵博然
申请(专利权)人:创新先进技术有限公司
类型:发明
国别省市:开曼群岛;KY

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

1