Hyperledger Fabric 2.0 官方文档中文版 第1章 引言

Hyperledger Fabric 2.0 官方文档中文版 第1章 引言

总目录

第1章 引言
第2章 Hyperledger Fabric v2.0的新增功能
第3章 关键概念
第4章 入门
第5章 开发应用程序
第6章 教程(上)
第6章 教程(下)
第7章 部署生产网络
第8章 操作指南
第9章 升级到最新版本

1.引言

一般来说,区块链是一个不可变的交易账本,在节点的分布式网络中维护。这些节点通过应用已通过一致性协议验证的交易来维护账本的副本,这些交易被分组到块中,这些块包括将每个块绑定到前一个块的散列。

区块链的第一个也是最广为背书的应用是比特币加密货币,尽管其他人也追随它的脚步。另一种加密货币以太坊(Ethereum)采取了一种不同的方式,它整合了许多与比特币相同的特性,但添加了智能合约,为分布式应用程序创建了一个平台。比特币和以太坊属于一类区块链,我们将其归类为公共无许可区块链技术。基本上,这些都是公共网络,对任何人开放,参与者匿名互动。

随着比特币、以太坊和其他一些衍生技术的普及,人们对将区块链、分布式账本和分布式应用平台的底层技术应用于更具创新性的企业用例的兴趣也与日俱增。然而,许多企业用例需要无许可区块链技术(目前)无法提供的性能特征。此外,在许多用例中,参与者的身份是一个硬性要求,例如在金融交易中,必须遵守了解客户(KYC)和反洗钱(AML)法规。

对于企业使用,我们需要考虑以下要求:

  • 参与者必须被识别/识别
  • 网络需要获得许可
  • 高交易吞吐量性能
  • 交易确认延迟低
  • 与商业交易有关的交易和数据的隐私和保密性

虽然许多早期区块链平台目前正在适应企业使用,但Hyperledger Fabric从一开始就为企业设计。以下各节描述了Hyperledger Fabric(架构)如何与其他区块链平台区分开来,并描述了其架构决策的一些动机。

Hyperledger Fabric

Hyperledger Fabric是一个开放源码的企业级许可分布式账本技术(DLT)平台,设计用于企业环境,它提供了一些与其他流行的分布式账本或区块链平台不同的关键功能。

区别的一个关键点是,Hyperledger是在Linux基金会(Linux Foundation)下建立的,Linux基金会本身在开放治理下培育开源项目有着悠久而非常成功的历史,这些项目能够培育出强大的可持续社区和繁荣的生态系统。Hyperledger由不同的技术指导委员会管理,而Hyperledger Fabric项目则由来自多个组织的不同维护人员组成。它拥有一个开发社区,自最早提交以来已经发展到超过35个组织和近200个开发人员。

Fabric具有高度模块化可配置的体系结构,能够为银行、金融、保险、医疗保健、人力资源、供应链甚至数字音乐交付等广泛的行业用例提供创新、多功能性和优化。

Fabric是第一个分布式账本平台,支持用Java、Go和Node.js等通用编程语言编写的智能合约,而不是受限的领域特定语言(DSL)。这意味着大多数企业已经具备了开发智能合约所需的技能,不需要额外的培训来学习新的语言或DSL。

Fabric平台也是许可的,这意味着,与公共无许可网络不同,参与者彼此都是已知的,而不是匿名的,因此完全不受信任。这意味着,虽然参与者可能不完全信任彼此(例如,他们可能是同一行业中的竞争对手),但网络可以在基于参与者之间确实存在的信任的治理模式下运行,例如处理纠纷的法律协议或框架。

该平台最重要的区别之一是支持可插拔共识协议,使平台能够更有效地定制,以适应特定的用例和信任模型。例如,当部署在一个企业中,或者由一个可信的权威机构操作时,完全拜占庭式的容错共识可能被认为是不必要的,并且会对性能和吞吐量造成过度的拖累。在这种情况下,崩溃容错(CFT)共识协议可能已经足够了,而在多方、分散的用例中,可能需要更传统的拜占庭容错(BFT)共识协议。

Fabric可以利用不需要本地加密货币的共识协议来刺激昂贵的采矿或推动智能合约的执行。避免使用加密货币可以减少一些重要的风险/攻击向量,而没有加密挖掘操作意味着可以以与任何其他分布式系统大致相同的操作成本部署该平台。

这些与众不同的设计特性的结合使Fabric成为当今在交易处理和交易确认延迟方面性能更好的平台之一,它支持交易和实现它们的智能合约(Fabric称之为“链码”)的隐私和机密性

模块化

Hyperledger Fabric经过特别设计,具有模块化的体系结构。无论是可插拔共识、可插拔身份管理协议(如LDAP或OpenID Connect)、密钥管理协议或加密库,该平台的核心都经过了配置,以满足企业用例需求的多样性。

在较高的层次上,Fabric由以下模块化组件组成:

  • 可插拔排序服务在交易顺序上建立共识,然后向节点广播块。
  • 可插拔成员资格服务提供程序负责将网络中的实体与加密标识关联起来。
  • 可选的点对点八卦服务通过向其他节点排序服务来传播块输出。
  • 智能合约(“链码”)在容器环境(如Docker)中运行以进行隔离。它们可以用标准编程语言编写,但不能直接访问账本状态。
  • 账本可以配置为支持多种数据库管理系统。
  • 可插拔的背书和验证策略强制,可以为每个应用程序独立配置。

业界一致认为,不存在“一个区块链来统治所有区块链”。可以通过多种方式配置Hyperledger Fabric,以满足多个行业用例的不同解决方案需求。

许可区块链与无许可区块链

在无许可的区块链中,几乎任何人都可以参与,而且每个参与者都是匿名的。在这种情况下,除了在一定深度之前区块链的状态是不可变的之外,没有其他信任。为了缓解这种信任缺失,无许可区块链通常使用“开采”的本地加密货币或交易费用,以提供经济激励,以抵消参与基于“工作证明”(PoW)的拜占庭容错共识的特殊成本。

另一方面,许可区块链在一组已知、已识别且经常经过审查的参与者之间运作,这些参与者在产生一定程度信任的治理模式下运作。许可区块链提供了一种方法来保护具有共同目标但可能不完全信任彼此的一组实体之间的交互。通过依赖参与者的身份,许可区块链可以使用更传统的崩溃容错(CFT)或拜占庭容错(BFT)共识协议,这些协议不需要昂贵的挖掘。

此外,在这种许可的上下文中,参与者通过智能合约故意引入恶意代码的风险降低了。首先,参与者彼此知晓,所有动作,无论是提交应用程序交易、修改网络配置还是部署智能合约,都会按照为网络和相关交易类型制定的背书政策记录在区块链上。而不是完全匿名,有罪的一方可以很容易地被识别,并根据治理模式的条款处理事件。

智能合约

智能合约,或者Fabric所称的“链码”,作为一个受信任的分布式应用程序,从区块链和同行之间的潜在共识中获得安全/信任。它是区块链应用程序的业务逻辑。

有三个要点适用于智能合约,尤其是在应用于平台时:

  • 许多智能合约在网络中同时运行,
  • 它们可以动态部署(在许多情况下由任何人部署),并且
  • 应用程序代码应该被视为不可信的,甚至可能是恶意的。

大多数现有的智能合约区块链平台遵循订单执行架构,其中共识协议:

  • 验证并排序交易,然后将其传播到所有节点,
  • 然后,每个节点按顺序执行交易。

order-execute架构几乎可以在所有现有的区块链系统中找到,从Ethereum(基于PoW共识)等公共/无权限平台到TendermintChainQuorum等许可平台。

在使用order-execute架构操作的区块链中执行的智能合约必须是确定性的;否则,可能永远无法达成共识。为了解决非确定性问题,许多平台要求智能合约以非标准或特定领域的语言(如Solidity)编写,以便消除非确定性操作。这阻碍了广泛采用,因为它需要开发人员编写智能合约来学习一种新语言,并可能导致编程错误。

此外,由于所有交易都由所有节点按顺序执行,所以性能和规模受到限制。智能合约代码在系统中的每个节点上执行这一事实要求采取复杂的措施来保护整个系统不受潜在恶意合约的影响,以确保整个系统的弹性。

新途径

Fabric为交易引入了一种新的体系结构,我们称之为executeordervalidate。它通过将交易流分为三个步骤来解决order-execute模型面临的弹性、灵活性、可伸缩性、性能和机密性挑战:

  • 执行交易并检查其正确性,从而对其进行背书,
  • 通过(可插拔)共识协议排序交易,以及
  • 在将交易提交到账本之前,根据特定于应用程序的背书策略验证交易

这种设计从根本上背离了order-execute范式,Fabric在对交易的顺序达成最终一致之前执行交易。

在Fabric中,特定于应用程序的背书策略指定哪些节点或其中的多少节点需要保证给定智能合约的正确执行。因此,每个交易只需要由满足交易的背书策略所需的节点的子集来执行(背书)。这使得并行执行可以提高系统的整体性能和规模。第一个阶段也消除了任何不确定性,因为不一致的结果可以在排序之前过滤掉。

因为我们消除了非确定性,所以Fabric是第一个能够使用标准编程语言的区块链技术。

隐私和保密

正如我们所讨论的,在一个公共的、无许可的区块链网络中,交易在每个节点上执行。这意味着既不能对合同本身保密,也不能对其处理的交易数据保密。每个交易以及实现它的代码对网络中的每个节点都是可见的。在这种情况下,我们用合同和数据的保密性来换取PoW提出的拜占庭容错共识。

对于许多业务/企业用例来说,这种保密性的缺乏可能是个问题。例如,在一个供应链合作伙伴的网络中,一些消费者可能会得到更优惠的价格,作为巩固关系或促进额外销售的手段。如果每个参与者都能看到每一份合同和交易,那么在一个完全透明的网络中维持这样的业务关系就变得不可能了——每个人都会想要优惠的价格!

作为第二个例子,考虑到证券行业,一个交易者建立一个头寸(或处置一个头寸)不想让她的竞争对手知道这一点,否则他们将试图进入游戏,削弱交易员的策略。

为了解决在满足企业用例需求方面缺乏隐私和保密性的问题,区块链平台采用了多种方法。所有人都有自己的取舍。

加密数据是提供机密性的一种方法;然而,在一个利用PoW作为共识的无许可网络中,加密数据位于每个节点上。如果有足够的时间和计算资源,加密可能会被破坏。对于许多企业用例,其信息可能被泄露的风险是不可接受的。

零知识证明(ZKP)是另一个正在探索的解决这个问题的研究领域,这里的权衡是,目前计算ZKP需要相当多的时间和计算资源。因此,在这种情况下,权衡的是性能与保密性。

在可利用其他形式的共识的许可上下文中,可以探索将机密信息仅限于授权节点的方法。

Hyperledger Fabric是一个许可的平台,通过其通道架构和私有数据特性实现了机密性。在通道中,结构网络上的参与者建立一个子网络,其中每个成员都可以看到一组特定的交易。因此,只有那些参与通道的节点才有权访问智能合约(链码)和所处理的数据,从而保护两者的隐私和机密性。私有数据允许在一个通道上的成员之间进行收集,这样就可以实现与通道相同的保护,而无需创建和维护单独通道的维护开销。

可插拔共识

交易的顺序被委托给一个模块化组件,以获得一致性,该组件在逻辑上与执行交易和维护账本的节点分离。特别是排序服务。由于共识是模块化的,它的实现可以根据特定部署或解决方案的信任假设进行定制。这种模块化的体系结构允许平台依赖于成熟的工具包来进行CFT(崩溃容错)或BFT(拜占庭容错)排序。

Fabric目前提供了一个基于Raft协议etcd库的CFT排序服务实现。有关当前可用的排序服务的信息,请查看我们关于排序的概念性文档

还请注意,这些并不是相互排斥的。一个结构网络可以有多个排序服务来支持不同的应用程序或应用程序需求。

性能和可扩展性

区块链平台的性能会受到许多变量的影响,如交易规模、区块规模、网络规模以及硬件限制等。Hyperledger Fabric绩效和规模工作组目前正在研究一个叫做Hyperledger Caliper的基准测试框架。

已经发表了几篇研究论文,研究和测试了Hyperledger Fabric的性能。最新的Fabric扩展到每秒20000个交易

结论

对区块链平台的任何认真评估都应将Hyperledger Fabric纳入其短名单中。

综上所述,Fabric的差异化功能使其成为许可区块链的高度可扩展系统,支持灵活的信任假设,使平台能够支持从政府、金融、供应链物流到医疗保健等各种行业用例。

超级账本结构是最活跃的超级账本项目。平台周围的社区建设正在稳步增长,每一次连续发布带来的创新远远超过任何其他企业区块链平台。

致谢

上述内容来源于节点评审的“超级账本结构:许可区块链的分布式操作系统”——Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, Srinivasan Muralidharan, Chet Murthy, Binh Nguyen, Manish Sethi, Gari Singh, Keith Smith, Alessandro Sorniotti, Chrysoula Stathakopoulou, Marko Vukolic, Sharon Weed Cocco, Jason Yellick

参考自Hyperledger Fabric官方文档
如有侵权,请联系作者删除,谢谢!
If there is infringement, please contact the author to delete, thank you!

    原文作者:余府
    原文地址: https://blog.csdn.net/bean_business/article/details/108746359
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞