缺乏可扩展性被认为是阻碍大规模采用区块链技术的最大障碍。所有现有的区块链项目都在寻找能够提高网络性能的解决方案。
许多新兴项目声称他们有一种灵丹妙药可以解决这个问题。然而,这种断言并不总是有效的。不幸的是,许多观察家和投资者没有认识到这个问题的核心和根源。
没有深入的调查和大量的技术背景,很难确定隐藏的瓶颈和取舍。在在这篇文章中,我们将讨论一个众所周知的阻碍比特币扩展的瓶颈。
在去中心化点对点网络比特币的发明后不久,研究人员对决定比特币规模限制的因素产生了兴趣。很快就确定了核心问题,并以区块传播时间或区块传播延迟来描述。
它是新区块到达网络中大多数节点所需要的平均时间。在像比特币这样的大型去中心化网络中,无论何时生成新的区块,它都会根据八卦协议进行广播。如果某个节点获得了新的有效区块,它将通知连接它的节点它的新占有权。
然后,节点将这个区块传输给那些要求它这样做的节点。在区块到达网络中的每个完整节点之前,它要经过7个中间节点。重要的是,每个诚实的节点在将该区块转发给其他对等节点之前都要验证该区块。
很显然,整件事需要一段时间。每个新的区块都会震动网络,使节点和以太网之间的连接以满功率工作。
有人可能会说,自从该网络推出以来,对Gossip协议已经有了很多改进。例如,比特币改进方案BIP 0152引入了只在区块体中传输短交易id的选项,而不是整个交易列表。
但是,如果节点在它的内存池中没有这个交易,它必须要求它的对等节点在单独的消息中传输它。如果在BIP区块中有大量这样的交易,那么BIP0152的改进就消失了。
由于数据传输是区块中继中最耗时的部分,研究人员感兴趣的是确定多少时间需要一个特定大小的数据包达到50%,90%,或95%的网络节点。
结果发现,对于一个大小大于20Kb的区块,区块传播延迟几乎成正比的区块大小。根据2013年发表的研究结果,区块中每多一个kB的数据都会导致额外的80ms区块传播延迟。
自那时起,每年都有几篇关于这一主题的学术论文和调查。他们更新上述数据并讨论各种改进建议。
此外,该网站监测比特币网络的当前状态和区块传播时间。此外,它还提供了有关这一主题的历史数据图表。
大多数成熟的区块链网络与比特币有着相同的设计。因此,这些网络中的块传播时间遵循同样的规则。
不幸的是,区块传播时间对区块链的安全性有很大的影响。在网络中传播时间越长,矿工在旧区块上开采的频率越高。
因此,主链的分叉发生得更频繁,孤立区块的百分比上升。长的传播延迟导致了所谓的验证者困境。
一些节点可能会发现跳过区块验证步骤可能是一个有利可图的策略。在这种情况下,他们面临着在错误区块之上开采的风险。
然而,如果区块验证时间很长,这个策略可能是有利可图的。研究人员发现,长传播延迟降低了节点对51%攻击和自私挖掘的抵抗。
为了解决上述问题,区块链开发人员经常试图将区块传播时间控制在平均区块时间的1%以下。
对于比特币、以太坊和其他基于PoW共识的主要区块链网络都是如此。因此,比特币网络中50%的节点的区块传播时间通常低于6秒。
尽管快速区块中继(如在BIP 0152中描述的那种)减少了平均区块传播时间在最坏的情况下,它可能需要比基本协议更多的时间。
重要的是,即使在最坏的情况下,传播延迟也应该是合理的,这样矿工才能在大部分时间保持他们的节点同步,并始终验证提议的区块。
每当人们谈论区块链的可扩展性时,都会提到系统的交易吞吐量。然而,人们忘记了交易吞吐量的提高不应损害网络的安全性,也不应对希望参与网络的节点提出数据存储要求。
这些修改可以减少网络中独立交易验证器的数量,从而减少去中心化。
比特币交易吞吐量可以很容易地使用公式计算:
Bsize是区块大小(以字节为单位),
Tsize是区块中交易记录的平均大小,
Btime是区块链中连续区块之间的平均时间。
显然,可以通过增加区块大小、减少交易记录大小或减少区块之间的间隔来增加交易吞吐量。减少交易记录的大小是相当困难的。
人们可以尝试其他两种选择。然而,这些操作将增加花费在区块传播上的时间百分比。因此,安全和去中心化的网络可能会受到威胁。
有人可能会注意到,在描述的比特币协议中,网络资源的使用效率很低。每个节点只在很短的时间内处理和传输一个新区块的重要数据。它的网络带宽确实很重要,但它一次只被充分使用几秒钟。
其余时间,此节点仅传输挂起的交易和辅助数据。这一发现促使研究人员寻找更有效的协议设计,以在不影响网络安全性和去中心化的情况下显著提高交易吞吐量。