【Hyperledger Fabric 学习】Introduction

HyperLedger Fabric官方文档

中文网址:https://hyperledger-fabric.readthedocs.io/zh_CN/latest
英文网址:https://hyperledger-fabric.readthedocs.io/en/latest
一般情况英文网址的内容更全面,版本也比中文新。

Introduction

企业使用

  • 参与者必须被识别/可识别
  • 需要对网络进行权限管理
  • 高交易吞吐性能
  • 交易确认低延迟
  • 与商业交易有关的数据的隐私和机密性

Hyperledger Fabric

  • 开源企业级分布式账本平台
  • 高度模块化和可配置架构
  • 支持通用编程语言(Java,GO,Node.js)
  • 可插拔共识协议
  • 高性能平台,交易隐私和保密性

模块化

  • 排序服务可插拔。建立共识并广播区块。
  • 会员服务提供者(MSP)可插拔。
  • 可选P2P嗅探协议(gossip service)。
  • 智能合约在容器内独立运行。无法直接访问账本状态
  • 支持配置各种数据库管理系统。
  • 可插拔背书策略和验证策略。每个应用独立。

许可链vs非许可链

在非许可链中,几乎任何人都可以参与,而且每个参与者都是匿名的。在这样的上下文中,除了区块链在某个深度之前的状态是不可变之外,没有其他信任。为了缓解这种信任的缺失,非许可链通常会使用“挖掘”本地加密货币或交易费用来提供经济激励,以抵消参与一种基于“工作量证明”(PoW)的拜占庭容错共识的特殊成本。
许可链在一组已知的、被识别的、经常经过审查的参与者中操作区块链,这些参与者在产生一定程度信任的治理模型下运行。经过许可的区块链提供了一种方法来保护具有共同目标但可能不完全信任彼此的一组实体之间的交互。通过依赖参与者的身份,许可链可以使用更传统的崩溃容错(CFT)或拜占庭容错(BFT)共识协议,这些协议不需要昂贵的挖掘成本。
此外,在许可链的上下文中,参与者通过智能合约故意引入恶意代码的风险降低了。首先,参与者彼此都知道,所有的操作,无论是提交应用程序事务、修改网络配置还是部署智能合约,都按照为网络和相关事务类型建立的背书策略记录在区块链上。不是完全匿名,而是可以很容易地识别出肇事者,并根据治理模型的条款处理事件。

智能合约

智能合约,或Fabric所称的“链码”,作为一个受信任的分布式应用程序,它从区块链和对等体之间的底层共识获得安全性/信任。它是区块链应用程序的业务逻辑。
许多智能合约在网络中同时运行,它们可以动态部署(在许多情况下由任何人部署),应用程序代码应该被视为不可信的,甚至可能是恶意的。
大多数现有的支持智能合约的区块链平台遵循顺序执行架构,其中共识协议:

  • 验证和排序交易,然后将它们传播到所有对等节点
  • 每个对等点依次执行事务。

排序-执行架构可以在几乎所有现有的区块链系统中找到,从公有/非许可平台,如以太坊(基于pow的共识)到有权限平台,如Tendermint, Chain和Quorum。
在排序-执行架构操作的区块链中执行的智能合约必须是确定性的, 否则,共识可能永远无法达成。为了解决非确定性问题,许多平台要求智能合约使用非标准或领域特定语言(如Solidity)编写,这样就可以消除非确定性操作。它要求开发人员编写智能合约,学习一门新的语言,并可能导致编程错误。
此外,由于所有交易都是由所有节点依次执行的,因此性能和规模是受到限制。智能合约代码在系统中的每个节点上执行,这一事实要求采取复杂的措施来保护整个系统免受潜在的恶意合约的影响,以确保整个系统的弹性。

扫描二维码关注公众号,回复: 14624470 查看本文章

Fabric的新方法

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

  • 执行一项交易并检查它的正确性,从而将其背书(endorsement)
  • 通过(可插拔的)共识协议排序交易
  • 在将事务提交到分类帐之前,根据特定于应用程序的背书政策验证事务

这种设计从根本上背离了排序-执行范式,因为Fabric在最终的排序统一之前执行交易。
在Fabric中,特定于应用程序的背书策略指定需要为给定智能合约的正确执行担保的对等节点(或其中的多少节点)。因此,每个事务只需要由满足事务的认可策略所需的对等节点子集执行(认可)。这允许并行执行,从而提高系统的总体性能和规模。这个第一阶段还消除了不确定性,因为在排序之前可以过滤掉不一致的结果。
因为我们消除了非确定性,所以Fabric是第一种支持使用标准编程语言的区块链技术。

隐私和保密性

加密数据是提供保密性的一种方法;然而,在利用PoW达成共识的非许可网络中,加密的数据位于每个节点上。只要有足够的时间和计算资源,加密是可以被破解的。对于许多企业用例来说,信息泄露的风险是不可接受的。
零知识证明(ZKP)是解决这一问题的另一个研究领域,这里的权衡是,目前计算ZKP需要相当多的时间和计算资源。因此,在这种情况下,需要以性能换取机密性。
在许可链的上下文中,可以利用替代形式的共识,可以探索限制机密信息只分发给授权节点的方法。
Hyperledger Fabric作为一个授权平台,通过其通道架构和私有数据特性实现机密性。在通道中,Fabric网络上的参与者建立一个子网络,其中每个成员都对特定的事务集具有可见性。因此,只有参与通道的节点才能访问智能合约(链码)和交易数据,保护了两者的隐私和机密性。私有数据允许在通道上的成员之间进行集合,从而可以提供与通道相同的保护,而无需创建和维护单独通道的维护开销。

可插拔共识

为了达成共识,交易的排序被委托给一个模块化组件,该组件在逻辑上与执行事务和维护分类帐的对等点分离。具体来说,是排序服务。由于共识是模块化的,因此它的实现可以针对特定部署或解决方案的信任假设进行定制。这种模块化架构允许平台依赖于完善的CFT(崩溃容错)或BFT(拜占庭容错)排序工具包。
Fabric目前提供了一种基于Raft协议的etcd库的CFT订购服务实现。有关当前可用的排序服务的信息,请参阅排序的概念文档

性能和可伸缩性
区块链平台的性能会受到许多变量的影响,比如交易大小、块大小、网络大小以及硬件的限制等。Hyperledger Fabric性能和规模工作组目前正在研究一种名为Hyperledger Caliper的基准框架。已经发表了一些研究论文来研究和测试Hyperledger Fabric的性能能力。最新的Fabric扩展到每秒20000个事务。

总结
任何对区块链平台的认真评估都应该将Hyperledger Fabric列入其简短的列表中。
结合起来,Fabric的独特功能使其成为一个高度可扩展的系统,用于许可区块链,支持灵活的信任假设,使该平台能够支持广泛的行业用例,从政府、金融、供应链物流、医疗保健等等。
Hyperledger Fabric是超级账本项目中最活跃的一个。围绕该平台的社区建设正在稳步增长,每一个后续版本所带来的创新远远超过了其他任何企业区块链平台。

猜你喜欢

转载自blog.csdn.net/qq_39681297/article/details/125775867