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