本说明书一个或多个实施例提供一种基于区块高度实现动态加密的方法及装置,该方法可以包括:区块链节点在可信执行环境中解密接收到的交易,以确定所述交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约,使所述智能合约中包含的合约状态被修改;所述区块链节点在可信执行环境中根据公共密钥和影响因子对所述合约状态进行加密,以将加密后合约状态写入数据库,其中所述影响因子包括所述交易所处区块的区块高度。包括所述交易所处区块的区块高度。包括所述交易所处区块的区块高度。
【技术实现步骤摘要】
基于区块高度实现动态加密的方法及装置
[0001]本说明书一个或多个实施例涉及区块链
,尤其涉及一种基于区块高度实现动态加密的方法及装置。
技术介绍
[0002]区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。
[0003]目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphic encryption)和零知识证明(Zero
‑
knowledge proof)等复杂度高,通用性差,而且还可能带来严重的性能损失。
[0004]在解决隐私方面,可信执行环境(Trusted Execution Environment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据都无法被操作系统层偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程没有效率损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(Trusted Platform Module,可信赖平台模块)以及硬件方面的Intel SGX(Software Guard Extensions,软件保护扩展)、ARM Trustzone(信任区)和AMD PSP(Platform Security Processor,平台安全处理器)。
技术实现思路
[0005]有鉴于此,本说明书一个或多个实施例提供一种基于区块高度实现动态加密的方法及装置。
[0006]为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
[0007]根据本说明书一个或多个实施例的第一方面,提出了一种基于区块高度实现动态加密的方法,包括:
[0008]区块链节点在可信执行环境中解密接收到的交易,以确定所述交易对应的智能合约;
[0009]所述区块链节点在可信执行环境中执行所述智能合约,使所述智能合约中包含的合约状态被修改;
[0010]所述区块链节点在可信执行环境中根据公共密钥和影响因子对所述合约状态进行加密,以将加密后合约状态写入数据库,其中所述影响因子包括所述交易所处区块的区块高度。
[0011]根据本说明书一个或多个实施例的第二方面,提出了一种基于区块高度实现动态
加密的装置,包括:
[0012]解密单元,在可信执行环境中解密接收到的交易,以确定所述交易对应的智能合约;
[0013]执行单元,在可信执行环境中执行所述智能合约,使所述智能合约中包含的合约状态被修改;
[0014]加密单元,在可信执行环境中根据公共密钥和影响因子对所述合约状态进行加密,其中所述影响因子包括所述交易所处区块的区块高度;
[0015]存储单元,用于将加密后合约状态写入数据库。
[0016]根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
[0017]处理器;
[0018]用于存储处理器可执行指令的存储器;
[0019]其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
[0020]根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
[0021]图1是一示例性实施例提供的一种创建智能合约的示意图。
[0022]图2是一示例性实施例提供的一种调用智能合约的示意图。
[0023]图3是一示例性实施例提供的一种基于区块高度实现动态加密的方法的流程图。
[0024]图4是一示例性实施例提供的一种影响因子仅包含区块高度时的加密示意图。
[0025]图5是一示例性实施例提供的一种影响因子同时包含区块高度与交易偏移量时的加密示意图。
[0026]图6是一示例性实施例提供的一种影响因子同时包含区块高度与合约状态的被修改次序时的加密示意图。
[0027]图7是一示例性实施例提供的一种影响因子同时包含区块高度、交易偏移量与合约状态的被修改次序时的加密示意图。
[0028]图8是一示例性实施例提供的一种合约状态的键值对的结构示意图。
[0029]图9是一示例性实施例提供的另一种合约状态的键值对的结构示意图。
[0030]图10是一示例性实施例提供的一种设备的结构示意图。
[0031]图11是一示例性实施例提供的一种基于区块高度实现动态加密的装置的框图。
具体实施方式
[0032]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
[0033]需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更
多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0034]区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。区块链的参与者即区块链节点(或简称节点),区块链节点可以读取链上的数据记录、参与交易以及竞争新区块的记账权等,各个区块链节点组成了相应的区块链网络。在上述类型的区块链中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等,且各参与者可自由加入以及退出网络。私有链则相反,相关网络的写入权限由某个组织或者机构控制,数据读取权限受组织或机构的规定。简单来说,私有链可以为一个弱中心化系统,参与者具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于区块高度实现动态加密的方法,包括:区块链节点在可信执行环境中解密接收到的交易,确定所述交易对应的智能合约;所述区块链节点在可信执行环境中执行所述智能合约,使所述智能合约的合约状态被修改;所述区块链节点在可信执行环境中根据公共密钥和影响因子对所述合约状态进行加密,并将加密后合约状态写入数据库;其中,所述影响因子包括所述交易所处区块的区块高度。2.根据权利要求1所述的方法,所述影响因子包括的区块高度用于指示区块链节点对于不同区块中交易在被执行后被修改的合约状态,采用不同取值的影响因子进行加密。3.根据权利要求1所述的方法,所述将加密后合约状态写入数据库,包括:将所述影响因子与所述加密后合约状态相关联地写入数据库。4.根据权利要求3所述的方法,所述将所述影响因子与所述加密后合约状态相关联地写入数据库,包括:将所述影响因子在可信执行环境中加密,将加密后的影响因子与所述加密后合约状态相关联地写入数据库。5.根据权利要求1所述的方法,所述影响因子还包括:所述交易在所处区块中的位置偏移量,和/或所述合约状态在所述智能合约被执行时的被修改次序。6.根据权利要求1所述的方法,交易对应的位置偏移量与在所处区块中的排列次序相关,以使得同一区块中的不同交易具有不同的位置偏移量。7.根据权利要求1所述的方法,所述区块链节点在可信执行环境中根据公共密钥和影响因子对所述合约状态进行加密,包括:所述区块链节点将所述公共密钥作为GCM算法所需的对称密钥、将所述影响因子作为GCM算法所需的初始化向量,通过GCM算法对所述合约状态进行加密,生成所述加密后合约状态和相应的校验码;其中,所述校验码被与所述加密后合约状态相关联地写入数据库。8...
【专利技术属性】
技术研发人员:刘琦,闫莺,魏长征,
申请(专利权)人:创新先进技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。