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