为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是由LinuxFoundation®托管的8个Hyperledger®项目之一.
Hyperledger Fabric是被广泛使用的,支持准入网络上的分布式账本解决方案.它的模块化架构最大程度地提高了区块链解决方案的机密性,弹性和灵活性.
Hyperledger Fabric是用于准入网络的框架,其中所有参与者都具有已知身份.在考虑准入的网络时,您应该考虑您的区块链用例是否需要遵守数据保护法规.许多用例(尤其是在金融部门和医疗保健行业)受数据保护法律的约束,这些法律要求了解网络的成员是谁以及谁在访问特定数据.
例如,考虑一家私募股权公司.根据定义,私募股权不在证券交易所公开交易,其投资者通常是风险投资公司,私募股权公司或天使投资者.该网络的参与者必须是已知的,并且在资金方面具有信誉,才能进行投资才能参与区块链.
Hyperledger Fabric建立在模块化架构之上,该架构将事务处理分为三个阶段:分布式逻辑处理和协议("链码"),事务排序以及事务验证和承诺.这种分离具有多个优点:跨节点类型所需的信任和验证级别更少,并且网络可伸缩性和性能得到了优化.
为了说明这一点,让我们看一下Hyperledger Fabric v1.0中的事务流,如下图所示.
从图的左侧开始:
1)交易建议由应用程序提交给背书的peer节点.
3)然后背书的peer节点将签名的提案响应(背书)发送回应用程序.
7)验证是否符合背书策略,并检查读/写集以检测冲突的事务.如果两项检查均通过,则该块将提交到账本,并且每个事务的状态更新都将反映在状态数据库中.
由于使用新的v1.X架构,只有签名和读/写集是通过网络发送的,因此可伸缩性和性能得到了优化.此外,由于只有背书人和提交人才能真正看到交易,因此在区块链系统的不同部分中需要较少的信任级别,从而提供了更高的安全性.
例如,在资本市场中,随着股权支持证券或债券的买卖,交易量由于参与者的增加而增加.增加的事务需要改进的可伸缩性和性能,Hyperledger Fabric v1.X提供了此功能,部分原因是拆分了链代码执行.
拆分链码执行还可以使网络动态增长.在Hyperledger Fabric v1.X中,可以动态和以编程方式添加peer,而不是像v0.6中那样以静态方式添加.例如,假设一家管理外汇汇率的公司有一家新银行要添加到网络中.使用Hyperledger Fabric v1.X,他们可以以编程方式执行此操作.
由于竞争力,保护法和个人数据机密性的规定,企业需要对某些数据元素进行隐私保护,这可以通过在区块链上进行数据分区来实现. Hyperledger Fabric支持的通道允许数据仅传递给需要了解的各方.
例如,许多金融实体对竞争对手甚至看到正在处理的交易数量表示担忧.一些金融机构认为加密"不足"来保护其数据.鉴于某些金融工具需要花费10年或更长的时间才能实现价值,随着时间的流逝,密码破解的风险可能会使私人信息公开.通道帮助提供了数据分区功能,只有那些需要了解数据的人员才能看到事务数和数据本身.
分布式账本是区块链应用程序状态转换的顺序记录.每笔交易都会产生一组资产键值对,这些键值对在创建,更新或删除时将被提交到账本. peer支持LevelDB和CouchDB两种格式存储.
默认情况下,LevelDB键值数据库支持键查询,复合键查询和键范围查询.如果您还需要复杂的丰富查询,则可以使用CouchDB,它支持LevelDB的基本功能,并添加完整的数据复杂查询.这种文档数据库(例如CouchDB)的内容是JSON格式的,同时支持复杂查询,其中数据模型与现有键/值编程模型兼容.
这种JSON格式有助于最大程度地减少生成简单报告和执行审核功能所需的工作.例如,在供应链场景中,您可以使用JSON文档样式来帮助概述商品和运输实体的特定数据.您可以轻松地生成用于资产到最终目的地的不同地点和运输实体的资产报告.
Hyperledger Fabric体系结构的模块化使网络设计人员可以插入其首选组件实现,这是一个优势.最需要模块化的领域之一是"使用自己的身份认证系统".很多公司已经具有自己的身份管理,并且想要重用而不是重建.
可插拔的体系结构的其他组件包括共识或加密,允许使用自己的加密标准.
HSM(硬件安全模块)提供了对数字密钥的高级保护.对于涉及身份管理的方案,HSM可以更好的保护密钥和敏感数据.