主页 > imtoken官网钱包 > 区块链分布式账本结构、Corda 和以太坊的比较

区块链分布式账本结构、Corda 和以太坊的比较

imtoken官网钱包 2023-02-28 07:52:28

简要分析分布式账本技术 (DLT) Hyperledger Fabric、R3 Corda 和以太坊之间最显着的差异。 目的是为政策制定者提供新的 DLT 指南,以了解哪些用例最适合 Hyperledger Fabric、Corda 和 Ethereum。

三个不同的框架

从 Hyperledger Fabric、R3 Corda(以下分别简称为 Fabric 和 Corda)和以太坊的白皮书中可以明显看出,这些框架对可能的应用领域有着截然不同的愿景。 Fabric 和 Corda 的发展是由特定用例驱动的,而 Corda 的用例来自金融服务行业。 因此,这就是 Corda 看到其主要应用领域的地方。 相比之下,Fabric 计划提供一种模块化和可扩展的架构,可用于从银行业和医疗保健到供应链的各种行业。 以太坊似乎也完全独立于任何特定的应用领域。 但是,与Fabric相比,它不是模块化的,而是为各种交易和应用提供了一个通用的平台。

同伴参与者

对于像 oracle 或 nosql 这样的传统中央数据库系统,只有一个实体(所有者)保留底层数据库的副本,例如分类帐。 因此,该实体控制贡献哪些数据以及允许哪些其他实体贡献。 随着 DLT 的出现,这种根本性的变化将有利于分布式数据存储,其中多个实体持有底层数据库的副本,并且自然被允许做出贡献。

参与分布式数据存储的所有实体形成了所谓的节点或对等网络。 由于分布式数据存储,很难确保所有节点都同意一个共同的事实,例如分类帐的正确性,因为一个节点所做的更改必须传播到网络中的所有其他对等节点。 达成共同事实的结果称为节点之间的共识,将在下面描述。

关于参与共识,有两种运行模式:无许可和有许可。 如果参与是未经许可的,则任何人都可以参与网络。 该模型适用于作为公共区块链的以太坊。 另一方面,如果允许参与,则会提前选择参与者,并且仅限于这些参与者访问网络。 Fabric 和 Corda 也是如此。 参与模式,无论是未经许可还是未经许可,都对达成共识有着深远的影响。

共识

1、以太坊的所有参与者必须就所有已经发生的交易的顺序达成共识(banq注:a transaction是交易,英文是transaction),不管参与者是否参与了具体的交易。 交易的交易顺序对于账本的一致状态至关重要。

超级账本比以太坊事务处理更高效_sitejianshu.com 以太坊以太经典_以太坊官网以太坊

如果无法建立明确的交易顺序,就会发生双重支出,即两笔平行交易将相同的硬币转移给不同的接收者,从而凭空赚钱。

由于网络可能涉及相互不信任和匿名的各方,因此必须采用共识机制来保护分类账免受欺诈或不利的参与者试图双重支出的影响。

在以太坊目前的实现中,这种机制是通过基于工作量证明(PoW)方案的挖矿来建立的。 所有参与者必须就一个共同的分类账达成一致,所有参与者都可以访问所有记录的条目。 结果是 PoW 影响了交易处理的性能。

关于存储在分类帐上的数据,即使记录是匿名的,所有参与者都可以访问它们,这对于需要更高隐私程度的应用程序来说是有问题的。

与以太坊相比,Fabric 和 Corda 对共识的解读更为细致,并不仅仅归结为基于 PoW 或其衍生品的挖矿。 由于在许可模式下运行,Fabric 和 Corda 提供了更细粒度的记录访问控制,从而增强了隐私性。 此外,由于参与交易的各方必须达成共识,才能获得性能收益。

2. Fabric对共识的理解是广泛的,包括整个交易过程,从提出交易到网络,再到提交到账本。 此外,节点在达成共识的过程中承担着不同的角色和任务。 这与以太坊形成对比,在以太坊中,参与达成共识的节点的角色和任务是相同的。

在 Fabric 中,节点根据它们是客户端、对等节点还是排序节点来区分。 客户代表最终用户做事,创建和调用事务。 他们与同行和订购者沟通。

超级账本比以太坊事务处理更高效_sitejianshu.com 以太坊以太经典_以太坊官网以太坊

节点维护分类帐并从排序节点接收有序的更新消息,以便将新交易提交到分类帐。

Advocate orderers 是一种特殊类型的节点,其任务是通过检查交易是否满足必要和充分的条件(例如提供所需的签名)来支持交易。

订购者为客户和节点提供通信渠道,通过这些渠道可以广播包含交易的消息。 具体而言,就共识而言,通道确保所有连接的对等点以完全相同的逻辑顺序传递完全相同的消息。 (保证顺序是分拣员的主要职责)

此时出现的问题是,当雇佣了很多互不信任的orderer时,消息传递可能会出现错误。 因此,必须使用共识算法来处理无法达成共识,或者例如消息顺序不一致的情况,以确保在复制分布式账本时对失败的容忍度。

对于 Fabric,所采用的算法是“可插入的”,这意味着可以根据应用程序的具体要求使用各种算法。 例如,为了处理如上所述的随机或恶意复制错误,可以使用拜占庭容错 (BFT) 算法的变体。

此外,通道划分了消息流,这意味着客户端只能看到它们所连接通道的消息和相关事务,而不知道其他通道的事务。

上述节点的角色在交易流程的上下文中进行了描述:客户端向连接的发言人发送交易以启动分类账的更新。 所有发言人必须就拟议的交易达成一致,因此必须就拟议的账本更新达成某种共识。 然后客户依次收集所有发言人的批准。

sitejianshu.com 以太坊以太经典_以太坊官网以太坊_超级账本比以太坊事务处理更高效

批准的交易被发送到连接的订购者并再次达成共识。 随后,交易被转发给持有分类账的对等方以进行进一步交易。

无需进一步详细说明,很明显 Fabric 允许对共识进行细粒度控制并限制对交易事务的访问,从而提高性能可扩展性和隐私性。

3. 与Fabric 类似,Corda 的共识也是通过只涉及当事人的交易层面来实现的。 达成共识就是交易的有效性和交易的唯一性。

通过检查所有必需的签名并确保引用的任何交易也有效,通过运行与交易关联的智能合约代码(智能合约在下面详细描述)来确保有效性。

唯一性涉及交易的输入状态。 具体来说,必须确保所讨论的交易是其所有输入状态的唯一消费者。 换句话说,没有其他交易消耗任何相同的状态。 这样做的原因是为了避免双重支出。 参与者称为公证节点,其唯一性达成共识,采用的算法与Fabric一样“可插拔”。 因此超级账本比以太坊事务处理更高效,可以再次使用BFT算法。

智能合约

“智能合约”一词在第一次遇到时可能会产生误导,因为它让人联想到某种代表智能的合约。 然而,合同的性质仍然模糊不清,但直观上看起来与法律问题有关。 也就是说,合同既不是智能的也不是人工智能驱动的,至少现在还不是,它们通常也不编码具有法律约束力的义务和权利。

以太坊官网以太坊_超级账本比以太坊事务处理更高效_sitejianshu.com 以太坊以太经典

Clark 及其同事提供了一个有用的术语,强调了“智能合约”一词的两种不同使用方式。 第一个是智能合约代码,第二个是智能法律代码,这两个区别在这种比较的背景下被证明是有益的。

智能合约代码只是指用编程语言编写的软件。 它充当软件代理人或使用方的代表,目的是履行某些义务、行使权利并可以自动控制分布式账本中的资产。 因此,它通过执行在现实世界中建模或模拟合约逻辑的代码来承担分布式账本世界中的任务和责任,尽管其法律依据可能尚不清楚。

所有 DLT 都有智能合约代码意义上的智能合约,Fabric 可以用 Go 或 Java 编写,Ethereum 可以用 Solidity 编写,Corda 可以用 Java 或 Kotlin 编写。

在 Fabric 中,术语“链码”用作智能合约的同义词。 作为一个说明性的例子,提醒读者在 Corda 的共识机制中使用智能合约代码来保证交易的有效性。 然而,一方面 Fabric 和 Ethereum 之间存在显着差异,另一方面 Corda 与“智能合约”一词的第二种使用方式有关。

在 Corda 中,智能合约不仅包括代码,还允许法律文本。 因此,上述智能法律合约是一个法律文本超级账本比以太坊事务处理更高效,其制定方式可以用智能合约代码来表达和实现。 这背后的基本原理是赋予代码从相关法律文本派生的合法性。 这种结构称为李嘉图合约。 此时,Corda 明确旨在应对金融服务行业高度监管的环境。 Fabric 和 Ethereum 都缺乏这个功能。

内置货币

另一个显着的区别是以太坊有一个内置的加密货币(以太币)。 它用于支付奖励给通过挖掘块达成共识的节点以及支付交易费用。 因此,可以为以太坊构建去中心化应用程序 (DApps),允许货币交易。 此外,可以通过部署满足预定义标准的智能合约来创建用于自定义用例的数字令牌。 通过这种方式,可以定义自己的货币或资产。

超级账本比以太坊事务处理更高效_以太坊官网以太坊_sitejianshu.com 以太坊以太经典

Fabric 和 Corda 不需要内置加密,因为无法通过挖矿达成共识。 但是,对于 Fabric,可以使用链码开发本地货币或数字代币。 使用 Corda,无意创建数字货币或代币。

总结:定制与通用平台

总而言之,这三个 DLT 跨越了一个连续统一体。 一方面有 Fabric 和 Ethereum,它们都非常灵活,但方式不同。

以太坊强大的智能合约引擎使其成为适用于任何类型应用程序的通用平台。 然而,以太坊的免许可操作模式及其完全透明是以牺牲性能可扩展性和隐私为代价的。

Fabric 通过许可操作模式解决性能可扩展性和隐私问题,特别是通过使用 BFT 算法和细粒度访问控制。 此外,模块化架构允许 Fabric 为多种应用程序定制。 可以用多用途工具箱来类比。

Corda 在另一端。 它被有意识地设计为金融服务行业的分布式账本技术。 最值得注意的是,它通过添加带有法律文本的智能合约来实现高度监管的环境。

显然,与 Fabric 相比,Corda 专注于金融服务交易简化了其架构设计。 因此,它可以提供更加开箱即用的体验。 然而,由于其模块化,Fabric 可以定制为类似 Corda 的功能集。 将 Corda 集成到 Hyperledger 项目中的努力已经存在。 因此,Corda 不能被视为 Fabric 的竞争对手,而更像是一种补充。

原版的

[本帖由banq于2018-10-07 16:55修改]