文章阅读页通栏

未来的分布式账本技术:不是区块链,会是哈希图?

来源: 作者:
Leemon, 革命性的分布式账本技术---哈希图技术发明人. 2年9个月获得卡内基梅隆大学博士学位. 该技术各方面都优于区块链。 与区块链不同的是,它......


Leemon, 革命性的分布式账本技术---哈希图技术发明人. 2年9个月获得卡内基梅隆大学博士学位. 该技术各方面都优于区块链。 与区块链不同的是,它具有高吞吐量(每秒250,000次事务处理前分片),公平(具有共识时间戳的数学证明的公平性)和安全(异步拜占庭式容错)。 其用途可扩展到复杂市场,股票,拍卖,加密货币小额支付,直播游戏(甚至MMO)等等。

分布式账本技术

问:我必须承认,直到最近我才知道哈希图(Hashgraph)。当我接触一些在区块链社区工作的人时,似乎也没有一个人知道这个协议。这是一个了不起的技术, 一个了不起的算法,主要处理基本上达成共识,并解决了区块链社区一直在努力的许多问题。如果您先解释区块链和分布式账本技术之间的区别,再谈哈希图可能对别人理解会更有帮助。

Leemon:
分布式账本只是一组计算机,需要就特定交易发生的顺序及要更新某些信息达成协议。也许(这个信息)是钱包里的钱的数量,也可能是智能合约的结果,也有很多东西可以储存。但是分布式账本的全部重点是一堆计算机达成协议,而不必信任任何单台计算机。

问:说区块链只是分布式账本技术(DLT)的一种类型是正确的吗?在分布式账本上还有其他的形成共识的方法,对吗?

Leemon:
对。实际上有五种不同的方法来达成分布式共识。大部分区块链社区的人可能最熟悉以比特币(区块链)开始的“工作量证明”(Proof-of-Work)。第二个是基于领导者(leader)的系统,如PBFT,Raft和Paxos。

再有,就是以经济为基础的,通常被称为“证明权益”(Proof or Stake),这里投票有点象赌钱,希望我们能够象经济如何达成共识的那样达成共识,但并不总能达成共识。下一个是基于投票的系统可以追溯到几十年前,但是根本没有人在现实世界中使用了真正的投票系统,因为它们非常缓慢。

现在有了哈希图,这是虚拟投票,这意味着你可以得到我们几十年来(有投票权的)所有那些有力的保证,但是效率非常高,因为我们实际上并没有通过互联网发送任何投票。所以这些是五种不同的方式。

工作量证明(Proof of Work)/区块链BlockChain

问:毫无疑问,分布式账本技术已因比特币/区块链的流行而广为人知。您能否再解释一下“工作量证明”是如何达成共识的,以及区块链社群一直在试图解决那些问题?

Leemon:
当然,全部的重点是我们需要能够把交易按顺序进行。例如,如果我的钱包里有硬币  - 我虚拟钱包里的虚拟硬币,而我试图在不同的商店里使用同样的硬币,那就太糟糕了。我基本上是凭空创造金钱出来—即伪造货币。为了防止这种情况,我们作为一个社区所做的决定是决定我的两个花费中的哪一个算数。如果我们能够就交易发生的顺序达成一致,那么我们可以保持货币供应不变,确保没有人作弊。所以,全部都是社区就这些不同交易发生的顺序达成一致(的问题)。

在比特币中,有一个机制可以决定社区中的哪些人有权添加下一个区块 - 换句话说,就是添加下一个封装了所有交易的区块。如果没有这个机制,每个人都会在同一时间添加区块,那就会是一片混乱。为了避免这种情况,社区已经同意有能力(率先)解决一个数学问题的,能够添加区块链上的下一个区块。这对世界上任何人都没有用处,但是真的很难做到。

事实上,你需要一台超级计算机来解决这些数学问题 - 这就是人们所说的“采矿设备”,它是使用专门为此目的制造的芯片而建造的。所以,在世界各地,人们一直在努力用计算机解决这些数学问题。这些昂贵的计算机, 使用大量的电力来试图解决这些数序问题,谁先解决了,谁就有权添加区块链中的下一区块。当他们添加下一个区块到区块链链中时,他们实际上会获得一些COIN奖励。这就是为什么人们要这样做的原因。这有助于支付超级计算机和所有的电力花销。

所以,在比特币世界中,可达到每秒七笔交易。在哈希图中,我们可以高达几十万笔每秒,因为它不使用区块链的方法。有方法可以使比特币更快一点,但现在就是是七笔每秒。没有几十万交易每秒,只有七笔。

问:能解释一下为什么需要解决这些类型的任意数学问题(arbitrary mathematic problems),花费这么多的精力就是为了达成共识?

Leemon:
具有讽刺意味的是,我们把所有这些钱浪费在电力上的原因就是让系统变慢。这听起来很疯狂,但实际上就是这样。

所以,实际情况是, 没有办法预先公平地决定谁来添加下一个区块。你必须去竞争来争夺这个权利。但是,如果允许人们以网络的速度增加区块,那么我们都将同时增加区块。这样就不是形成一个很好的,单一的链,而会得到链的所有分叉。帐本开始看起来更像一棵树而不像个链。那么这是一场灾难,因为社区永远不会知道哪个交易先发生。这意味着没有共识。所以,为了让系统安全工作,人们让一切都慢下来,这样实际上每个人都有时间同意那个是下一个块。如果每十分钟只添加一个新块,那么两个块同时添加的情况将非常罕见。

当两个块同时加入时,大家都用脚投票。社区中的人试图通过解决数学问题,添加新块到两个叉中的一个。无论那个叉赢了并且增长速度快一些,社区就会不断增加新块到这个叉链 - 最终,这个叉只要足够长了,我们最终就忽略了那个短的一个叉链,并且它也就消失了(长的叉链就变成了主链)。无论谁,给那个短叉挖矿的,无论是谁,全部出局 - 他们花了所有的力气,没有得到任何回报。最终,我们就都有动力不断加入长链。这是共识的来源,但是需要一些时间。

问:所以,只是澄清这一点。你所指的是达成共识所需要的时间。也就是说,在谁应该添加下一区块上还没有更广泛的共识。结果,网络上的每个节点都竞争添加下一个块,耗费巨大的能量才能到达终点线。一旦他们到达终点线,可能会有其他人在同一时间完成,每个都把自己的块添加到链中。数学问题缩小了获胜者的范围,并且也使网络的速度变慢,足以让我们在平局的情况下选择赢家和输家。如果网络没有时间对链进行排序,那么你不仅要有一个叉,还要有许多叉 - 你将有无穷多的叉子像三角洲一样分出来,浪费了大量的能源最终网络还是死局

Leemon:
完全正确。我们永远不会达成共识。作为一个社区,我们必须有时间在下一个叉发生之前切断每个叉子。否则,他们只会向外爆发增长,叉会指数型增加,最终导致整个系统崩溃。

区块链]社区只能通过让增加一个区块变得极其昂贵来减慢人们的速度。他们不得不让你消耗大量的电力,在大计算机上花费大量时间来添加一个块。如果便宜,每个人都会一直这样做。如果你的手机可以添加一个块,那么每个人都会添加块,那就永远无法将它们全部切断 - 这是一个九头蛇头的增长速度快得你不上的问题。

区块链中遇到的问题是, 这个系统相当缓慢,并且本质上是非常昂贵。因为我们浪费了大量的电力, 人类消耗大量的资源来解决这些数学问题,这些问题却对于任何事情都没有帮助。

这就是区块链社区正在解决的扩展性问题。为什么要在意这些?如果你只是想取代信用卡,我们每秒钟都在谈论数千笔交易。所以,每秒七笔交易连接近都靠不上。而对于股票交易所等其他应用,将大大超出这个范围。

问:分布式账本扩展性的挑战一直是区块链界多年来面临的首要问题。 这关注的重点一般是如何提高吞吐量,但是安全性呢? 根据您的估计,比特币网络有多安全? 区块链技术最大的安全威胁和弱点是什么?

Leemon:
ok,假设中国政府将中国土地上的每一台采矿设备都国有化,让它们(采矿设备)通过延伸最短的链来破坏网络。 这永久地破坏了比特币, 而不仅仅是关闭它。

如果用工作量证明Proof of work,那就需要使用大量的电力。 所有的矿工最终都会迁移到电力便宜的地方,然后政府就有能力摧毁你。 这是不可避免的。
这就是为什么每个人都迫不及待地远离工作量证明(proof of work).

Leader Based,权益证明(基于经济)和基于投票的系统


问:显然,工作量证明存在一些严重的问题,在区块链上达成共识也一样。可以多谈一谈这些其他形成共识的系统是如何运作的,以及他们如何提出补救区块链/工作量证明的局限性?

Leemon:
当然。目前许多许可(非公共)网络都建立在这些基于Leader的系统上。这样Leader-Based系统中,,如在PBFT,Raft和Paxos,网络中的每个人都把他们的交易发送给指定的领导leader,然后这个领导就选择一个交易顺序,然后发送回网络。然而,这有几个问题。如果对领导者进行分布式拒绝服务(DDoS)攻击,则只需关闭一台计算机,整个网络就会崩溃。在某些情况下,可能会有一些保护机制来保持网络在leader关闭的情况下运行,但是如果系统中的病毒知道下一个leader是谁,并且可以指挥僵尸网络攻击这个新leader,则可能会出现其他问题. 实质上,僵尸网络最终会扮演“跟随leader”的角色。所以,使用Leader-based的系统,您可以一次关闭一台计算机来关闭整个网络。这很脆弱。

其他形成共识形成系统名义上是应用权益证明,但这些是人们通常所说的新的基于经济系统。权益证明不过只是加密货币引入权重而已。社区中的每个人实际上都在赌真正的金钱--真正的加密货币—猜他们认为这个共识应该是什么。理论上来说,任何与大多数一起投票的人都会得到更多的钱,而任何与少数一起投票的人都会失去一些钱。

这个想法是“我们都有投票赞同大多数的动力,我们都会仔细倾听大家的意见,并试图投票给大多数 - 然后,亚当·斯密的无形之手起作用,我们都达成共识”。使用这些权益证明系统,你甚至没有像Leader-based的系统那样有安全性的数学证明。 可能会有不稳定性 - 我们没有任何数学证明它如何在某些攻击中幸存下来。对于这种类型权益证明,对于它有多安全方面,我们目前有各种各样的问题。

问:为了解决扩展性问题,推动比特币和以太坊等共识性生态系统向前发展,区块链社区目前正在寻求什么样的替代proof of work的方案?

Leemon:
为了推进和离开工作量证明,区块链社区提出了许多权益证明的变种,典型的你会发现是一种貌似某些东西的混合体,特别是部分也是基于Leader-Based。

也许有一种叫做leader的东西,或者是有人提出一个交易列表应该出现在下一个区块。又或者,也许你必须轮流担任leader。通常情况下,这些建议涉及到某种投票方式,但这不是纯粹的投票,而是投票选出leader是谁而不是共识。有很多不同的系统正在被讨论。大多数情况下,他们只是说“权益证明”,而实际上是指的确是我们刚刚讨论过的这些不同方法的混合体。

所有相同的难题仍然适用。网络仍然需要关注DDoS攻击leader,防火墙,网络分区,受病毒感染的计算机以及集中的不良行为者等。

在这些事情上有很多博弈论的攻击,这些系统都没有一个数学证明,说明它们是异步拜占庭式的。而这正是我们正在谈论的。如果你想真正远离所有这些攻击及潜在的问题,你必须是异步拜占庭式的。我们所讨论的系统都没有这些证据证明,我认为这是因为它们实际上并不安全。

拜占庭容错Byzantine Fault Tolerant (BFT)

问:你能解释一下异步拜占庭的含义及其与拜占庭容错的区别吗?

Leemon:
这真的很重要。拜占庭容错(BFT)意味着当你试图找出交易顺序的时候,你知道已经达成了一致意见的时候,就会出现这样的情况。拜占庭容错(BFT)最终意味着三件事:
1、我们要达成共识;
2、我们要知道什么时候达成共识;
3、我们永远不会错 - 从数学上保证每个人都会达成完全一致的共识。那是拜占庭。

BFT可以是异步拜占庭(aBFT)或部分异步拜占庭。两者都有数学保证,不同之处在于对环境的假设水平。 aBFT(就像哈希图中那样)会假定邪恶的行为者存在于社区中,因为他们确是存在。然而,如果你错误地假设比如世界上没有僵尸网络,那么它将是部分异步BFT - 因为僵尸网络确实存在于现实世界中。如果你假设世界上没有僵尸网络来开始数学证明,那么我不太清楚你的证明是什么意思,因为你生活在一个幻想的世界里。

拜占庭容错(BFT)是结论。异步与部分异步拜占庭容错(aBFT)是开始时的假设。

与其他系统不同,哈希图被证明是完全异步的拜占庭。这意味着它不会假设消息在互联网上传递的速度有多快,使其能够抵御DDoS攻击,僵尸网络和防火墙攻击。只要少于三分之一的参与者是恶意的(对于DLT必须始终假设这一点),哈希图就在数学上保证达成共识并且是安全的。

问:比特币呢?比特币不被认定为拜占庭式容错的吗?

Leemon:
不,不是的。 这难道不是很有趣吗?整个比特币社区抛出“拜占庭式的”这个词,但是他们往往并没有真正地匹配它的数学定义。这听起来非常抽象,但确是至关重要的。现在,记住比特币每当你得到一个确认,你变得更有一些信心。但是,你从来没有过你绝对确定的时刻 - 你只是说,“在经过六次确认之后,我想我确信已经足够给予顾客他刚买的东西了”。或者,“也许他正在买一些非常大的东西,所以我会等待十二次确认”,但是你从来没有真正达到过百分之一百的确定。

比特币不是拜占庭式的。甚至不是在糟糕的假设条件下的拜占庭式。在比特币中,永远不会有一个时刻你知道已经达成了共识,并且永远不会出错。发生的一切就是随着时间的推移你变得更加自信,但这不是拜占庭式的,句号。

哈希图Hashgraph

问:让我们来看哈希图,因为这触及到你用来在网络上传播信息的八卦协议gossip protocol,每个人都在同时与其他人进行通信。你能否给一个外行人解释下它是如何在哈希图协议内工作的,它的意义是什么?

Leemon:
首先,如果我们要就交易达成一致意见,至少我们必须知道交易 - 每台电脑都必须知道每笔交易。我们现在只是谈论一个单一的网络或碎片,这些消息在这个网络中传递。

显然,我们必须把每一笔交易都交给每一台电脑,以某种方式。什么是做到这一点的最好的方式?我们可以把他们全部送给leader,leader再告诉大家,但是这很慢 - 我们有一个瓶颈。在计算机科学中超快速处理事情的正常方法是使用八卦协议 - 这是你能想象到的最简单的事情。

如果我有一个我创建的交易,我只是把它给一些随机的电脑。我随便选一台电脑,把它交给那台电脑,然后我们每个人都随机选一台电脑,我们两个人把电脑交给其他电脑。现在我们四个人都知道了,然后我们四个人中的每一个都随机地把它送给其它电脑。现在我们八个人都知道了,而且这个数字只是快速的爆发,直到大家都知道。这是我们在计算机科学中发送信息的最快速的方式和最有弹性的方式。

问:所以,你说的是,在我们达到让网络中每一个人都知道的一切的过程,不会花太多时间,是这样吗?

Leemon:
正确。首先,我们都必须知道交易,困难的部分是要达成共识。正如我们已经讨论过所有其他系统一样,达成共识是缓慢的,需要大量的沟通。

相反,我用hashgraph和八卦协议提出的建议是,当你给别人一条消息时,你只是给它附上一个小小的注释,就是说:“顺便说一下,我告诉你,我发送的上一条消息的名字是什么,给我说上条消息的人是谁”。基本上,我把这两条消息的哈希(名字)发给你。我们只添加了两个哈希值,实际上可以压缩到只有一个或两个字节。

因此,我们要使用世界上最快的方式,以你能想得到的最有效率使用带宽的方式发送交易信息。并且可能会将消息的大小增加一个百分点。在这一点上,你不需要做任何事情来达成共识。这是魔法。

这两个额外的哈希几乎不占用内存或带宽来附加和发送。当你收到一堆消息,并在每条消息上得到这两个哈希值时,它会形成一个大图,让你看到每个人如何与每个人交谈的完整历史。你有了每个人如何与其他人交谈的惊人是视图。然后可以在内存中运行非常复杂的算法,而无需与任何人交谈。

你知道共识。你知道你知道共识。你知道其他人会同意你的共识。在数学上保证 - 这就是拜占庭式的容错性,纯粹是异步的。所有这些都是通过零沟通来实现的。你可以瞬间免费获得。这就是哈希图。

问:这是通过投票算法发生的,对吗?你能解释一下如何用hashgraph进行投票,以及如何在不减慢网络的情况下运行这样一个共识机制?

Leemon:
一个拜占庭式的投票算法真的很难做到。我们有关于异步拜占庭容错的绝妙的数学证明,但是它的效率非常低,因为它需要浏览互联网上数十亿条信息 - 而这只是一轮投票。据我所知,从来没有人在现实世界中部署这样一个系统。

但是,使用hashgraph,如果你八卦你所有的消息,并为你发送的每条消息添加两个哈希值,那么你最终会在内存中获得这个漂亮的“哈希图”,这是我们如何与每个人相互交谈的整个历史。你就等同于(这你自己的计算机上)运行一个投票算法,而这个算法要通过互联网交互数十亿消息才能实现,而你根本没有消耗网络上那数十亿消息。

我们正在进行投票,这是一个十年前的想法 

但是,我们正在做,而没有做任何投票。这是虚拟投票。这是一个新的想法。

能做到这一点的唯一原因是因为你有这个“哈希图”,它可以准确地显示每个人如何相互交谈,通过为每条消息添加两个真正压缩的哈希值,几乎可以免费得到。如果我是网络上的计算机,我知道你所交谈过的每一个人,你什么时候学习,那些人什么时候学习,以及那些人学习东西的时间。如果你是网络上的另一台电脑,并且你要投票,我打赌我可以预测你的投票结果。所以,我只是装做你发给了我你的投票 - 你甚至不必费心把它发给我。

哈希图向我们展示了我们如何相互交流的完整历史。人们还没有建立这样的历史,听起来好像需要大量的内存才能做到这一点,但事实证明,只是每个消息添加一两个个字节,你就没事了,可以压缩整个历史记录,

问:好。让我们从更大点的角度看看你的观点。假设你已经设法解决自从比特币2008年首次出现以来区块链社区一直无法解决的扩容问题。这不是历史上第一次有更好的技术出现,但是由于各种原因(即遗留技术中的利益相关者太多,消费者采用,企业抵制变化等)而未能被采纳。您是否对此感到担忧?

Leemon:
我不认为这会发生。我不认为我们会看到人们不采纳它。有六信用联盟(credit unions)的信用行业联盟(credit union),有一个名为CULedger的组织,其目的是为信用联盟创建一个帐本。他们正在使用我们的技术。我们击败了HyperLedger,IBM及与我们竞争的其他人。我们还有其他一些大客户。我的预测是,这不会是哈希图不被采用的情况。我认为会采用。

问:你会用hashgraph做一个加密货币吗?

Leemon:

是的,我们在不久的将来讨论用token或加密货币来建立公共账本。

问:你在开发行业多久了?

Leemon:
五年前我开始从事这方面的数学工作, 并一直想使自己确信是不可能实现的。如果没有投票系统,就不可能得到强有力的安全保证,但投票系统太慢了。而且,如果你尝试一个混合系统,那么你又得到了所有那些弱点 - 因为那个混进来的leader。我只是一直说服自己这是不可能的,但是它多年来一直悬在心头 - 我无法停下来。最终,我意识到你可以给每个消息添加几个字节,并突然知道了整个历史 - 那么你可以做虚拟投票。但是,弄明白之前花了好一阵子。

两年前,我们创立了一家名为“共享世界”的哈希图公司,但我们一直处于隐形模式。我们花了一年的时间静静地建立起来,以获得市场验证和反馈,表明它运作良好。现在,我们已经开始走出隐形局面。我们有一个SDK,用户可以在其上下载和构建应用程序。例如,[PayPal首席数据科学家]在TechCrunch Disrupt的24小时黑客马拉松游戏中构建了一个分散的eBay /拍卖市场,目前在区块链技术上是不可能的。

问:所有这些看起来都是超级破坏性的 - 我认为可以肯定地说,这对所有在区块链领域的人来说都将是一个震撼。 对于使用区块链/工作量证明的人来说,哈希图似乎是一个不受欢迎的竞争者。 如果采用这种技术,还会导致什么程度的破坏,我漏掉什么了吗?

Leemon:
我认为对我来说最谦虚的事情就是说“让市场回答你的问题”。

问:那么,如果有了广泛采用的Hashgraph生态系统的话,比特币和以太坊还能保持竞争力吗?

Leemon:
当然,每个市场都可以容纳不止一种技术。 以太坊没有杀死比特币。 但是,我们看看未来会发生什么吧。


声明:文由入驻区块网专栏作者撰写,观点仅代表作者本人,绝不代表区块网赞同其观点或证实其描述。

更多名家专栏精品文章http://www.qukuaiwang.com.cn/zhuanlan.html

关键词: 分布式账本技术  区块链  
0/300