数字货币加密招代理商区块链的可扩展性问题加密区块的应用?
区块链可扩展性问题
166---2123---9506微
企鹅 29--28--03--33--49
在解释区块链可扩展性问题之前,我们先看看区块链系统的性能表现如何。图 1 和图 2 显示了比特币和以太坊这两种主流密码学货币的交易积压情况。你可以看到,成千上万的交易等待着被写入区块链。为了增加被矿工选中 “上链" 的可能性,用户(自愿)增加了交易费。因此,在交易拥堵期间,交易费可能会大幅增长。


为了理解瓶颈在哪里,我们先算一下区块链的实际吞吐量。系统吞吐量直接取决于两个参数:区块大小 B(即,每个区块中可以包含的交易数据量)和出块间隔时间 T(即,系统挖出一个新区块所需的平均时间)。在比特币中,B = 1 MB,T ~ 600 秒,大约是 3 TPS。由此,可以通过以下选项改进区块链的吞吐量:增加 B,以包含更多交易;减少 T,以更快的速度出块;或双管齐下。问题是,这些参数都不能随意更改(理由我们会在后文详细解释)。
显然,正是区块链的分布式特性导致了这些问题。的确,只要区块和交易能够在节点之间瞬时传播,就可以快速地挖出大量区块,直到达到特定 CPU 和闪存阵列的性能上限 4。然而,实际上,区块链节点——成千上万甚至更多——分布在世界各地。因此,网络才是瓶颈。
区块链网络中的节点以对等方式通信。不幸的是,这与以下高吞吐量、低延迟的目标背道而驰:
信息从一个节点传输到另一个节点;因此,在整个网络中传播信息需要多跳(多个传输过程)。由于网络中的每个节点都不信任其他节点,因此会在每一跳中独立地验证所传播的信息。验证过程通常需要执行密码学运算,而这会增加延迟并影响吞吐量。
区块链网络中节点的性能差异较大,这意味着关键路径上的单个慢节点会使传播时间膨胀。
最后,对等网络中的节点是随机形成的;因此,它们无法保证组织起来的网络可以达到最优传播效果:数据往往会通过网络中的次优路径传输。
因此,将一个 1MB 的区块传播到比特币网络 90% 的节点平均需要 11.6 秒,这是 2017 年 3 月观察到的平均传播时间 1。不幸的是,这只是问题的一部分。在理论 7 和实践 4 5 中都表明,将区块大小 B 增大 X 倍也会使区块传播所需的时间增大 X 倍。同样地,将出块间隔时间 T 缩减 X 倍也会产生完全对应的效果。这意味着区块传播时间会随着这两个参数的增加而成比例地增加。
例如,将区块大小增加十倍也会使区块传播时间增加十倍,使它们的时间超过 100 秒。同样,将区块大小增加 100 倍将导致区块传播时间超过 1000 秒。这样的传播时间超过了出块间隔,导致每次挖出一个新区块时都会产生一个分叉。实际上,在这个场景中,无法通过继续挖出后续区块来解决分叉,相反,区块链将分解为”分叉“、”分叉的分叉“和”分叉的分叉的分叉“,直到节点和矿工不知道哪个分叉是“正确的”链——因此区块链崩溃。这是由网络瓶颈引起的区块链可扩展性问题。
云分发网络(Cloud-Delivery Networks)
云分发网络在解决 Internet 上的性能问题方面非常成功。这样的网络通过一个巨大的基础设施分发内容,这个基础设施可以由全世界成千上万的服务器组成(例如Akamai)。此外,云分发网络执行广泛的网络和服务器测量,并使用这些测量结果将客户重定向到附近的服务器。互联网因此得以形成巨大的规模 6。举个例子,单单 YouTube 就拥有超过 10 亿的用户,而北美晚上高峰时段高达 70% 的网络流量来自 Netflix 和 YouTube 等流媒体视频和音频网站。如果没有云分发网络,这是不可能的。
这与区块链的现状形成了鲜明对比。实际上,正如前面所解释的,通过区块链网络传播一个 1 MB 的区块是一项耗时的任务,并且增加区块的大小可能会导致无法挽回的错误。然而,云分发网络每秒钟能够发送 TB 级的数据,而且大家也都觉得这是理所应当的。这样的网络可以用来扩展区块链吗?
毫无疑问,云分发网络可以提高区块链的性能。但问题在于信任。在区块链生态系统中,节点不信任它的直连对等节点,那么它如何信任一个比任何单个节点都强大得多的云分发网络呢?云分发网络是可以审查区块链网络的交易、区块或矿工的中心化系统。例如,云分发网络管理员可以根据自己的政策、业务利益或法律要求,拒绝包含未经授权交易者的区块,或未经授权矿工的区块。
因此,关键的问题是,是否有可能让云分发网络变得免信任(trustless),这样它们就可以被用来扩展区块链网络,而无需借助本文前面提到的审查和其他权力。这个概念被称为可验证网络中立(provable net neutrality)。本文没有深入讨论其形式化定义,只是概述了与此概念相关的关键属性。
首先,网络不应该基于区块的内容审查信息。其次,网络不应该审查节点。第三,节点应该能够连续地验证上述两个属性,并且在网络出现错误行为时,可以放弃和替换网络。如何在一个网络中实现这些属性呢
一个可验证的中立区块链分发网络
考虑一个云分发网络,它的目标是使区块链系统(不一定只是密码学货币)能够扩展到每秒数千个上链交易。此外,它的另一个目标是同时为众多密码学货币和区块链提供可伸缩性,使用全球基础设施以可验证的中立方式支持分布式区块链系统。这就是所谓的区块链分发网络 BDN(blockchain distribution network)。本节概述了系统的信任模型,然后描述了实现中立属性所需的关键机制。
反向信任模型
区块链分发网络(BDN)的信任模型基于两个观察结果:首先,长时间的区块传播永远不可能大幅度提高免信任(trustless)区块链对等网络(如比特币)的可扩展性;其次,小型中心化系统可以很好地扩展,即通过信任一小部分参与节点并将区块链打包交易的控制权交给它们(例如 Ripple 和 EOS)。
然而,这种中心化破坏了区块链最显著的一个方面:对交易(或交易打包权)的分布式和去中心化控制。把区块链交易打包权交给有限数量的参与节点,这样就允许参与节点在用户、节点和矿工之间串通、审查和区别对待(discrimination)。有限的参与节点还降低了恶意节点为控制系统而不得不付出的节点数量代价。
可验证网络中立
简而言之,区块链分发网络(BDN)只能将所有区块公平地传播给所有区块链节点,而且,BDN 无法区别对待区块(discrimination),因为区块链节点会经常测试 BDN 网络,并且节点间仍然以点对点的方式连接。
加密区块
为了防止区块链分发网络(BDN)根据其内容阻止任何区块的传播,区块在加密后进行传播(图 3 中的步骤 1)。BDN 的加密还改变了区块大小,隐藏了交易的数量和它们的总大小。在区块被传播之后,接收方通过发送区块的哈希通知发送方(图 3 中的步骤 2)。最后,公布一个区块的加密密钥,并直接在区块链对等网络上传播(图3中的步骤3)。加密密钥很小,只有几个字节,允许它在对等网络上直接快速传播,且BDN不能阻止它。(校对注:此处使用的加密技术应该是对称加密,即加密与解密用的是同一把密钥)。

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

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

因此,通过使用流量加密和间接流量中继,以及显式审计 BDN,区块链节点能够限制 BDN 的不端行为,有效地将 BDN 管理员的权限与 BDN 基础设施解耦。如果 BDN 完全停止分发区块,或者只向一小部分节点分发区块,区块链节点可以放弃使用 BDN。
因为节点经常使用测试区块来推断接收区块的最佳来源,被 BDN 歧视的节点将只是从其对等节点接收区块。因此,如果 BDN 恶意歧视许多或所有对等节点,对等节点将直接形成它们自己的对等网络,直到一个不同的系统取而代之。此外,如果歧视是由大规模的系统故障引起的,一旦故障得到解决,对等节点将返回使用 BDN。
性能
本质上,区块链分发网络(BDN)部署了一种广播原语(premitive),这意味着它可以有效地将数据从一个源节点传输到区块链网络中的所有其他节点。与对等网络相反(在对等网络中,每个区块链节点都连接到其他许多节点,这些节点通常分布在世界各地),区块链节点将这种一对多的通信替换为一对一的通信。这是因为区块链节点连接到单个 BDN 服务器。
对于较大的 TPS 速率,使用单个连接比使用多个连接更有助于提高可扩展性。为了有效地审计 BDN,必须在对等网络中连接区块链节点。然而,大部分数据是在 BDN 之间来回传输的。以下是 BDN 帮助扩展区块链的几种方法。