fabric private data利用SideDB来保存私有数据,至关于在通道之上又提供了一层更细粒度的数据隐私保护机制。本文将介绍fabric private data的引入目的、基本概念与应用场景。java
若是要快速掌握hyperledger fabric区块链的开发,推荐汇智网的在线互动实战教程:数据库
目前在Hyperledger Fabric中实现数据隐私的方法是使用通道。可是官方并不孤立为了实现数据的隐私保护而在大型网络中建立大量通道,由于这会带来额外的开销,例如管理策略、链码版本以及成员服务提供(MSP)等。在一个通道中,全部的数据要么是公开的,要么是私有的。所以若是你想要将资产转给通道外的成员会很麻烦。这就是Hyperledger Fabric引入私有交易的缘由。farbic private data容许基于策略建立私有数据集,来定义通道中的哪些成员能够访问数据。能够简单地经过添加策略来管理fabric private data。这使得能够将某些数据仅对部分红员公开。网络
考虑一下Hyperledger Fabric的marbles示例。全部的marble数据均可以公开,除了其持有人以及价格信息,这两个数据是不能对别人公开的,价格不该该被别人了解。可能你须要跟踪这个数据,由于你须要验证在销售marble的人是不是真正的持有人。一个假想的marble审计公司能够做为你的合伙人来验证这一点。若是你使用通道,那么全部的你的行为将记录在帐本状态中,而任何人都看获得。架构
在上图中,第一个集合,Channel Read-Write Sets”
是没有引入fabric private data时的架构,每个交易都记录其状态和历史。ide
第二个集合,private state partition 1
则显示了在两个分属不一样机构的节点之间的一个共享私有状态。这个状态是根据预先的策略在节点间复制获得的。区块链
第三个集合,private state partition 2&3
则显示了fabric private data的真正为例。数据集能够被某些成员忽略。这意味着你能够为每个marble卖家和审计者单独设立私有数据集。这些数据集容许添加一些额外的数据,主要的数据仍是保存在主状态和帐本中。翻译
被受权的节点将能够看获得在主帐本上的数据哈希,以及在私有数据库中的真实数据。未获得受权的节点将不会同步私有数据库,只能看到在主帐本上的数据哈希。因为哈希是不可逆的,所以这些未受权的节点没法看到真实的数据。code
从更高的层面看,fabric private data解决的问题看起来是这样:blog
汇智网翻译整理,转载请标明出处