技术分析|区块链可拓展性的终极解决方案

网络中立性:区块链可拓展性的终极解决方案云分发网络可以极大提高区块链的可拓展性,但是其必须具有可验证中立性
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

网络中立性:区块链可拓展性的终极解决方案

云分发网络可以极大提高区块链的可拓展性,但是其必须具有可验证中立性

作者|Aleksandar Kuzmanovic
来源|acmqueue
译者|头等仓Jaden
编译|头等仓Maggie
译文版权所属头等仓,转载请注明并保留前言信息。

由比特币在2008年发起的区块链和加密货币革命正在蓬勃发展。主流加密货币的市值虽然剧烈波动,但高达数千亿美金。区块链的一个特性是去中心化治理。区块链系统只依赖于一个由验证者和认证所有交易的参与节点组成的全球点对点网络。基于区块链的分布式和去中心化设计,许多人认为它在加密货币之外的领域具有产生颠覆性影响的潜力,包括医疗、政府、制造、零售、保险、物联网、共享经济等领域。许多大大小小的高科技公司都在密切关注区块链领域,分析这项新技术将如何影响现存或未来的运营。

但区块链的一个主要问题是可扩展性。区块链系统的吞吐量由系统所支持的 TPS(每秒交易量)衡量。比特币目前的平均吞吐量为 3 TPS,而 Visa 中心化系统的平均吞吐量为 2000 TPS,每日峰值为 4000 TPS,最大吞吐量为 5.6 万 TPS。没有可扩展性,加密货币系统很难成为主流,区块链也几乎无法颠覆其他领域。

问题的根源,也是区块链的瓶颈,在于区块链乃是基于去信任化的点对点网络。在这个模式下,信息在网络节点间的每一次传输中都必须先经过验证。毫无疑问,云交付网络可以解决其他领域的类似性能挑战(例如 Akamai 或 YouTube 解决 web 和视频的传输性能),也可以用于解决区块链的可扩展性问题。问题在于,如此庞大的中心化基础设施扰乱了区块链的去中心化特性,从而消除了区块链的颠覆性潜力。由此,可以提出这样一个问题:云分发网络能否在不破坏区块链去中心化特性的前提下提高其可扩展性?答案是肯定的,问题解决的关键是基于现有概念(网络中立)提出一个改进后的高级版本:中立可验证的云分发网络

什么是区块链?

区块链是一个公开的分布式账本,存储过去的所有交易,本质上是一种数据库,由网络中相互连接的多个(或多达数万个)节点创建和共享。为了就数据库的正确性达成共识,就必须规定写入数据库的规则。虽然各个规则可能有所不同,但一般包括以下内容:

  • 交易必须被验证。一笔交易(通常是某个用户发送一定数量的加密货币给另一个用户)必须包含交易发送方的数字签名,以便进行身份验证。

  • 必须按顺序添加交易。交易不会一个一个加入账本。相反,交易是成批添加的到账本中的,称为区块。例如,比特币区块链要求,每一个新区块都包含一个哈希“谜题”的解决方案,这个“谜题”的答案是唯一的。

  • 添加区块的成本非常昂贵,并且需要竞争获得打包权。想要在区块链上添加区块的各个参与节点要么需要获取加密货币,要么需要获取能够算出哈希难题的算力(比如比特币区块链上的哈希难题)。这样的参与节点称为矿工,在区块链上添加新区块的过程称之为挖矿。

  • 有效的最长区块链就是最新版本。由于这条规则与前面的规则,因此要想成功伪造区块链,付出的代价就非常高。即使是复制现有的区块链并试图修改最后的几个区块,成本也非常昂高。一旦区块在网络上得到足够的确认,删除或修改区块几乎是不可能的事情。因此,信息上链之后就永远无法被删除,这一点非常有效。

  • 必须进行独立验证。当节点检查区块链数据库的副本时(同步到本地的数据),它能够独立地验证是否遵守了以上提及的所有规则。如果每个用户都能独立验证区块链,那么所有用户就可以就正确的区块链达成共识。

  • 在区块链上添加区块可以收获报酬。因为将区块写入区块链比较困难,所以并不是所有的节点都会参与这个过程。很多用户创建交易,然后要求将交易写入网络,他通常会支付一定的费用作为矿工报酬。此外,只要矿工在一轮挖矿过程中获胜(算出哈希“难题”的答案),就有机会在区块链上添加一个区块,并且可以获得新锻铸出的加密货币。

  • 区块链发生分叉时,通过最长链规则解决分叉问题。区块链并不能马上达成共识,因此有时会发生分叉(不同版本的数据库),区块链上出现的不同版本的公共账本同时存在后,节点就会产生分歧,这种情形我们称之为“分叉”。但只要节点始终选择网络上最长的区块链,一段时间后就可以解决分叉,达成共识。

区块链可扩展性问题

在解释区块链可扩展性问题之前,让我们先看看区块链系统的实际性能。图 1 和图 2 显示了比特币和以太坊这两种主流加密货币的交易积压情况。你可以看到,成千上万的交易等待着被写入区块链。为了增加被矿工选中 “上链” 的可能性,用户(自愿)增加交易费。因此,交易费很重要,并且在交易拥堵期间,可能会大幅增长。

技术分析|区块链可拓展性的终极解决方案

(比特币交易积压情况)

技术分析|区块链可拓展性的终极解决方案

(以太坊交易积压情况)

为了理解瓶颈是什么,让我们先算一下区块链的实际吞吐量。

系统吞吐量直接取决于两个参数:区块大小 B(每个区块的字节大小可以包含的交易数据量)和出块间隔时间 T(系统挖出一个新区块所需的平均时间)。在比特币中,B=1 MB,T大约为600 秒,支持交易吞吐量 3 TPS。由此,可以通过以下选项改进区块链的吞吐量:增加 B,以包含更多交易;减少 T,缩短出块时间;或双管齐下。问题是,我们不能随意更改这些参数(理由我们会在后文详细解释)。

显然,区块链的分布式特性导致了这些问题。的确,只要区块和交易能够在节点之间瞬时传播,就可以快速地挖出大量区块,直到达到特定CPU和闪存阵列的上限。然而,实际上,区块链节点——数量有成千上万个甚至更多——分布在世界各地。因此,网络才是瓶颈。

区块链网络中的节点以点对点的方式通信,这就与高吞吐量、低延迟的目标相背离:

  • 因为信息是从一个节点传输到另一个节点(称为“一跳”),因此在整个网络中传播信息需要多跳。若是网络中的每个节点都不信任其他节点,每一跳都需要独立验证所传播的信息。验证过程通常需要执行加密运算,这也会增加延迟时间,影响吞吐量。

  • 区块链网络中节点的性能差异较大,这意味着关键路径上的单个速度较慢的节点会使延长传播时间。

  • 最后,点对点(对等)网络中的节点是随机形成的,因此,无法保证组织起来的网络可以达到最优传播效果:数据往往会通过网络中的次优路径传输。

因此,将一个 1MB 的区块传播到比特币网络 90% 的节点平均需要 11.6 秒,这是 2017 年 3 月的平均传播时间。但这只是一部分问题。理论和实践都表明,将区块大小 B 增大 X 倍,区块传播所需的时间也会增加X倍。同样地,将出块时间 T 缩减 X 倍也会产生相同的效果。这意味着区块传播时间与这两个参数成正比。

例如,将比特币区块大小增加十倍,区块传播时间也会增加十倍,区块传播时间超过 100 秒。同样,区块大小增加 100 倍,区块传播时间就会超过 1000 秒。这种情况下,传播时间大于出块时间,会导致每次挖出一个新区块就会产生一个分叉。实际上,在这种情况下,无法通过继续挖出后续区块来解决分叉,与之相反,区块链将分解为“分叉”、“分叉的分叉”和“分叉的分叉的分叉”,直到节点和矿工不知道哪个分叉是“正确的”区块链——因此,区块链就会崩溃。这就是由网络瓶颈引起的区块链可扩展性问题。

云分发网络(Cloud-Delivery Networks)

云分发网络在解决互联网的性能问题方面非常成功。云分发网络通过一个巨大的基础设施分发内容,这个基础设施可以由全世界范围内、成千上万的服务器组成(例如Akamai)。此外,云分发网络执行广泛的网络和服务器测量,并使用这些测量结果将客户重定向到附近的服务器。由此,互联网形成了巨大的规模。举个例子,YouTube的用户超过10亿人,而在晚上高峰时段,北美高达 70% 的网络流量来自Netflix和YouTube等视频和音频网站。如果没有云分发网络,这是不可能实现的。

这与区块链的现状形成了鲜明对比。正如前面所解释的,通过区块链网络传播一个 1 MB 的区块是一项非常耗时的任务,并且增加区块大小可能会导致无法挽回问题。然而,云分发网络每秒钟能够发送 TB 级的数据,而且大家也都觉得这是理所应当的。这样的网络可以用于扩展区块链吗?

毫无疑问,云分发网络可以提高区块链的性能。但关键问题也来了——信任问题。在区块链生态系统中,节点之间互不信任,那么节点如何信任一个比任何节点都更强大的云分发网络呢?云分发网络可以审查区块链网络的交易、区块和矿工的中心化系统。例如,云分发网络管理员可以根据自己的政策、业务利益或法律要求,拒绝包含未经授权参与者的区块,或未经授权矿工的区块。

因此,关键问题在于,是否有可能让云分发网络实现去信任化,这样就可以用于扩展区块链网络,无需借助本文前面提到的审查和其他权力。这个概念被称为可验证网络中立(provable net neutrality)。本文不会深入讨论其正式定义,只是概述与此概念相关的关键属性。

首先,网络不应该由能力基于区块内容审查信息;其次,网络不该有能力审查节点;第三,上述两点应该由节点来验证,并且在网络出现错误行为时,可以放弃或替换网络。那么如何在一个网络中实现这些属性呢?

中立的可验证的区块链分布网络(Blockchain-Distribution Network,BDN)

考虑到一个云交付网络的目标是使区块链系统(不一定只是加密货币)能够扩展到每秒处理数千个链上交易。此外,另一个目标是同时为众多加密货币和区块链提供可扩展性,使用全球基础设施以可验证的中立性支持分布式区块链系统。这就是所谓的区块链分布网络(BDN)。本节概述了系统的信任模型,然后描述了实现中立属性所需的关键机制。

反向信任模型

区块链分布网络(BDN)的信任模型基于两个观察结果:首先,较长的区块传播时间永远不可能大幅度提高去信任化区块链网络(如比特币)的可扩展性;第二,小型中心化系统可以通过信任一小部分参与节点,并将区块链交易打包权交给它们,就可以很好地实现扩展性(例如 Ripple 和 EOS)。

然而,这种中心化破坏了区块链最显著的一个特性:交易打包权的分布式特点和去中心化。把区块链交易打包权交给有限数量的参与节点,这样参与节点就有可能在用户、节点和矿工之间进行串通、审查和区别对待。如果将打包权交给有限的节点,恶意节点想要控制网络时,需要控制的节点数减少,需要付出的代价减少。

区块链分布网络(BDN)通过改变中心化网络中的信任方式解决了这一问题。中心化网络信任一部分节点实现可扩展性,区块链分布网络则通过一小部分在网络中受信的服务器实现可拓展性。由此,这个系统就实现了可拓展性,同时节点无需信任区块链分布网络。区块链分布网络去信任化地服务节点,无需了解区块传播时间、源头和传输目的地。此外,区块链分布网络的行为由它所服务的节点进行审核,无法区别对待单个节点、区块和交易。但是这种设计也有缺陷,使网络安全性不足抵抗不诚实和恶意行为。

可验证网络中立性

简而言之,区块链分布网络(BDN)只能将所有区块公平地传播给区块链节点,而且无法区别对待区块,因为区块链节点会经常测试BDN网络,并且节点间仍然以点对点的方式连接。

加密区块

为了防止区块链分布网络(BDN)根据其内容阻止区块传播,区块需要在加密后进行传播(图 3 中的步骤 1)。区块链分布网络的加密还改变了区块大小,隐藏了交易数量和它们的总字节大小。在区块被传播之后,接收方节点通过发送区块的哈希通知发送方节点(图 3 中的步骤 2)。最后,公布一个区块的密钥,并直接在区块链点对点网络上传播(图3中的步骤3)。密钥只有几个字节,因此可以在点对点网络上直接快速传播,并且BDN不能阻止它传播。

技术分析|区块链可拓展性的终极解决方案

间接中继

为了确保区块链分布网络(BDN)无法阻止单个节点传播它们的区块,节点无需将区块直接传播到BDN。为了防止BDN不传播某一个区块(图 4 中的步骤 1),发送方节点将这个区块传播到对等网络上的一个节点(图 4 中的步骤 2),这个节点将把它转发给BDN(图 4 中的步骤 3),由此可以混淆BND区块的起源。例如,在中国挖出一个区块的节点可以将其转发给欧洲的一个节点,然后该节点通过BDN发送该区块。除了间接地将区块中继到BDN之外,节点还可以请求发送节点将来自BDN的传入区块中继给它们。这确保BDN不能通过区别对待节点,进行延迟发布,因为节点不需要为了从其服务中获益而与BDN直接交互。

技术分析|区块链可拓展性的终极解决方案

通过测试区块进行审计

虽然区块链分布网络(BDN)不知道区块由哪一个节点挖出,但可能会试图阻止或拖延来自某些节点的区块,从而影响它们中继的所有区块。为了检测和防止这种行为,节点必须能够持续监视BDN的服务。这种监视是通过节点将加密的无效区块、测试区块直接发送到BDN(图5)并测量节点报告测试区块到达所需的时间来实现的。BDN无法仅对有效区块使用区别性策略,并且忠实地传播测试区块,因为这两个测试区块在密钥发布之前是无法区分的。

技术分析|区块链可拓展性的终极解决方案

因此,通过使用流量加密和间接流量中继,以及显式审计BDN,区块链节点能够限制BDN的不端行为,有效地将BDN管理员权限与BDN基础设施隔断。如果BDN完全停止传输区块,或者只向一小部分节点传输区块,区块链节点可以放弃使用BDN。

因为节点经常使用测试区块来推断接收区块的最佳来源,被BDN区别对待的节点将只能从对等节点接收区块。因此,如果BDN恶意区别对待很多或所有对等节点,那么对等节点将直接形成它们自己的对等网络,直到出现另一个系统取而代之。此外,如果区别对待是由大规模的系统故障引起的,一旦故障得到解决,对等节点将返回并继续使用BDN。

性能

本质上,区块链分布网络(BDN)部署了一种广播原语,这意味着它可以有效地将数据从一个源节点传输到区块链网络中的任意节点。与对等网络(每个区块链节点都和很多节点相连接,这些节点通常分布在世界各地)相反,区块链节点将这种一对多的通信替换为一对一的通信。这是因为区块链节点连接到单个BDN服务器。

对于较大的 TPS 速率,使用单个连接比使用多个连接更有助于提高可扩展性。为了有效地审计BDN,区块链节点必须在对等网络中互相连接。然而,大部分数据在BDN之间来回传输。以下是BDN帮助扩展区块链的几种方法。

交易缓存

在区块链系统中,如比特币或以太坊,每个节点都会收到同一笔交易的数据2次:第一次是广播原始交易时,第二次是交易上链时(交易数据是区块数据的一部分)。BDN可以有效地通过云交付交易,并进行索引,然后在传输区块时利用索引(而不是原始交易)。这可以有效地将区块大小压缩 100 多倍,假设原始交易大约 500 字节,而索引则为4 字节或更小。

交易缓存是区块链生态系统中已有概念,已经被某些项目采用,但一般只有少数节点部署这项技术,并且没有在网络协议中实现。因此,由于区块链系统中并非所有交易都会到达所有节点,即使是小小的异步也会导致区块大小的显著增大(并不是所有的交易都是“压缩后的”),因此性能会受到影响。相反,BDN可以有效地传输和索引区块链交易。

直通路由

与区块链节点不同,BDN不能检查网络中区块的有效性,因为区块是加密的。这有助于通过网络快速传输数据区块。特别是,一个BDN节点接收到一个区块的所有比特(bit)之前,BDN已经可以开始将接收到的区块的(bit)传输到网络的其他部分。这就是所谓的直通路由,它已经在网络交换机中被广泛采用了几十年。它仍然可以显著加快区块传播速度,尤其是当区块很大的时候。

交易Incast问题

交易需要在区块链网络中广播。在没有BDN的情况下,当 TPS 速率较高时,就会产生了所谓的交易incast问题:一个节点会同时从多个源头以较高的速率接收相同的交易。这将显著影响节点的资源,并影响整个区块链的性能。BDN解决了这个问题,因为大部分数据(包括交易)都是通过单个BDN服务器传播。

区块链可扩展性的相关研究

以下内容概述了提高区块链可扩展性的其他方法。

链下解决方案

提高可扩展性的另一个方法是使用链下交易,例如闪电网络,其目的是减少主链上的冗余数据。一般来说,一个链下交易会在交易双方之间打开一个支付通道,即让买卖双方交换资金,同时记录中间结余,然后在区块链上进行交易结算。

BDN与这些解决方案不相关,也不相互冲突。因为链下扩展本质上仍然需要上链功能。此外,潜在的扩展效益是倍增的。如果底层区块链能够支持比以前多 1000 倍的交易数量,并且链下交易吞吐量增加 1000 倍,那么,区块链的吞吐量可以倍增 6 个数量级。

链上解决方案

链上解决方案通常是:以某种方式修改共识协议,实现更高的吞吐量。其中一种方法为分片技术,将区块链分割成几个较小的分片,一个全节点只需要追踪一个分片,而不是完整的区块链。这些分片相互交错,精心维护,以便保留区块链的原始安全属性。在这个领域还有许多其他的技术概念。虽然这些方法具有扩展性潜力,但是它们实际的稳健性、安全性和可用性还有待观察。

尽管如此,在更快的网络层中,所有的链上解决方案都可以更好地执行,这也是BDN的用武之地。事实上,在分布式共识协议中,每个遵循协议的节点必须达成共识。因此,每个对等节点都必须独立于共识协议,获取关于系统中每个交易的信息。BDN只致力于解决这个问题(其实就是广播问题),因为每个有效的信息片段都必须传播到系统中的各个对等节点。因此,BDN方案的有效性与共识协议无关,并且能够显著提高区块链的性能。

总结

可验证中立云无疑是提高区块链可扩展性的可行解决方案。通过优化传输层,不仅可以从根本上提高吞吐量,而且可以显著降低延迟。事实上,当今数据中心的主要延迟仅仅是微秒级,只要极少部分达到毫秒级。BDN没有理由不能实现这样的性能。

在这些BDN入网点之间添加专用的光纤基础设施,将进一步减少吞吐量和延迟,从而建立高级BDN主干网络。然而,实现这一愿景的关键在于:在区块链生态系统在底层网络基础设施中建立信任。我们将通过一个可验证中立网络设计将管理权限与基础设施分离实现这一愿景。

参考文献

1. Bitcoinstats.com. Data propagation; http://www.bitcoinstats.com/network/propagation/.

2. Cachin, C., Vukolic, M. 2017. Blockchain consensus protocols in the wild. arXiv; https://arxiv.org/pdf/1707.01873.pdf.

3. Clifford, A., Rizun, P. Suisani, A., Stone, A., Tschipper, P. 2016. Towards massive on-chain scaling: presenting our block propagation results with Xthin; https://medium.com/@peter_r/towards-massive-on-chain-scaling-presenting-our-block-propagation-results-with-xthin-da54e55dc0e4.

4. Croman, K., Decker, C., Eyal, I., Gencer, A. E., Juels, A., Kosba, A., Miller, A., Saxena, P., Shi, E., Sirer, E. G., Song, D., Wattenhofer, R. 2016. On scaling decentralized blockchains. In International Conference on Financial Cryptography and Data Security. Springer. 106-125.

5. Decker, C., Wattenhofer, R. 2013. Information propagation in the Bitcoin network. In the 13th IEEE International Conference on Peer-to-Peer Computing; https://ieeexplore.ieee.org/document/6688704.

6. Internet Live Stats; http://www.internetlivestats.com/one-second/.

7. Klarman, U., Basu, S., Kuzmanovic, A., Sirer, E. G. 2018. bloXroute: a scalable trustless blockchain distribution network; https://bloxroute.com/wp-content/uploads/2018/03/bloXroute-whitepaper.pdf.

8. Nakamoto. S. 2008. Bitcoin: a peer-to-peer electronic cash system. Bitcoin.org; https://bitcoin.org/bitcoin.pdf.

相关文章

《加密货币、区块链和智能合约》

Arvind Narayanan and Andrew Miller 

https://queue.acm.org/detail.cfm?id=3043967

《更好、更快、更安全》

Brian Carpenter 

https://queue.acm.org/detail.cfm?id=1189290

A Purpose-built Global Network: Google's Move to SDN

《专用全球网络:谷歌转向SDN》

A discussion with Amin Vahdat, David Clark, and Jennifer Rexford 

https://queue.acm.org/detail.cfm?id=2856460

Aleksandar Kuzmanovic 是美国西北大学计算机科学教授。他最近的研究包括内容分发网络、网络中立性和区块链。他是初创公司 bloXroute Labs 的联合创始人,并在该公司担任首席架构师。

本文由 区块链资讯平台头等仓 作者:Maggie 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

发表评论