以太坊和Hyperledger Fabric之间的差异

在这篇文章中,我们将介绍区块链中两个主要平台之间的差异:以太坊和Hyperledger。如果你正在考虑在项目中使用哪一个。这个博客的亮点是希望帮助你做出决定。但在我们详细说明之前,我们先来看一些定义。

什么是区块链网络?

它是一个去中心化的业务资产交易系统。它使用共享分布式分类帐记录网络成员之间的所有交易。它由分别存储区块链代码的连接节点(计算机)组成。网络可以是公共的或许可的,这将确定节点如何与网络上的其他节点通信(对等通信)。

我现在的目的是解释区块链技术中的一些常见关键概念:

  • 分布式分类帐/共享分类帐:分类帐是一种数据库,但与传统数据库不同,分布式分类帐没有中央数据存储或管理功能。对分类帐的更改将在几分钟或几秒内记录在所有参与系统中,并通过加密技术保护记录。分布式账本的一个重要好处是可以跟踪和交易资产,而无需集中控制点。另一个主要好处是分布式账本中使用的共识机制降低了欺诈风险。这可以被视为网络中的单一事实来源。
  • 块:块包含数据集合。例如,在比特币中,块是交易的集合。
  • 节点:节点是参与全局对等网络的通信实体。他们传播块。有2种不同的节点,如下:
    • 完整节点:它们独立地作为块上每个交易的权威验证者。他们通常会在其硬盘上保留区块链的完整副本,或者他们也可以保留区块链的简化副本。它与网络上的其他对等体通信,更重要的是,它不信任这些对等体并验证从这些对等体接收的块(包含交易)。它与自己的分类账副本进行安全协调。如果它不与任何交易协调,它拒绝该块并停止与从其接收块的对等体通信。因此,可以快速地将发送恶意块的节点隔离。
    • 轻节点:它们不检查或下载整个区块链。
  • 采矿和矿工:采矿是一种以协商一致方式参与特定对等网络的行为。这是一项计算密集型工作,需要大量的处理能力和时间。Miner是一个投资者,他将时间,计算机空间和精力用于分块。简单来说,挖掘意味着通过工作赚钱的过程。以太网以以太运行动力(燃料)。因此矿工(采矿人员)开采以太(像挖井)。可以在每个完整节点上进行挖掘。
  • 智能合约:这是部署在区块链加密货币网络上的业务规则(自动代码)的集合。一旦节点执行合约,分类帐就会相应更新。
  • 共识:这是一个保持分类账交易在整个网络中同步的过程。不同平台以不同方式实施共识。

以太坊

以太坊是一个开放的软件平台,使开发人员能够构建和部署去中心化的应用程序。这是一个公共区块链网络。它旨在使用户以对等的方式与社交系统,金融系统进行交互。

以太坊拥有自己的加密货币–Ether。矿工努力赚取以太。它有明智的合约,定义协议的规则和处罚,并执行这些义务。目前,以太坊使用工作证明协议,计划是将其网络更新为股权证明。

什么是工作量证明(POW)

这是一种共识算法。该算法允许区块链的节点就区块链的当前状态达成共识。在以太坊上大约每15秒就达到对全球状态的共识。

这是如何运作的?

当新块到达节点时,它获取该块的hash,然后尝试验证。它使用POW一致性算法,该算法需要大量的计算能力来生成一些随机位。当生成的随机位附加到块的hash时,它给出特定值(新hash)。 Node已经知道它正在寻找的哈希值。如果生成的值与预期答案匹配,则该块有效。

节点通过附加从交易块获得的hash来继续尝试随机位。一旦任何矿工找到答案,那么该区块将被添加到区块链中。

工作量证明的问题

  • 它需要大量的计算能力(CPU周期,GPU,电力)才能获得随机位,
  • 公共悲剧,矿工奖励随着时间的推移而减少,当发生这种情况时,更少矿工们挖掘这些区块。这可以为恶意用户打开窗口,恶意用户可以轻松获取超过51%的网络,从而破坏网络。

以太坊试图从工作量证明转换为股权证明算法。

股权证明

它需要显示货币的所有权。你不再需要进行大量的计算,这可以节省大量的能量,第二个好处是你可以锁定以太,从而造成稀缺。因此价格会上涨,这意味着只有拥有以太(以太坊货币)的矿工才能验证区块。如果恶意验证器验证错误节点,则它们会丢失以太。

Hyperledger

Hyperledger是2015年成立的Linux基金会下的一个项目。它旨在促进跨多个公司的区块链项目的协作。Hyperledger中有多个项目,并且有多个平台打造超级服务。

这些项目如下:

  • 来自IBM的Fabric
  • 来自英特尔的Sawtooth Lake
  • R3形成Corda
  • Iroha
  • Indy
  • Burrow

到目前为止,除了Hyperledger结构之外,我还没有机会研究其他平台实现。因此,我会考虑将Hyperledger Fabric与以太坊进行比较。

HyperLedger Fabric更多地关注大型组织,而以太坊则更受小型应用和公共智能合约的欢迎。HyperLedger Fabric旨在创建专门用于企业用途的权限区块链。企业的一个重要特征是数据保密和隐私。Fabric通过基于HTTP/2构建的对等协议来管理分布式分类帐。它使用智能合约来提供对分类账的受控访问,这些智能合约可以用go或java语言编写。超级分类账没有加密货币。

超级分类帐结构中的一些关键概念是:Ledger,Block,Chaincode,Consensus,Member,Membership services,Multi-channel,peer,transaction,policy,private channels。

我们之前已经解释过Ledger,Block,Consensus等术语。我将介绍其他特定于fabric的术语。

  • Membership Services:成员资格服务在许可的Hyperledger结构网络上对身份进行身份验证,授权和管理。在对等体中运行的成员资格服务代码对区块链操作进行身份验证和授权。
  • peer:维护分类帐并运行链代码容器以便对分类帐执行读/写操作的网络实体。对等方由会员拥有和维护。
  • Policy:有认可,验证,块提交,链码管理和网络/渠道管理的策略。策略通过系统链代码定义,并包含网络操作成功的必要规范。例如,认可策略可能要求100%的代理在交易模拟时获得相同的结果。
  • Transaction:调用或实例化操作。调用是从分类帐读取/写入数据的请求。Instantiate是在对等体上启动链代码容器的请求。
  • Chaincode:这是超级分类账中的智能合约。
  • Private Channels :Hyperledger Fabric频道是两个或多个特定网络成员之间通信的私有“子网”,用于进行私人和机密交易。频道由成员(组织)定义。必须对每一方进行身份验证并授权其在该频道上进行交易。加入频道的每个对等体具有由成员服务提供者(MSP)给出的自己的身份,其向每个对等体验证其频道对等体和服务。
  • Modular Consensus:模块化共识指不同的行业在网络中拥有自己的网络甚至子网络。Hyperledger通过提供可插拔的共识为这些要求提供解决方案。目前,它提供PBFT(实际拜占庭容错),开发者社区正在积极致力于不同的共识机制。
  • Performance and scalability:性能和可扩展性,分类帐必须能够持续运行直到其生命周期。它应该允许发现,搜索,身份解析和执行其他关键功能。即使节点数量也会随着时间的推移而增加。因此,性能是关键因素,Fabric能够有效扩展而不会降低性能。

下图显示了Hyperledger逻辑体系结构在其类别中:

以下是来自IBM Hyperledger结构的股票市场示例,其中描绘了位于中心的统一分布式分类帐:

资产托管人(银行),前台,运营,证券托管(CSD)和清算方(清算/CCP):

下面解释了上图中的步骤:

  • 1.托管人使用客户端应用程序调用链码来买卖证券区块。
  • 2.交易可以从任何网络节点触发,但始终转发到主(主要)验证节点,该节点对交易进行排序。主节点将有序交易广播到所有验证对等体,以便就建议的订单达成共识或协议。
  • 3.如果商定了交易顺序,则执行交易并将其附加到每个验证节点上的分类账。然后将分类帐复制到所有网络节点。

总而言之,Hyperledger Fabric的一些主要功能包括:

  • Hyperledger结构支持权限网络,其成员身份服务管理对网络参与者的访问。
  • 它为需要私密保密交易的团体提供隐私。
  • Chaincode包含为渠道提供特定类型交易的逻辑(例如:资产所有权变更),并确保所有交易符合定义的规则和要求。
  • 它可以高效扩展,不会降低性能。

下表列出了Hyperledger Fabric和以太坊之间的区别:

在经历了差异之后,我觉得hyperledger Fabric和Ethereum之间的区别与内网和互联网的区别相似。我希望这篇博客能为你提供有关以太坊和超级账本之间差异的一些见解。

======================================================================

分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:

  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是以太坊和Hyperledger Fabric之间的差异