Hyperledger Fabric 上的无限组织

Unlimited organizations on Hyperledger Fabric

概览

我的区块链架构要求每个用户都将他们的数据保密。可以有无限数量的用户(比如数百万)。根据 Hyperledger Fabric's documentation

An organization can be as large as a multi-national corporation or as small as an individual

这是我想到的架构:

  1. 我的公司将在业务网络上有组织 A
  2. 每次用户注册时,我都会在业务网络上创建一个新的组织 N 和新的频道 C。
  3. 每个新频道都会有两个成员:组织A和用户新添加的组织N

我故意没有选择 Private Data because Add an Org to Channel tutorial 建议如果特定通道中存在 N 个组织,则 N-1 个组织必须签署交易才能允许新组织进入。因为之间的数据共享为零每个用户组织,所以我正在创建无限频道(每个用户组织一个频道)。

问题:

  1. 我试图避免在尝试将新组织添加到现有频道时出现的线性复杂性。我的架构是否有效地解决了复杂性的线性增加?
  2. 我 运行 是否遇到了此设计的其他问题?
  3. 我的设计有什么违反直觉的地方?

从技术角度来看,拥有大量双边渠道并没有真正的问题。添加新组织的过程意味着您需要创建新通道,将用户节点加入通道,将组织 A 加入通道,然后在该通道上实例化任何链代码。很容易实现自动化。在某些时候,您可能需要为组织 A 创建多个对等点并在这些对等点之间分配通道。

另一方面,您可以考虑将私有数据与基于状态的背书相结合。与其在 Org A 和每个用户之间创建通道,不如创建一个集合 Org A / Org N,然后使用基于状态的背书只需要 Org A 和 Org N 的背书。这里的缺点是 Org N+1 ... Org N + X 最终会得到所有用户的所有 keys/values 的哈希值...您可能不想要(特别是因为它要求用户存储与他们无关的数据)。

我认为很明显,当您拥有数百万用户时,为每个用户创建一个组织并不是一个好主意。在 Hyperledger 中,一个组织将拥有自己的同行,而这在用户级别上是没有意义的。除此之外,即使从维护的角度来看,管理具有无限数量的组织和渠道的几乎无限的网络也是不切实际的,更不用说构建的角度了。

我建议您探索其他确保用户数据安全的方法。一种方法是对其进行加密、散列,只要对您自己的情况有意义,然后才将其存储在分类帐中。但是,用户仍然是一个或多个组织的一部分,其中组织的总数是可管理的。

从你目前所说的来看,我不相信 Hyperledger 是适合你的方式。也许你自己的以太坊网络会更好,因为你有用户级账户。如果您不需要区块链解决方案,您可能希望坚持使用标准方法来构建类似这样的东西。