Hyperledger Fabric、Corda和以太坊对比

  • 时间:
  • 浏览:0

 Hyperledger Fabric 、 Corda 和以太坊的对比

有四种 不同的框架

大伙从 Hyperledger Fabric、R3 Corda和以太坊的白皮书中能可不也能了看多,有四种 框架在不可能 的应用领域上分别具有全版不同的想法。

Fabric[1] 和 Corda[2] 的开发是受具体用例驱动的。其中,Corda 的用例来自于金融服务行业,这也是 Corda 可见的主要应用领域。Fabric 设计提供有四种 模块化、可扩展的架构,可用于从银行、医疗保健到供应链等各个行业

以太坊表现出全版独立于任何特定的应用领域 [3]。然而与 Fabric 相比,以太坊并未突出模块化,而重在为各种交易和应用提供有1个通用平台

对等端的参与

在传统的集中式数据存储中,可不也能了有1个实体(即所有者)能可不也能了保留账本其他底层数据库的副本。怎么让,该实体控制了什么数据能可不也能了提供,以及允许其它实体提供什么数据。DLT 的突然再次出现,从根本上改变了分布式数据存储的土方法,实现了多个实体拥有底层数据库副本,自然也支持每个拷贝做出贡献。参与分布式数据存储的所有实体,形成有四种 由所谓“节点”或“对等端”构成的网络。不可能 数据是分布式存储的,怎么让难以确保所有节点对其他“一同事实”(类式,账本的正确性)达成一致。不可能 有1个节点所做的更改,也能 传播到网络中的所有其它的对等节点上。达成一同事实的结果,称之为节点间的“共识”(consensus),将在下文介绍。

针对是是是否是是参与达成共识,地处有四种 操作模式,即无授权(permissionless)和有授权(permissioned)。不可能 参与不想授权,这样 任何人都能可不也能了参与网络。授权模式适用于作为公共区块链的以太坊。个人面,不可能 参与需授权,这样 参与者是经过预先选则 的,怎么让仅限于什么参与者访问网络。Fabric 和 Corda 都属于后者。选则 无授权或有授权的参与模式,将对达成共识具有深远的影响。

共识 以太坊

使用以太坊,无论参与者是是是否是是参与了某个特定的交易(Transaction),所有参与者也能 就全版已地处交易的顺序达成共识。交易的顺序对账本的一致请况至关重要。不可能 无法建立明确的交易顺序,这样 不可能 会突然再次出现双重支付(double-spends)间题,即两笔并行交易将同一枚货币转账给了不同的收款人,使其凭空受益。不可能 网络所涉及的各方不可能 是互不信任的,怎么让是匿名的,怎么让也能 采用共识机制来保护账本免受双重支付欺诈,不可能 心怀鬼胎参与者的影响。在目前的以太坊实现中,其他共识机制的建立是使用基于工作证明(PoW,Proof of Work)方案的挖矿。所有参与者也能 认同有1个一同账本,怎么让能可不也能了访问账本中所有的记录条目。其结果是,PoW 会对交易的正确处理性能产生不利的影响 [5]。尽管记录是匿名的,怎么让存储在账本中的数据仍然可供所有参与者访问。怎么让对于有更高隐私度需求的应用而言,其他机制地处间题。

不同于以太坊,Fabric 和 Corda 给出了更精细的共识设计,不再仅仅局限于基于 PoW 或其它衍生物的挖矿。不可能 Fabric 和 Corda 运行在许可模式下,怎么让可为记录提供更细粒度的访问控制,从而增强了隐私。此外,不可能 可不也能了参与交易的各方才也能 要达成共识,怎么让在性能上有所提高。

 Fabric

Fabric 提供了范围很广的共识理解,中含从将交易提交网络到将交易记录到账本的整个交易流程 [6]。此外,节点在达成共识的过程中承担了不同的角色和任务。这全版不同于以太坊,其中参与达成共识的节点具有相同的角色和任务。

Fabric 将节点区分为客户节点(Client)、对等节点(Peer)和订购节点(Orderer)[7]。客户节点代表最终用户,创建并调用交易。大伙与对等节点和订购节点沟通。对等节点维护账本,并接收订购节点订购的更新消息,以向账本提交新的交易。背书节点(Endorser)是一类特殊的对等节点,任务是通过检查自身是是是否是是满足其他必要的和充分的条件(类式提供所需的签名),对交易提供背书。订购节点在客户节点和对等节点间提供了通信通道,用于广播中含交易的消息。特别是对于共识,什么通道确保了所有已连接的对等节点按照全版相同的逻辑顺序传递全版相同的消息。

怎么让间题会突然再次出现在其他点上。不可能 其中涉及多个互不信任的订购节点,在传递消息时不可能 会突然再次出现错误。怎么让,也能 引入一致性算法,使得在突然再次出现故障(类式,消息顺序不一致)时仍然能可不也能了达成一致,从而使分布式账本的克隆qq过程支持容错。Fabric 所采用的算法是“可插入的”,即能可不也能了根据特定应用的需求而使用各种算法。类式,为了正确处理如上所述的随机或恶意克隆qq错误,大伙能可不也能了使用拜占庭式容错(BFT)的有四种 变体算法。此外,通道划分了消息流,这原困客户节点可不也能了看多它们连接通道中的消息及相关联的交易,而我不在乎 其它通道的请况。通过其他土方法,对交易的访问将仅限于相关方。其结果是可不也能了在交易层面达成共识,而可不也能了像以太坊那样在账本层面达成共识。

顶端介绍了节点,现在介绍交易流的上下文。客户节点向已连接的背书节点发送交易,启动对账本的更新。所有背书节点都也能 就提出的交易达成一致,怎么让也能 根据更新所建议的账本达成有四种 共识。客户节点依次采集所有背书节点的批准,怎么让将经批准的交易发送给已连接的订购节点,由什么订购节点再次达成共识。如果,交易将被转发给持有分类账的对等节点,以提交交易。

大伙在此不再做进一步的全版介绍。很显然,Fabric 支持对共识做细粒度的控制,并提供对交易的受限访问,这提高了性能的可扩展性和隐私性。

 Corda

类式于 Fabric,Corda 的共识也是在交易层面达成的,仅涉及交易的各方。交易取决于共识是满足交易合法性(validity),还是交易唯一性(uniqueness)[8]。交易合法性通过运行与交易相关联的智能合约代码(智能合约将在下文给出全版介绍),检查也能 的所有签名,并确保所引用的任何交易也是有效的。交易唯一性涉及交易的输入请况。具体而言,也能 确保有间题的交易是所有输入请况的唯一消费者。换句话说,不地处任何消耗同一请况的其它交易。这是为了正确处理产生双重支付。实现交易唯一性的共识,是在称为“公证人”(Notary)[9] 的参与节点中达成的。其中使用的算法和 Fabric 一样,是“可插拔的”。怎么让,大伙同样能可不也能了使用 BFT 算法。

智能合约

在第一次接触“智能合约”(smart contract)一词时,大伙难免会产生相当大的误解,将其理解为有四种 智能地表达了某人利益的合约。尽管合约的本质仍然地处含糊不清之处,怎么让在直观上它似乎应与法律有关。也如果说,大伙所关注的合约在本意上难能可贵智能的,要花费目前仍尚未由人工智能驱动,也尚未在其中编入具有法律约束力的义务和权利。Clark 及其同事 [10] 在给出“智能合约”其他有用术语时,强调指出了该术语的有四种 不同的常用土方法。第有四种 土方法是智能合约代码(smart contract code),另有四种 土方法是智能法律合约(smart legal contracts)。本文着重介绍两者间的区别。

智能合约代码如果用有四种 编程语言编写的软件。它作为有1个软件代理,或是代表其中某一方,目的是履行其他义务、行使其他权利,并以自动的土方法控制分布式账本中的资产。怎么让,智能合约通过代码执行模拟,或模拟现实世界中合约逻辑,承担了分布式账本的任务和责任,尽管其合法性不可能 尚未明确。

所有的 DLT 都支持以智能合约代码的形式履行智能合约。代码能可不也能了使用 Go、Java for Fabric [11]、Solidity[12] for Ethereum,以及 Java/Kotlin for Corda [13] 编写。在 Fabirc 中使用了术语“链码”(chaincode),以此作为智能合约的同义词。举例说明,Corda 为确保交易的有效性,会提醒读者在共识机制中使用智能合同代码。一方面,Fabric 和 Ethereum 之间地处着显著的差异。个人面,这是与 Corda 使用另有四种 “智能合约”土方法相关。

在 Corda 中,智能合约不仅能可不也能了中含代码,还允许中含法律行文(Legal Prose)。怎么让,上述智能法律合约是法律行文,其制定土方法能可不也能了通过智能合同代码来表达和实施。其肩上的基本原理,是赋予植根于相关法律行为的代码以合法性。其他形态学 称为“Ricardian 合约”[14]。这清晰地表明,Corda 是设计用于金融服务行业其他受严格监管的环境。而 Fabric 和 Ethereum 也能 具备此功能。

代币

如果值得注意的区别,是以太坊提供有四种 称为“以太”的内置加密货币。以太用于向帮助通过挖矿达成共识的节点支付奖励,并支付交易费用。怎么让,去中心化应用(DApps)能可不也能了基于支持货币交易的以太坊构建。此外,通过部署符合预定义标准的智能合约,能可不也能了创建为用例定制的数字代币 [15]。使用其他土方法,大伙能可不也能了定义个人的货币或资产。

Fabric 和 Corda 不支持通过挖矿达成共识,怎么让不也能 内建的加密货币。怎么让使用 Fabric,也能可不也能了开发本地货币,或是中含区块链代码的数字代币 [16]。使用 Corda,不建议创建数字货币或代币 [17]。

总结:定制平台对比通用平台

一方面是 Fabric 和以太坊。它们在不同的方面上具有非常大的灵活性。以太坊是有四种 强大的智能合约引擎,基本上可作为任何类型应用的通用平台。怎么让,以太坊的无授权操作模式及全面透明度,是以牺牲性能可扩展性和隐私性为代价的。Fabric 采用有授权的操作模式,即使用 BFT 算法和细粒度访问控制正确处理了性能可扩展性和隐私间题。此外,Fabric 的模块化体系形态学 使其能可不也能了针对众多应用进行定制。大伙可将 Fabric 比做有有1个功能的工具箱。

个人面是 Corda。它专门设计为有四种 用于金融服务行业的 DLT。应注意的是,Corda 通过增加法律行文的智能合同,考虑了受层厚管制的环境。

显然,与 Fabric 相比,专注于金融服务交易使 Corda 得以复杂性其采集。怎么让,Corda 能可不也能了提供更多的开箱即可用体验。不过,Fabric 的模块化支持定制类式于 Corda 的功能集。其他工作力图将 Corda 纳入 Hyperledger 项目。怎么让,可不也能了将 Corda 视为 Fabric 的竞争对手,而更多的是有四种 补充。

查看英文原文:https://medium.com/@philippsandner/comparison-of-ethereum-hyperledger-fabric-and-corda-21c1bb9442f6

参考文献:

[1] https://docs.google.com/document/d/1Z4M_qwILLRehPbVRUsJ3OF8Iir-gqS-ZYe7W-LE9gnE/pub

[2] https://docs.corda.net/_static/corda-introductory-whitepaper.pdf

[3] https://github.com/ethereum/wiki/wiki/White-Paper

[4] e.g. https://github.com/jpmorganchase/quorum

[5] Vukolić M. (2016). The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication, in: Camenisch J., Kesdoğan D. (eds.) Open Problems in Network Security, iNetSec 2015, Lecture Notes in Computer Science, Vol. 9591, Springer.

[6] https://hyperledger-fabric.readthedocs.io/en/latest/fabric_model.html#consensus

[7] https://github.com/hyperledger/fabric/blob/master/proposals/r1/Next-Consensus-Architecture-Proposal.md

[8] https://docs.corda.net/key-concepts-consensus.html

[9] https://docs.corda.net/key-concepts-notaries.html

[10] http://arxiv.org/abs/15008.00771

[11] http://hyperledger-fabric.readthedocs.io/en/latest/chaincode.html

[12] http://solidity.readthedocs.io/en/latest/

[13] https://docs.corda.net/tutorial-contract.html

[14] http://iang.org/papers/ricardian_contract.html

[15] https://www.ethereum.org/token

[16] https://hyperledger-fabric.readthedocs.io/en/latest/Fabric-FAQ.html#chaincode-smart-contracts-and-digital-assets

[17] https://discourse.corda.net/t/mobile-consumer-payment-experiences-with-corda-on-ledger-cash/966?source_topic_id=962