导读

1
引入
1、区块链简介
一般来说,区块链是一个不可篡改的的交易账本,由分布式网络的对等节点(peer)进行维护。这些节点通过应用经过共识协议验证过的交易来维护账本的副本,这些交易被分组到块中,每个块会包含一个hash,每个hash会将该块与前面的块绑定。
2、比特币与以太坊
区块链的第一个也是最广为人知的应用是比特币加密货币,尽管其他人也在追随它的脚步。另一种加密货币 以太坊 则采取了不同的方法,它集成了许多与比特币相同的特性,但增加了智能合约,为分布式应用程序创建了一个平台。比特币和 以太坊 属于一类区块链,我们将其归类为公共许可的区块链技术。基本上,这些是公共网络,对任何人开放,参与者匿名互动。
3、联盟链需求
随着比特币、以太网和其他一些衍生技术的普及,应用区块链的基础技术、分布式分类账和分布式应用平台来创新企业用例的兴趣也随之增长。然而,许多企业用例需要无许可区块链技术目前无法提供的性能特征。此外,在许多用例中,参与者的身份是一个硬性要求,例如在金融交易中,必须遵守了解客户(KYC)和反洗钱(AML)条例。
对于企业使用,我们需要考虑以下要求:
参与者必须是可识别的网络需要被许可高事务吞吐量性能低延迟的事务确认交易和商业交易数据的私密性和机密性
2
超级账本
1、介绍
2、模块化
Hyperledger Fabric已经被专门设计成具有模块化架构。无论是可插拔的共识、可插拔的身份管理协议(如LDAP或OpenID Connect)、密钥管理协议还是密码库,该平台的核心都被设计为可配置以满足企业用例需求的多样性。
在较高的层次上,Fabric由以下模块化组件组成:
1、可插拔的订购服务在交易顺序上建立共识,然后将块广播给对等节点。
2、一个可插拔的成员服务提供者负责将网络中的实体与加密身份关联起来。
3、一个可选的点对点gossip服务通过向其他对等节点订购服务来传播块输出。
4、智能合约("链码")在容器环境(例如Docker)中运行以实现隔离。它们可以用标准编程语言编写,但不能直接访问账本状态。
5、可以将账本配置为支持各种DBMS。
6、一个可插拔的认可和验证策略实施,可以独立地为每个应用程序配置。
业内有一个公认,即没有“可以一统天下的链”。Hyperledger Fabric可以以多种方式配置,以满足多个行业用例的不同解决方案需求。
3、许可与无许可
在无许可链中,几乎任何人都可以参与,而且每个参与者都是匿名的。在这样的背景下中,除了区块链在某个深度之前的状态是不可变之外,没有其他信任。为了缓解这种信任缺失,无许可区块链通常采用“开采”原生加密货币或交易费用,以提供经济激励,以抵消参与基于“工作证明”(PoW)的拜占庭容错共识形式的额外成本。
另一方面,许可链在一组已知、识别和经常审查的参与者之间运行区块链,这些参与者在产生一定程度信任的治理模型下运行。许可链提供了一种方法来保护一组实体之间的交互,这些实体具有共同的目标,但可能并不完全信任彼此。通过依赖参与者的身份,被许可的区块链可以使用更传统的崩溃容错(CFT)或拜占庭容错(BFT)共识协议,这些协议不需要昂贵的挖掘。
此外,在这种许可的背景中,参与者通过智能合约故意引入恶意代码的风险也降低了。首先,参与者彼此都是已知的,所有的动作,无论是提交应用交易、修改网络配置还是部署智能合约,都记录在区块链上,遵循为网络和相关交易类型建立的认可策略。与完全匿名不同,可以很容易地识别肇事者,并根据治理模型的条款处理事件。
4、智能合约(链码)
5、新方法
Fabric为事务引入了一个新的体系结构,我们称之为执行-排序-验证。通过将事务流分成三个步骤,它解决了排序-执行模型面临的弹性、灵活性、可伸缩性、性能和机密性挑战。三个步骤如下:
1、执行交易并检查其正确性,从而认可它
2、通过(可插拔的)共识协议排序事务
3、在将交易提交到账本之前,根据特定于应用程序的背书策略验证交易
这种设计从根本上背离了排序-执行范例,Fabric在对其排序达成最终协议之前执行事务。
在Fabric中,应用专用背书策略指定哪些对等节点(或它们的数量)需要保证给定智能合约的正确执行。因此,每个事务只需要由满足事务背书策略所需的对等节点子集执行(背书)。这允许并行执行,从而提高系统的整体性能和规模。第一阶段还消除了任何不确定性,因为在排序之前可以过滤掉不一致的结果。
因为我们消除了不确定性,Fabric是第一种支持使用标准编程语言的区块链技术。
6、隐私与机密性
正如我们已经讨论过的,在一个利用PoW实现其共识模型的公共的、无许可链网络中,事务在每个节点上执行。这意味着既不存在合约本身的机密性,也不存在它们所处理的交易数据的机密性。每个事务以及实现它的代码对网络中的每个节点都是可见的。在这种情况下,我们用合约和数据的机密性换取了PoW提供的拜占庭容错共识。
对于许多业务/企业用例来说,这种机密性的缺乏可能会带来问题。例如,在供应链合作伙伴的网络中,一些消费者可能会获得优惠利率,以此巩固关系或促进额外销售。如果每个参与者都能看到每一份合约和每一笔交易,那么在一个完全透明的网络中维持这种业务关系就变得不可能了ーー每个人都会想要首选的价格!
再举一个例子,考虑证券行业,交易员建立位置(或出售位置)不希望竞争对手知道这一点,否则他们会试图加入这场游戏,削弱交易员的策略。
为了解决交付企业用例需求时缺乏隐私和保密性的问题,区块链平台采用了各种方法。它们都有各自的取舍。
加密数据是提供机密性的一种方法;然而,在利用PoW达成共识的无许可网络中,加密数据位于每个节点上。只要有足够的时间和计算资源,加密就有可能被破解。对于许多企业用例来说,他们的信息可能被泄露的风险是不可接受的。
零知识证明(ZKP)是正在探索解决这个问题的另一个研究领域,这里的权衡是,目前计算一个ZKP需要相当多的时间和计算资源。因此,在这种情况下需要权衡的是机密性的性能。
在允许的背景中,可以利用协商一致的替代形式,可以探索将机密信息仅分发给授权节点的方法。
Hyperledger Fabric作为一个被许可的平台,通过其通道架构和私有数据特性实现机密性。在通道中,Fabric网络上的参与者建立一个子网络,其中每个成员都可以看到一组特定的事务。因此,只有那些参与通道的节点可以访问智能合约(链码)和所交易的数据,从而保护了两者的隐私和机密性。私有数据允许在通道上的成员之间进行集合,从而实现与通道相同的保护,而无需创建和维护单独通道的维护开销。
7、可插拔共识
事务的排序被委托给一个模块组件以达成一致,该组件在逻辑上与执行事务和维护总账的对等节点解耦。具体来说,排序服务。由于共识是模块化的,它的实现可以根据特定部署或解决方案的信任假设进行定制。这种模块化架构允许平台依赖完善的CFT(崩溃容错)或BFT(拜占庭容错)排序工具包。
Fabric目前提供了一个基于Raft协议的etcd库的CFT排序服务实现。有关当前可用的排序服务的信息,请参阅我们关于排序的概念文档。
还需要注意的是,这些并不是相互排斥的。Fabric网络可以有多个订购服务,支持不同的应用程序或应用程序需求。
8、性能和可扩展性
区块链平台的性能会受到许多变量的影响,如事务大小、块大小、网络大小以及硬件限制等。Hyperledger Fabric Performance and Scale工作组目前正在研究一个名为Hyperledger Caliper的基准框架。
已经发表了一些研究论文来研究和测试Hyperledger Fabric的性能。最新的Fabric扩展到每秒20,000个事务。
3
结论
任何对区块链平台的认真评估都应该将Hyperledger Fabric包括在其短列表中。
结合Fabric的差异化功能,使其成为支持灵活信任假设的许可区块链的高度可伸缩系统,使该平台能够支持广泛的行业用例,从政府、金融、供应链物流到医疗保健等等。
Hyperledger Fabric是Hyperledger项目中最活跃的。围绕该平台的社区建设正在稳步增长,每个相继发布的版本所带来的创新远远超过了其他任何企业区块链平台。


长按二维码关注

点赞和在看数你最好看




