区块链中实现隐私保护的方法、节点和存储介质技术

技术编号:21659170 阅读:14 留言:0更新日期:2019-07-20 05:45
本说明书一个或多个实施例提供一种区块链中实现隐私保护的方法、节点和存储介质,该方法可以包括:第一区块链节点执行从客户端接收的交易,得到收据数据;第一区块链节点在确定所述交易包含权限保护标识时,在存储所述收据数据时为所述收据数据设定相应的访问条件;第一区块链节点在响应于针对所述收据数据的访问请求时,确定所述访问条件被满足。

Method, Node and Storage Medium for Privacy Protection in Block Chain

【技术实现步骤摘要】
区块链中实现隐私保护的方法、节点和存储介质
本说明书一个或多个实施例涉及区块链
,尤其涉及一种区块链中实现隐私保护的方法、节点和存储介质。
技术介绍
区块链技术构建在传输网络(例如点对点网络)之上。传输网络中的网络节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。这些区块链网络中的节点有时需要增加。目前企业级的区块链平台技术上最大的两个挑战就是隐私和性能,往往这两个挑战很难同时解决。大多解决方案都是通过损失性能换取隐私,或者不大考虑隐私去追求性能。常见的解决隐私问题的加密技术,如同态加密(Homomorphicencryption)和零知识证明(Zero-knowledgeproof)等复杂度高,通用性差,而且还可能带来严重的性能损失。在解决隐私方面,可信执行环境(TrustedExecutionEnvironment,TEE)是另一种解决方式。TEE可以起到硬件中的黑箱作用,在TEE中执行的代码和数据都无法被操作系统层偷窥,只有通过代码中预先定义的接口才能对其进行操作。在效率方面,由于TEE的黑箱性质,在TEE中进行运算的是明文数据,而不是同态加密中的复杂密码学运算,计算过程没有效率损失,因此与TEE相结合可以在性能损失较小的前提下很大程度上提升区块链的安全性和隐私性。目前工业界十分关注TEE的方案,几乎所有主流的芯片和软件联盟都有自己的TEE解决方案,包括软件方面的TPM(TrustedPlatformModule,可信赖平台模块)以及硬件方面的IntelSGX(SoftwareGuardExtensions,软件保护扩展)、ARMTrustzone(信任区)和AMDPSP(PlatformSecurityProcessor,平台安全处理器)。
技术实现思路
有鉴于此,本说明书一个或多个实施例提供一种区块链中实现隐私保护的方法、节点和存储介质。为实现上述目的,本说明书一个或多个实施例提供技术方案如下:根据本说明书一个或多个实施例的第一方面,提出了一种区块链中实现隐私保护的方法,包括:第一区块链节点执行从客户端接收的交易,得到收据数据;第一区块链节点在确定所述交易包含权限保护标识时,在存储所述收据数据时为所述收据数据设定相应的访问条件;第一区块链节点在响应于针对所述收据数据的访问请求时,确定所述访问条件被满足。根据本说明书一个或多个实施例的第二方面,提出了一种区块链中实现隐私保护的节点,包括:执行单元,用于执行从客户端接收的交易,得到收据数据;设定单元,用于在确定所述交易包含权限保护标识时,在存储所述收据数据时为所述收据数据设定相应的访问条件;响应单元,用于在响应于针对所述收据数据的访问请求时,确定所述访问条件被满足。根据本说明书一个或多个实施例的第三方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。附图说明图1是一示例性实施例提供的一种区块链中实现隐私保护的方法的流程图。图2是一示例性实施例提供的一种交易场景的示意图。图3是一示例性实施例提供的一种区块链中实现隐私保护的节点的组成图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。区块链一般被划分为三种类型:公有链(PublicBlockchain),私有链(PrivateBlockchain)和联盟链(ConsortiumBlockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。不论是公有链、私有链还是联盟链,在交易执行后都可以生成相应的收据(receipt)数据,以用于记录该交易相关的收据信息。以以太坊为例,节点执行交易所得的收据数据可以包括下述字段:blockHash字段,表示交易所在块的哈希值;blockNumber字段,表示交易在所处块的序号;transactionHash字段,表示交易的哈希值;transactionIndex字段,表示交易在所处块中的序号;from字段,表示交易生成方的账户地址;to字段,表示交易对象的账户地址(当交易用于创建智能合约时,To字段为空);contractAddress字段,当交易用于创建智能合约时,表示所创建智能合约的地址,否则为空;logs字段,表示交易的日志。节点在执行某一区块所含的各个交易时,每一交易被执行后都会生成相应的收据数据,而节点可以按照预定义的树状结构和处理逻辑,组织该区块所含各个交易对应的收据数据,形成一颗收据树。通过组织生成收据树,使得在针对收据数据进行查询或验证时,能够极大地提升相应的查询或验证效率。例如,以太坊中采用MPT(MerklePatriciaTree)结构组织生成上述的收据树,该收据树的叶子为该区块所含各个交易对应的收据数据的哈希值,而收据树根(receiptRoot)为根据叶子处的收据数据的哈希值依次向上生成的根哈希。当然,在其他区块链网络还可以采用其他类型的树状结构。以下结合图1所示说明本说明书一实现隐私保护的方法实施例的实现过程:步骤102,第一区块链节点执行从客户端接收的交易,得到收据数据。交易可以由客户端提交至第一区块链节点。例如,用户通过对应的账户在客户端生成该交易后,通过该客户端将交易提交至第一区块链节点。以图2为例,第一区块链节点中包含交易/查询接口,该接口可与客户端对接,使得客户端可以向第一区块链节点提交交易。第一区块链节点执行上述交易后,除了获得相应的交易执行结果之外,还会生成收据数据,该收据数据为明文形式,即上述的明文收据数据。基于不同的隐私保护需求,可以将交易划分为明文类型的明文交易、隐私类型的隐私交易。可以在交易中添加类型字段,使得第一区块链节点可以据此识别交易类型为明文交易或隐私交易。在相关技术中,例如在以太坊网络中,交易通常包含to、value、本文档来自技高网
...

【技术保护点】
1.一种区块链中实现隐私保护的方法,包括:第一区块链节点执行从客户端接收的交易,得到收据数据;第一区块链节点在确定所述交易包含权限保护标识时,在存储所述收据数据时为所述收据数据设定相应的访问条件;第一区块链节点在响应于针对所述收据数据的访问请求时,确定所述访问条件被满足。

【技术特征摘要】
1.一种区块链中实现隐私保护的方法,包括:第一区块链节点执行从客户端接收的交易,得到收据数据;第一区块链节点在确定所述交易包含权限保护标识时,在存储所述收据数据时为所述收据数据设定相应的访问条件;第一区块链节点在响应于针对所述收据数据的访问请求时,确定所述访问条件被满足。2.根据权利要求1所述的方法,所述访问条件包括:请求方处于访问白名单中;或,请求方未处于访问黑名单中。3.根据权利要求2所述的方法,所述请求方包括以下至少之一:发起请求的用户、发起请求的智能合约的合约地址、发起请求的函数。4.根据权利要求1所述的方法,所述访问条件为第一区块链节点处预定义的统一条件;或,所述访问条件为所述交易中定义的个性化条件。5.根据权利要求4所述的方法,所述交易存在多个对应的智能合约,所述收据数据包括分别对应于每一智能合约的收据子数据;所述个性化条件包括:针对所有智能合约对应的收据子数据的条件,或分别针对各个智能合约对应的收据子数据的条件。6.根据权利要求4所述的方法,所述个性化条件位于所述交易中;或,所述个性化条件位于所述交易对应的智能合约中;或,所述个性化条件位于所述交易对应的智能合约所调用的另一智能合约中。7.根据权利要求1所述的方法,当所述交易未包含权限保护标识时,所述交易对应的收据数据不存在访问条件。8.根据权利要求1所述的方法,所述交易为隐私交易或明文交易;第一区块链节点执行从客户端接收的交易,包括:第一区块链节点在可信执行环境之外执行所述明文交易,以得到所述收据数据;或,第一区块链节点在可信执行环境中对所述隐私交易进行解密,以获得相应的明文交易内容,并执行所述明文交易内容,以得到所述收据数据。9.根据权利要求8所述的方法,第一区块链节点存储所述收据数据,包括:第一区块链节点在所述可信执行环境之外执行存储功能代码,以将所述隐私交易对应的收据数据从可信执行环境输出,并存储至所述可信执行环境之外的外部存储空间。10.根据权利要求1所述的方法,所述交易用于创建和/或调用智能合约。11.根据权利要求1所述的方法,还包括:第一区块链节点在存储所述收据数据时,用密钥加密;当请求方满足所述访问条件时,第一区块链节点将加密后的收据数据返回所述请求方。12.根据权利要求11所述的方法,第一区块链节点使用密钥将所述收据数据加密,包括:第一区块链节点在确定所述交易为隐私交易时,使用密钥将所述收据数据加密。13.根据权利要求12所述的方法,第一区块链节点执行从客户端接收的交易,包括:第一区块链节点在确定所述交易为隐私交易时,在可信执行环境中对所述隐私交易进行解密以获得相应的明文交易内容,并执行所述明文交易内容;其中,所述收据数据在所述可信执行环境中被加密。14.根据权利要求12所述的方法,还包括:第一区块链节点在确定所述交易为明文交易时,在可信执行环境之外执行所述明文交易;第一区块链节点存储所述收据数据。15.根据权利要求11所述的方法,第一区块链节点使用密钥将所述收据数据加密,包括:第一区块链节点在确定所述交易包含加密标识时,使用密钥将所述收据数据加密。16.根据权利要求15所述的方法,第一区块链节点执行从客户端接收的交易,包括:第一区块链节点...

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

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

1