区块链中实现隐私保护的方法技术

技术编号:21660092 阅读:39 留言:0更新日期:2019-07-20 05:59
本申请实施例公开了区块链中实现隐私保护的方法,包括:客户端将包含智能合约的交易加密,并将加密后的所述交易发给第一区块链节点,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点解密所述交易中的所述智能合约的代码,在可信执行环境中执行所述智能合约的代码,在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。利用本申请实施例,可以灵活的针对标明隐私保护的合约状态进行加密。

Privacy Protection in Block Chain

【技术实现步骤摘要】
区块链中实现隐私保护的方法
本申请涉及区块链
,尤其涉及一种区块链中实现隐私保护的方法。
技术介绍
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等复杂度高,通用性差,而且还可能带来严重的性能损失。在解决隐私方面,可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据操作系统层都无法偷窥,只有代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程效率没有损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(TrustedPlatformModule,可信赖平台模块)以及硬件方面的IntelSGX(SoftwareGuardExtensions,软件保护扩展)、ARMTrustzone(信任区)和AMDPSP(PlatformSecurityProcessor,平台安全处理器)。区块链2.0时代中出现的智能合约,将区块链的应用范围提升到了一个新高度。有了智能合约,区块链能做不再是单一的转账交易,而是还可以调用一段代码,而这段代码可以由用户自定义。在传统的区块链与TEE相结合的解决方案中,为了实现隐私保护,智能合约整体被当作需要隐私保护的数据在TEE中进行运算并将全部合约状态加密存储在区块链上。而实际上智能合约中部分内容可能是敏感的,才需要进行隐私保护,而其它内容并不敏感,可以公开。目前的解决方案没有一种更加灵活的实现隐私保护的方法。
技术实现思路
本申请实施例的目的是提供一种区块链中实现隐私保护的方法。为解决上述技术问题,本申请实施例是这样实现的:一种区块链中实现隐私保护的方法,包括:客户端将包含智能合约的交易加密,并将加密后的所述交易发给第一区块链节点,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点解密所述交易中的所述智能合约的代码,在可信执行环境中执行所述智能合约的代码,在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。一种区块链中实现隐私保护的方法,包括:第一区块链节点接收经过加密的包含智能合约的交易,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点解密所述交易中的所述智能合约的代码;第一区块链节点在可信执行环境中执行解密的所述智能合约的代码,并在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。一种区块链中实现隐私保护的系统,包括客户端和第一区块链节点,其中:客户端用于将包含智能合约的交易加密,并将加密后的所述交易发给第一区块链节点,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点用于解密所述交易中的所述智能合约的代码,在可信执行环境中执行所述智能合约的代码,在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。一种区块链中实现隐私保护的节点,包括:接收模块,用于接收经过加密的包含智能合约的交易,所述智能合约的代码中包括通过隐私标识符标明的合约状态;解密模块,用于解密所述交易中的所述智能合约的代码;执行模块,用于在可信执行环境中执行解密的所述智能合约的代码;写入模块,用于在执行模块执行解密的所述智能合约的代码后,将所述隐私标识符标明的合约状态写入数据库时用密钥加密;数据库,用于存储写入的用密钥加密的合约状态。由以上本申请实施例提供的技术方案可见,本申请实施例对于智能合约代码中通过所述隐私标识符标明的合约状态,可以加密存储在所述数据库中。对于智能合约代码中没有通过所述隐私标识符标明的合约状态,可以仍然是明文存储在所述数据库中。相对于现有技术中智能合约的全部合约状态被当做需要隐私保护的数据在TEE中运算并将全部合约状态存储在数据库中,本实施例可以灵活的针对标明隐私保护的合约状态进行加密。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请一个实施例的创建智能合约的图示过程;图2为本申请一个实施例的调用智能合约的图示过程;图3为本申请一个实施例中创建智能合约和调用智能合约的示意图;图4为本申请一实现隐私保护的方法实施例的流程图;图5为本申请一实现隐私保护的方法实施例的流程图;图6为本申请一实现隐私保护的系统实施例的组成图;图7为本申请一实现隐私保护的节点实施例的组成图。具体实施方式本申请实施例提供一种区块链中实现隐私保护的方法。为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。区块链一般被划分为三种类型:公有链(PublicBlockchain),私有链(PrivateBlockchain)和联盟链(ConsortiumBlockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复本文档来自技高网
...

【技术保护点】
1.一种区块链中实现隐私保护的方法,包括:客户端将包含智能合约的交易加密,并将加密后的所述交易发给第一区块链节点,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点解密所述交易中的所述智能合约的代码,在可信执行环境中执行所述智能合约的代码;在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。

【技术特征摘要】
1.一种区块链中实现隐私保护的方法,包括:客户端将包含智能合约的交易加密,并将加密后的所述交易发给第一区块链节点,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点解密所述交易中的所述智能合约的代码,在可信执行环境中执行所述智能合约的代码;在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。2.如权利要求1所述的方法,其中,第一区块链节点接收的交易中的智能合约,包括:用户在第一区块链节点上用高级语言编写的智能合约;或,用户在客户端上用高级语言编写的智能合约;或,客户端通过第二区块链节点发来的交易中的智能合约。3.如权利要求2所述的方法,其中,对于用户在第一区块链节点上用高级语言编写的智能合约,第一区块链节点接收所述收包含智能合约的交易后,还包括:采用编译器对所述高级语言编写的智能合约进行编译,生成字节码。4.如权利要求2所述的方法,其中,对于用户在客户端上用高级语言编写的智能合约,用户在客户端上书写智能合约后,所述客户端还采用编译器对高级语言编写的智能合约进行编译,生成字节码,进而将字节码形式的智能合约发送至第一区块链节点;相应地,所述第一区块链节点接收包含智能合约的交易,其中的智能合约为字节码形式的智能合约。5.如权利要求2所述的方法,其中,对于用户在客户端上用高级语言编写的智能合约,用户在客户端上书写智能合约后,将高级语言编写的智能合约发送到第一区块链节点;相应地,所述第一区块链节点接收包含智能合约的交易,其中的智能合约为高级语言形式的智能合约;所述方法还包括:第一区块链节点采用编译器对所述高级语言编写的智能合约进行编译,生成字节码。6.如权利要求2所述的方法,其中,所述客户端通过第二区块链节点发来的交易中的智能合约,包括字节码形式的智能合约或用高级语言编写的智能合约。7.如权利要求6所述的方法,其中,对于用高级语言编写的智能合约,第一区块链节点接收所述收包含智能合约的交易后,还包括:采用编译器对所述高级语言编写的智能合约进行编译,生成字节码。8.如权利要求3-7所述的方法,其中,所述高级语言形式的智能合约中包括通过第一隐私标识符标明的需要进行隐私保护的合约状态,所述字节码形式的智能合约中包括通过第二隐私标识符标明的需要进行隐私保护的合约状态;所述第一隐私标识符与第二隐私标识符相同或存在对应关系。9.如权利要求1所述的方法,其中,所述客户端将包含智能合约的交易加密,所述加密方式采用对称加密方式或非对称加密方式,或采用对称加密结合非对称加密的方式。10.如权利要求9所述的方法,其中,所述客户端将包含智能合约的交易用对称加密的私钥加密,第一区块链节点用对应的对称加密的私钥解密所述交易得到所述智能合约的代码;或,所述客户端将包含智能合约的交易用非对称加密的公钥加密,第一区块链节点用对应的非对称加密的私钥解密所述交易得到所述智能合约的代码。11.如权利要求9所述的方法,其中,所述对称加密结合非对称加密的方式,包括数字信封加密方式。12.如权利要求11所述的方法,其中,所述客户端采用对称加密算法的私钥加密包含智能合约的交易,并用非对称加密算法的公钥加密对称加密算法中采用的私钥;相应地,第一区块链节点接收到所述加密的交易后,采用非对称加密算法的私钥进行解密得到对称加密算法的私钥,并用所述对称加密算法的私钥解密得到交易内容。13.如权利要求10或12所述的方法,其中,所述对称加密算法的公钥,由所述客户端与第一区块链节点协商得到,或由密钥管理服务器发送得到。14.如权利要求12所述的方法,其中,所述对称加密算法的公钥由所述客户端生成,密钥管理服务器通过远程证明将所述非对称加密算法的私钥发送至第一区块链节点的围圈,将所述非对称加密算法的公钥发送至所述客户端。15.如权利要求1所述的方法,其中,所述智能合约包括创建和/或调用智能合约。16.如权利要求1所述的方法,其中,所述数据库存储于持久性存储介质。17.如权利要求16所述的方法,所述持久性存储介质包括磁盘、软盘或通电后可恢复数据从而可以持久存储的内存。18.如权利要求1所述的方法,其中,所述密钥包括对称加密的密钥或非对称加密的密钥。19.如权利要求18所述的方法,其中,所述对称加密的密钥包括seal密钥。20.如权利要求18所述的方法,其中,所述seal密钥在第一区块链节点的SGX通过远程证明后由密钥管理服务器发送。21.一种区块链中实现隐私保护的方法,包括:第一区块链节点接收经过加密的包含智能合约的交易,所述智能合约的代码中包括通过隐私标识符标明的合约状态;第一区块链节点解密所述交易中的所述智能合约的代码;第一区块链节点在可信执行环境中执行解密的所述智能合约的代码,并在将所述隐私标识符标明的合约状态写入数据库时,用密钥加密。22.如权利要求21所述的方法,其中,第一区块链节点接收的交易中的智能合约,包括:用户在第一区块链节点上用高级语言编写的智能合约;或,用户在客户端上用高级语言编写的智能合约;或,所述客户端通过第二区块链节点发来的交易中的智能合约。23.如权利要求22所述的方法,其中,对于用户在第一区块链节点上用高级语言编写的智能合约,第一区块链节点接收所述收包含智能合约的交易后,还包括:采用编译器对所述高级语言编写的智能合约进行编译...

【专利技术属性】
技术研发人员:闫莺宋旭阳林立赵博然余逸荣
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1