区块链和它的挑战者们

虽然区块链继续受到关注,无论是在加密货币领域还是商业领域的其他创新用例中,有些新技术正在应对它们的一些缺点。然而,有时候可以将这些东西混合在一起进行比较。在这篇文章中,我试图弄清楚哪些个领域,然后我们可以有更大的图景,并在它们之间进行更恰当的比较。我们不是将苹果与橙子进行比较。

比特币和区块链

比特币近十年前出现,总的来说它仍然被认为是区块链的第一次成功实施。比特币只不过是分布在大量节点中的公共分类账,而区块链是支持这种分布式账本的技术。这种技术的更通用术语称为分布式分类帐技术(DLT)。

以下是关于比特币区块链性质的重点。在谈论其他区块链实现时,我们将参考它们。

它是distributed分布的。比特币网络由大量计算机(节点)组成。每个节点都有比特币区块链的副本。

它是permissionless无权限设定的,这意味着节点可以随时加入和离开比特币网络。加入网络有助于增强其稳健性,同时保持网络不会造成太大伤害。

它是decentralized去中心化的,这意味着没有一个组织拥有比特币网络,并且可以完全关闭它。看看Bitnodes网站,在一定程度上分布看起来相当平衡。这也提供了一些抵御拒绝服务(DoS)攻击的内在能力。

通过全球超过11,000个节点,了解比特币网络今天(2018年3月)的情况。

Blockchain家族的新人

从那时起,我们看到了几个新的区块链计划。迄今为止最大的两个是以太坊和Hyperledger。它们在用例和部署模型中都有所不同。

注意:Hyperledger是由Linux Foundation托管的项目。它包括几个区块链项目。不同的区块链项目采用了一些不同的方法。在这里,我选择Hyperledger Fabric,主要由IBM提供,因为它有更大的媒体报道和业务活动。

放下每一个细节并不容易。在这里,我只重点介绍我们将在后面看到其他技术如何挑战区块链的那些项目。

他们之间的一些快速比较。

以太坊和Hyperledger Fabric都提供智能合约功能。然而,告诉哪一个比另一个更好是没有意义的。任何人都很难决定在一个用例中是否允许使用无权限或许可的区块链。

Hyperledger没有本地货币。但只是这一点并没有减少它的用处。在企业或财团部署中,通常不需要货币来为交易提供资金,因为所有者可以处理此事。如果需要,与外部法定货币接口是可行的,以满足这一要求。

一般来说,Hyperledger中的共识可以比比特币和以太币快得多。这是由于无权区块链的权力下放的特点造成的。在允许的环境中,节点都由一个或多个已知方控制,并且共识可以更简单。

虽然以太坊可以作为私有区块链进行部署,但挖掘的需求和缺乏访问控制使得以太坊远非获得许可的实施。在诸如Quorum之类的以太坊上做了一些努力,使其更多地被企业用作准许的区块链。

区块链的挑战者

自推出以来,许多人已指出当前区块链实施所面临的各种问题或挑战,因此非常需要改进。这种改进可以来自一种演变,而不会在很大程度上改变我们今天所拥有的东西。例子包括使用侧链或新的共识协议。或者提出了全新的方法来解决这些问题。在这些技术中,有向无环图(DAG)最近成为人们关注的焦点。并且发生了两种采用DAG的实现,一种是在无权限的情况下实现的,一种是在许可的情况下。

本文仅提供这些技术的最低限度介绍。每个都有更全面的材料。

有向无环图(DAG)

DAG被认为是表示数据结构的另一种方式,具有优于区块链方法的优势。

在DAG中有节点和连接。这里的节点不是计算机。我们可以将节点视为一段数据。节点以加密方式链接。该图被称为“定向”,因为我们看到有节点的方向(由箭头表示)。它被称为“非循环”,因为没有循环。这是DAG的基础。

没有一个模型应该如何实现DAG。这里使用DAG的两种提议方法的实现方式截然不同。同时,区块链被认为是一种链形DAG,而以太坊也是DAG的一种实现,尽管它更像是一种区块链。

IOTA Tangle:无权的Ledger

IOTA解决了现有无权区块链实施的挑战,特别是机器经济和小额支付的使用案例。挑战是,

  • 处理大量交易的可扩展性。
  • 交易费高。
  • 用户(交易发行人)和矿工(交易批准人)的二分法。

简而言之,IOTA引入了Tangle,即用户交易所在的DAG。它被称为“交易捆绑”,但为了简单起见,我们将其称为“交易”,由图中的方块表示。新交易必须批准两个未经批准的交易,称为提示(图中的灰色方块),然后放在Tangle上。然后,此交易成为新的提示,并将由稍后进行的交易批准。这形成了Tangle。

使用Tangle,没有专门用于挖掘的节点,因为每个交易本身都充当批准其他两个交易的“矿工”。由于矿工无需激励,因此无需交易费用。这种免费的资金转移是机器经济和微支付的基础。每次交易都通过Random Walk Monte Carlo算法通过尖端选择来维护DAG。IOTA附带称为iota的本地货币,并且分类帐位于Tangle内。

Swirlds Hashgraph:Permissioned Ledger的共识协议

Swirlds Hashgraph定位为一个共识协议,承诺在处理大量交易时“快速,安全和公平”。

今天的Hashgraph是一个允许的实现,用于企业或联盟部署。简而言之,一组参与者将他们认识的交易分享给他人。该单位称为“事件”,其中包含他们知道的交易项目,并且他们认为其他人不知道(下图中显示的圆圈)。通过以加密方式正确链接事件,每个人都可以对事件进行完整的图形显示,因此可以在没有第三方参与的情况下对具有时间戳的交易达成共识,其中称为“虚拟投票”。

以下是Hashgraph的样子。五个参与者在彼此分享事件后形成共识。 Hashgraph算法保证达成共识。

更新:Swirlds在今年3月的发布活动中宣布了一个名为Hedera hashgraph平台的公共分类账。这个平台是无权限的,这意味着每个人都可以参与哈希图的共识,同时在理事会的许可治理下。它有自己的加密货币,就像人们在无权利的分类账中所期望的那样,可以运行智能合约。 在我们进行更全面的比较之前,我们期待Hedera提供更多信息。

与新技术的比较

IOTA和Hashgraph被广泛认为是现有区块链技术的挑战者。在这里,我们将它们放入表中,并尝试进行一些合理的比较。

IOTA Tangle是比特币和以太坊的有效挑战者,因为它们都是无权限的,并且采用本地加密货币。特别是,IOTA解决了不适合机器经济的可扩展性和高交易费的缺点。IOTA在首次实施时存在很多问题。然而,仅从技术角度来看,我们可以关注基于区块链和基于DAG的竞争对手。IOTA目前的一个缺点是缺乏智能合约能力,尽管一些第三方正在开发像IOTA上的token标准。

在一些Hashgraph的介绍中,当他们谈论Hashgraph有多快(每秒数十万)时,他们总是带出比特币(每秒3-7个)和以太坊(每秒10-20个)进行比较。我的观点是,比特币和以太坊需要额外的努力来维持其无权限,这是与Hashgraph许可实施相比的关键区别。为了更好地进行比较,它应该是Hashgraph与现有的基于区块链的许可实现,比如Hyperledger中的那些,或者当Hashgraph像比特币和以太坊今天所做的那样出现一个无权网络时。注意:它不仅仅是一个公共分类帐,而是一个真正的无权实现,就像比特币和以太坊今天的工作一样。

此外,Hashgraph明确定位为共识层,并且正在建立一个更完整的框架。由于Hyperledgers项目支持可插入的共识服务,而不是相互竞争,因此可能存在一种协作方式。尽管如此,Swirlds目前采用的商业模式更像是一种企业软件方法,因此他们可能更喜欢构建整个平台。

到目前为止,没有观察到Tangle和Hashgraph之间的深入比较。这是有意义的,因为两者都在处理不同的用例,并且DAG的使用没有太多重叠。由于两者都在开发他们的技术和生态系统,我们将看到是否会有任何重叠,例如企业使用Tangle,或者Hashgraph成为更无权限的部署。

总结

正如一开始所提到的,基于DAG的新技术正在对现有的区块链参与者提出挑战,无论是在无权限还是允许的实施中。了解他们所属的部分有助于我们在这个行业中草拟更大的图景。

我们将继续看到他们之间激烈的争论。撇开投资价值观,阅读他们的努力带来新的方法是非常鼓舞人心的,让我们看看他们如何发展以及如何在社区或商业世界中接受市场。

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

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

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是区块链和它的挑战者们