区块链中安全更新密钥的方法及节点、存储介质技术

技术编号:21251170 阅读:87 留言:0更新日期:2019-06-01 09:15
本说明书一个或多个实施例提供一种区块链中安全更新密钥的方法及节点、存储介质,该方法可以包括:区块链节点确定接收到的交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约;所述区块链节点在存储执行结果时用密钥加密,所述密钥由所述区块链节点根据保存于所述可信执行环境中的安全密钥而生成;所述区块链节点对所述安全密钥进行版本更新时,将低版本的安全密钥更新为高版本的安全密钥,其中低版本的安全密钥由高版本的安全密钥不可逆地计算得到。

Secure Key Updating Method in Block Chain and Node and Storage Media

One or more embodiments of this specification provide a method for securely updating a key in a block chain and a node, storage medium. The method may include: the block chain node determines the intelligent contract corresponding to the received transaction; the block chain node executes the intelligent contract in a trusted execution environment; and the block chain node encrypts the key when storing the execution result. The block chain node is generated according to the security key stored in the trusted execution environment; when the block chain node updates the version of the security key, the low version of the security key is updated to the high version of the security key, in which the low version of the security key is irreversibly calculated by the high version of the security key.

【技术实现步骤摘要】
区块链中安全更新密钥的方法及节点、存储介质
本说明书一个或多个实施例涉及区块链
,尤其涉及一种区块链中安全更新密钥的方法及节点、存储介质。
技术介绍
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等复杂度高,通用性差,而且还可能带来严重的性能损失。在解决隐私方面,可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(TrustedPlatformModule,可信赖平台模块)以及硬件方面的IntelSGX(SoftwareGuardExtensions,软件保护扩展)、ARMTrustzone(信任区)和AMDPSP(PlatformSecurityProcessor,平台安全处理器)。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种区块链中安全更新密钥的方法及节点、存储介质。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种区块链中安全更新密钥的方法,包括:区块链节点确定接收到的交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约;所述区块链节点在存储执行结果时用密钥加密,所述密钥由所述区块链节点根据保存于所述可信执行环境中的安全密钥而生成;所述区块链节点对所述安全密钥进行版本更新时,将低版本的安全密钥更新为高版本的安全密钥,其中低版本的安全密钥由高版本的安全密钥不可逆地计算得到。根据本说明书一个或多个实施例的第二方面,提出了一种区块链中安全更新密钥的节点,包括:确定单元,用于确定接收到的交易对应的智能合约;执行单元,用于在可信执行环境中执行所述智能合约;存储单元,用于存储执行结果;加密单元,用于在存储执行结果时用密钥加密,所述密钥由所述区块链节点根据保存于所述可信执行环境中的安全密钥而生成;更新单元,用于对所述安全密钥进行版本更新时,将低版本的安全密钥更新为高版本的安全密钥,其中低版本的安全密钥由高版本的安全密钥不可逆地计算得到。根据本说明书一个或多个实施例的第三方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。附图说明图1是一示例性实施例提供的一种创建智能合约的示意图。图2是一示例性实施例提供的一种调用智能合约的示意图。图3是一示例性实施例提供的一种创建和调用智能合约的示意图。图4是一示例性实施例提供的一种区块链中实现隐私保护的方法的流程图。图5是一示例性实施例提供的一种处理区块链交易的示意图。图6是一示例性实施例提供的一种密钥版本演进的示意图。图7是一示例性实施例提供的一种合约状态的数据结构的示意图。图8是一示例性实施例提供的一种区块链中实现隐私保护的节点的组成图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。区块链一般被划分为三种类型:公有链(PublicBlockchain),私有链(PrivateBlockchain)和联盟链(ConsortiumBlockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。例如图1所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。交易的data字段保存的可以是字节码,交易的to字段为一个空的账户。节点间通过共识机制达成一致后,这个合约成功创建,后续用户可以调用这个合约。合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码和账户存储将保存在该合约账户中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储(Storage)的虚拟账户。此外,如图2所示,仍以以太坊为例,Bob将一个包含调用智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图中2中交易的from字段是发起调用智能合约的账户的地址,to字段中的“0x692a70d2…”代表了被调用的本文档来自技高网
...

【技术保护点】
1.一种区块链中安全更新密钥的方法,包括:区块链节点确定接收到的交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约;所述区块链节点在存储执行结果时用密钥加密,所述密钥由所述区块链节点根据保存于所述可信执行环境中的安全密钥而生成;所述区块链节点对所述安全密钥进行版本更新时,将低版本的安全密钥更新为高版本的安全密钥,其中低版本的安全密钥由高版本的安全密钥不可逆地计算得到。

【技术特征摘要】
1.一种区块链中安全更新密钥的方法,包括:区块链节点确定接收到的交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约;所述区块链节点在存储执行结果时用密钥加密,所述密钥由所述区块链节点根据保存于所述可信执行环境中的安全密钥而生成;所述区块链节点对所述安全密钥进行版本更新时,将低版本的安全密钥更新为高版本的安全密钥,其中低版本的安全密钥由高版本的安全密钥不可逆地计算得到。2.根据权利要求1所述的方法,最高版本的安全密钥包括seal密钥,其他版本的安全密钥直接或间接由所述seal密钥不可逆地计算得到。3.根据权利要求2所述的方法,所述seal密钥在第一区块链节点的SGX通过远程证明后由密钥管理服务器发送;或,所述seal密钥由第一区块链节点与其他区块链节点之间协商得到。4.根据权利要求1所述的方法,所述安全密钥存储于所述第一区块链节点的围圈中。5.根据权利要求4所述的方法,所述第一区块链节点存在若干围圈,所述安全密钥存储于安全围圈中。6.根据权利要求5所述的方法,所述安全围圈包括QE围圈。7.根据权利要求1所述的方法,所述执行结果涉及多个合约状态,各个合约状态由同一所述密钥进行加密。8.根据权利要求7所述的方法,所述密钥由所述区块链节点根据所述安全密钥和至少一个影响因子而生成。9.根据权利要求8所述的方法,所述影响因子包括以下至少之一:所述智能合约的合约地址、所述智能合约的代码哈希值、所述智能合约的合约创建者的账户地址、所述交易的发起方的账户地址。10.根据权利要求1所述的方法,所述执行结果涉及多个合约状态,不同合约状态由不同的密钥进行加密。11.根据权利要求10所述的方法,所述执行结果涉及合约状态X1~Xn,分别对应于密钥K1~Kn;其中,合约状态Xi对应的密钥Ki由所述区块链节点根据所述安全密钥和至少一个对应于合约状态Xi的影响因子而生成,1≤i≤n。12.根据权利要求11所述的方法,所述影响因子包括至少一项下述的私有影响因子:合约状态Xi在所述智能合约中的出现顺序Pi、对应于所述出现顺序的计数值Qi、分配至合约状态Xi的随机数Si。1...

【专利技术属性】
技术研发人员:魏长征闫莺
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1