订购者组织的 Hyperledger Fabric 所有权

Hyperledger Fabric Ownership of the Orderer Organization

根据大多数示例,逻辑上至少有 3 个组织 (org1, org2, orderer)。 实际上只有 2 个物理组织 (org1, org2)。其中一个组织或约定的第 3 方必须移交订购者组织的责任。

Q1:谁应该是 Hyperledger 中“Orderer Organization”的owner网络?

Q2:如果一个组织成为“排序者组织”并拥有所有排序者节点( Raft) 在 Hyperledger 网络中?

Q1:谁应该是 Hyperledger Network 中"Orderer Organization"的所有者

第一个问题的答案很棘手。只是作为回答的序言,因为 Fabric 的设计依赖于确定性共识算法,任何经过对等方验证的块都保证是最终的和正确的。分类帐不能像在许多其他分布式和无许可区块链网络(如比特币或以太坊)中那样分叉。 Orderer/Ordering 节点 执行此事务排序,它与其他排序节点一起形成一个 排序服务

就像对等点一样,排序节点属于组织,与区块链网络交互的一切,包括排序者,都从他们的数字证书和他们的会员服务提供商( MSP) 定义。

每个通道都运行在一个单独的 Raft 协议实例上,这允许每个实例选举不同的领导者。此配置还允许在集群由 不同组织 控制的排序节点组成的用例中进一步分散服务。虽然所有 Raft 节点都必须是系统通道的一部分,但它们不一定必须是所有应用程序通道的一部分。 频道创建者(和频道管理员) 能够选择可用排序器的子集并根据需要添加或删除排序节点(只要在一次)。

因此频道创建者和频道管理员可以选择可用订购者的子集或 add/remove 单个订购者。此外,多个组织可以控制具有排序节点的集群。因此,由您称呼谁为所有者取决于您。

Q2:如果一个组织成为 "Orderer Organizaion" 并拥有 Hyperledger Network 中的所有排序节点 (Raft),是否会存在安全漏洞?

在明确回答之前需要注意的几点:

  • 订购者看不到交易数据,他们只能订购交易。
  • 与区块链网络交互的所有事物,包括对等点、应用程序、管理员和排序者,都从他们的数字证书和他们的会员服务提供商 (MSP) 定义中获取他们的组织身份。
  • 尽管组织可以同时充当排序角色和应用角色,但这是一种非常不推荐的配置。默认情况下,/Channel/Orderer/BlockValidation 策略允许订购组织的任何有效证书对块进行签名。如果组织同时扮演订购和应用程序角色,则应更新此政策以将块签名者限制为授权订购的证书子集。
  • 在授权任何交易(订购)之前,它会由同行验证,并在验证共识交易后提交。
  • 在 Hyperledger Fabric 中,排序服务生成的块是最终的。一旦一笔交易被写入一个区块,它在账本中的位置就得到了不可更改的保证。正如我们之前所说,Hyperledger Fabric 的最终性意味着没有账本分叉,并且经过验证的交易永远不会被还原或删除。
  • Raft 遵循“领导者和追随者”模型,其中选举领导者节点(每个通道),其决策由追随者复制。

所以如果以上几点在实施中考虑到安全性,它不应该是一个安全漏洞,因为排序者只是在做排序,看不到交易,在提交交易之前由 Peers 验证, Peer 和 orderer 是不同的组织,一旦事务按顺序提交,它的顺序和位置就是最终的和不可变的。

来源:

https://hyperledger-fabric.readthedocs.io/en/release-2.0/orderer/ordering_service.html

https://hyperledger-fabric.readthedocs.io/en/release-2.0/Fabric-FAQ.html

https://medium.com/@kctheservant/add-a-new-organization-on-existing-hyperledger-fabric-network-2c9e303955b2

https://medium.com/swlh/hyperledger-chapter-6-hyperledger-fabric-components-technical-context-767985f605dd