Hyperledger Fabric 官方最新翻译---介绍(Introduction)

点此查看最新,fabric官方文档中文翻译目录

  笼统来说,区块链是一个不会改变的交易账本,由一些peer节点组成的分布式网络维护。基于一些一致性协议确认过的交易,这些节点都会维护一份账本的副本,分组为包含哈希的块,这些哈希散列将每个区块与之前的区块串联起来。
  第一个也是最广泛认知的区块链应用就是比特币加密数字应用,其他追随它的步伐有,以太币,另一种加密数字货币,采用了另一种不同的方式,综合了以太币很多一样的特性但是增加了智能合约用来创建一个分布式应用程序平台。我们将比特币和以太币归类为公开的不需要许可的区块链技术(public permissionless)。基本上,这里是公开网络,向所有人开放,参与者都是匿名互动。
  随着比特币的普及,以太坊和其他一些衍生的技术也在成长。将区块链底层技术,分布式账本和分布式应用程序平台应用于更具创新性的企业用户的兴趣也在增长。但是,需要企业用户需要的平台特性,permissionless区块链技术是无法满足的,例如,金融类交易中的KYC和反洗钱(AML)规则就必须遵守。
  企业的使用,我们必须考虑如下的需求

  • 参与者必须被识别/可识别
  • 网络必须是需要准入的
  • 高吞吐性能处理交易
  • 交易响应低延迟
  • 与业务交易相关交易和数据的隐私和机密性

      相比需要早期的区块链平台正在适应企业使用,Hyperledger Fabric从开始就是为企业使用而设计的。下面几段描述了Fabric与其他区块链平台的不同,同时描述了它如此架构设计的动机。
      

Hyperledger Fabric

  Fabric是一个开源的企业级许可分布式账本技术平台,为企业环境使用而设计。与其他流行的分布式账本区块链平台相比,它提供了一些重要的差异化能力。
  差异化的一个关键点是Hyperledger是在Linux基金会的基础上建立的,该基金会在开放式治理下培养开源项目的历史悠久而且非常成功,这些项目开发了强大的可持续社区和蓬勃发展的生态系统。Hyperledger由不同的技术指导委员会管理,Fabric项目由多个组织的不同维护人员负责管理。 它有一个开发社区,自从它最早的提交以来已经发展到超过35个组织和近200个开发者。
  fabric拥有一个高度模块化和可配置的架构,可以为各行各业用户包括银行、保险、金融、健康保险、人力资源,供应链甚至数字音乐产业提供创新、多功能性和优化。
  Fabric是第一个支持多语言编写智能合约的分布式账本平台,比如java、go、Node,相比限制于领域特殊语言(DSL),这意味着大部分企业已经具备了开发智能合约的技能,不需要额外去学习一门新语言或者DSL。
  Fabric平台是许可准入的,意味着不像一个piblic permissionless网络,参与者彼此是知道的,而不是匿名导致的充分不信任。这意味着可能参与者不是充分信任的情况下,网络可以根据参与者之间存在的信任而构建的治理模型下进行操作,例如 处理纠纷的法律协议或框架。(这一段的理解:在互相信任的基础上建立的治理模式,可以保证互相不信任的双方也可以进行交易
  一个更加重要的平台不同就是它支持可插拔的一致性协议帮助平台能更加有效的个性化适应特别的用户场景和信任模式。例如,当部署在一个企业或者由信任的权威机构运营,全部的拜占庭容错共识可能是没有必要同时还对性能和吞吐量上有极大的拖累,在这种情况下,CFT共识算法也许更适当,然后再一个多方分散的用例中,更加传统的拜占庭容错机制(BFT)可能是需要的。
  fabric能利用共识机制,不需要原生数字货币来进行昂贵的挖矿和为智能合约执行提供燃料。避免了加密数字货币减少了重要的风险/攻击媒介,没有数字货币挖矿该平台的运行成本与其他类型的分布式系统大致相同。
  这些差异化特征的设计组合让Fabric称为当前性能较好的平台之一,无论是交易处理和交易的延迟返回,s而却他可以保证交易的隐私和机密性以及智能合约(fabric称为为链码)来实现它们。
  让我们更详细的讨论这些差异化的细节。
 

模块性

  Fabric被专门设计成了模块化的架构。无论他的可插拔一致性机制、可插拔身份管理协议例如LDAP或者OpenID连接,秘钥管理协议或者密码库,这个平台的设计核心就是可配置来满足企业多样化的需求。
  在较高层次,Fabric有一下模块化组件组成

  • 一个可插拔ordering服务让交易排序达成共识然后广播区块到peer节点。
  • 可插入成员管理服务提供者是负责分配网络实体与加密身份相关联
  • 一个可选点对点gossip服务将区块传播出,从ordering服务到其他peer节点
  • 智能合约隔离的运行在容器环境(Docker)。他们可以被标准的编程语言编写但是不能直接访问账本中的数据状态
  • 账本能被配置为支持多种数据库管理系统(DBMS)
  • 一个可插拔的背书和验证策略。每一个应用程序的背书策略可以被单独配置
      业内人士普遍认为“没有一个区块链能满足所有的规则”。fabric能被配置为多重方式来满足多样化的用户用例的多样化解决方案需求。

有权限和无权限控制区块链对比

  在一个无权限区块链,实际每个人都可以参与,每个参与者都是匿名的。在这样的背景下,在达到一定的深度,不可改变前,区块链的深度是不可信任的。为了缓和这种信任缺失,无权限区块链通常使用挖掘本地加密数字货币和交易费来提供经济激励,以抵消参与基于“工作量证明”(pow)的拜占庭容错模式的高额成本。
  另一方面,有权限区块链,在一些已知的,身份已认证的以及经常审查的参与者之间运作区块链,这些参与者在一种产生一定程度信任的治理模式下运营。有权限区块链提供了一个方式保证有相同目标但是还不是完全信任的实体间可以相互作用。依靠参与者的身份,一个有权限工作连能使用更加传统的CFT(无恶意节点共识)或者是BFT(有恶意节点共识),而不需要挖矿。
  另外,在一个有权限的背景下,一个参与者通过智能合约引入恶意代码的风险被降低了,首先,参与者了解彼此,所有的行动都是已知的。当一个关于网络或者相关交易类型的背书策略被认可后,无论提交应用程序交易,修改网络配置或者发布智能合约都是记录在区块链。相对于完全的匿名,恶意参与方会被简单的识别,这一事件按照治理模式的条款处理。
  

智能合约

  智能合约,fabric称之为链码,作为一个可信任的分布式应用程序来运行,并且通过区块链以及peer节点之间的基本共识来保证它的安全/信任。它是一个区块链应用程序的业务逻辑。
  有三个关键点适用于智能合约,特别是在应用于平台时
- 许多智能合约在网络中是并发的
- 他们可能会被任意一个人动态部署
- 应用程序代码应该被视为不可信任的甚至的恶意的
  大多数现在具备智能合约的区块链平台都遵循基于共识机制的顺序执行的架构。
- 验证和排序好交易然后将他们传播到所有的peer节点
- 每个peer节点继续按照顺序执行交易
  顺序执行的体系结构事实上在所有存在的区块链系统中都有发现。从公开/无权限平台例如以太币到有权限平台例如Tendermint, Chain, 和Quorum.
  智能合约在区块链中顺序执行必须是确定的,否则如果完成一致性。为了解决非确定性问题,许多平台都需要用非标准或者领域特定语言(例如Solidity),这样的话非确定性操作会被除去。这个妨碍了广泛应用因为它需要开发者为了写智能合约需要学习一门新的语言同时可能导致了变成错误。
  此外,由于所有的交易都犹所有的节点顺序执行,性能和可扩展性被限制了。智能合约代码执行在每个节点上的执行的事实,要求有一个复杂的措施来保护整个系统免收潜在的恶意合约,以保证整个系统的弹性。

一种新的途径

  fabric介绍一种新的事务体系结构,我们称之为excute-order-validate。它通过将交易流分为三步来解决弹性、灵活性、可扩展性、性能和机密性挑战。
  

  • 执行一个交易,检查它的正确性,并且给它背书
  • 通过一个可插拔的一致性协议给交易排序
  • 在提交它们到账本前,通过一个应用程序特定的背书策略来验证交易

      在fabric中,一个应用程序特定的背书策略侧指定了哪些peer节点或者多少数量,需要来保证一个智能会越的正确执行。因此,每个事务只需要由满足事务的认可策略所需的对等节点的子集来执行(背书)。这样就允许了并发执行增加了系统性能和可扩展性。第一阶段也是消除任何不确定性,因为在排序前需要消除所有不一致的结果。
      因为我们已经消除了不信任。fabric是第一个可以使用标准编程语言的区块链技术。在1.1.0release版本中,智能合约可以通过Go或者Node,还有计划在后续的发布版本中支持其他流行语言包括java。

隐私和机密性

  就像我们讨论的那样,在一个公共的无权限的区块链网络将pow用于它的一致性模式,以及交易被执行在每一个节点上。这意味着合约本身及他们要保护的交易数据都不是机密的。每一个交易和实现它的代码,在网络中网络中每一个节点都是可见的。我们只能通过Pow提供为拜占庭容错机制提供智能合约和数据的机密性保证。
  这种机制性的缺乏对很多商业/企业用户是有问题的。例如,在一个供应链网络中,可能会通过优惠的价格来巩固和一些用户的关系或者增加额外的销售。如果每一个参与者都可以看到每一个合同和交易,那么在整个透明的网络中是不可能维护这种商业关系的-因为每一个人都想要更好的价格。
  比如第二个例子,考虑到证券业,一个交易员建立一个仓位(或者处理一个)不希望他的竞争对手知道这个,否则他们会试图进入游戏,削减交易者的赌注。
  为了满足企业用户需求解决隐私和机密性的缺陷,区块链平台采用了一系列的机制。所有的都有他们的折中方案。
  加密数据是保护机密性的一个机制,但是在利用pow达成共识的无权限的网络,加密数据是在每个节点上都存在的。只有给到足够的时间和计算资源,加密是可能被破解的。对于很多企业用户案例,他们的信息泄露风险是不可接受的。
  零知识证明(ZKP)是另一个研究领域来解决这个问题,这个折中性在于,目前计算一个ZKP需要相当可观的时间和计算资源。因此,在这个案例里面折中性是性能和保密性。
  在有权限环境下,可以使用另一种形式的一致性,一个可能的扩展就是限制机密信息的分布式范围,只能存在授权节点。
  fabric是一个有权限的平台,通过它的channel机制来保证机密性。基本上,fabric网络的参与者能够在参与者的子集之间建立channel用来保证一组特定交易的可见度。把它想象成一个网络覆盖。因此,只有参与到一个channel钟的极端能够访问智能合约和数据处理,保护了两者的隐私和机密性。
  fabric同样致力于两个特征用来提高它们的隐私和机密性,分别是:私有数据-一个我们称之为SideDB的特性和零知识证明(ZKP)。
  

可插拔的一致性

  排序交易被委托给模块化组件来实现共识与peer节点执行交易和维护账本已经是一种逻辑上的解耦了。具体的说,排序服务,犹豫共识是模块化的,它是实现可以根据特定部署或解决方案的信任假设来定制。模块机制允许平台依靠成熟的CFT或者BFT排序工具包。
  在目前的发布版本中,fabric基于Kafka和zk来提供了CFT排序服务。在后续的版本。fabric提供一个用etcd / Raft实现的Raft一致性订购服务和一个完全分散的BFT订购服务。
  注意这些不是相互排斥的,fabric网络可以拥有多个排序服务来支持不同的应用程序和应用程序需求。

性能和伸缩性

  一个区块链的平台性能会被很多因素影响,例如交易大小、块大小、网络带宽,硬件限制等。Hyperledger社区正在为性能和可扩展性工作组制定一套草案,以及还有一套称之为Hyperledger Caliper的基准测试框架。
  随着这个工作发展,他会被视为区块链平台性能和可扩展性特性的的明确衡量指标,IBM的一个研究团队已经发布了一篇peer节点评估评价了fabirc的性能机制。这篇评估对fabiec的机制进行了较深的评论,他们的性能研究平台用的是fabric v1.1的早期发布版本。研究团队的基准测试工作对fabric-v1.1.0版本带来了显著的性能提高,整体性能大概是v1.0.0的一倍。
  

结论

  任何对区块链平台的严肃评价短名单内都应该有fabric。
  总的来说,fabric的差异化功能使它是一个高度可扩展的有权限区块链,它支持了灵活的信任机制,使得平台可以支持从政府到金融、供应链物流、医疗保险等等广泛的工业用户场景。
  更重要的是fabirc是当前十个Hyperledger项目中最活跃的项目。该平台的社区正在逐步壮大,随着每个后续版本的发布,它将远远超过了其他任何企业区块链平台。

致谢

  前面的都是来自于一个同行的评审“Hyperledger Fabric:一个有权限区块链的分布式操作系统”。。。。(N个人名)。
  
  
  

猜你喜欢

转载自blog.csdn.net/fengshenju2018/article/details/80432709