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