[56]带宽对区块链安全的影响

带宽是区块链系统的一个重要的性能指标。
区块链系统采用的广播模式(泛洪传播)占据了大量的带宽,给每个运行区块链客户端的节点带来了巨大的带宽压力。
带宽也是限制区块链系统在移动设备等低带宽硬件上运行的主要门槛之一。

这篇文章对区块链的带宽问题进行了较为详细的介绍,值得阅读。
“科普 | 带宽和区块链”
https://ethfans.org/posts/bandwidth-and-the-blockchain-intro

问题
去中心化的比特币区块链是全球共享的广播媒介——很有可能是人类设计过最低效的通信方式。
—— Greg Maxwell

“低效”的评价确实是真的。比特币采用的泛洪传播模式导致了大量相同的数据重复转发。比特币系统内部的转发机制只阻止同一条链路上的重复转发,而不阻止相同数据在不同链路上的重复转发。
从设计初衷来讲,这种低效的广播模式的背景是,由于所有节点都不可信,没有办法建立可信的中转节点,只能通过大量重复的传输保证无人可以作弊。本质上,这是利用带宽降低伪造数据的风险。

补救措施

比特币的低效问题是众所周知的。多年来,提高网络效率的努力都在减少带宽成本和加快传播速度上。前比特币维护者 Gavin Andresen 在 2014 年发布了一个?O(1) 区块传播路线图。后来,这个路线图经过了大幅修改,不过基本思路没怎么变。

-FIBRE 网络示意图(来源:[bitcoinfibre.org])

从上图看,这种优化本质上是建立在多个可信的中继节点之上。利用这些中继节点进行数据汇聚和分发,减少无意义的数据广播。
但是,这种方案降低了网络的去中心化程度,增加了网络的运营成本。

中继网络

矿工已经在积极实现?FIBRE?和?Falcon?之类的区块中继网络了。这些中继网络采用的是低延迟 + 高带宽的连接方式,不过存在一些缺陷,例如中心化程度高,为实现延迟最小化消耗了大量带宽等等。这些网络不会减少运行非挖矿节点所需的带宽总量,这在工程师扩大系统规模之前是必需实现的。

这种机制的目的是减少数据广播的次数。

压缩区块

如果在传输区块的时候,区块中包含的交易是接收者已有的,就不是最优方案。密码学家?Greg Maxwell?曾指出,新挖出的区块中有大部分交易都是接收者已知的。说明白点,新挖出的区块中有很多交易很可能是接收者的内存池(已接收到但未经确认的交易集合)中已有的。Greg Maxwell 研究了这一问题,并在 2015 年 12 月草拟了一个提议
核心开发者?Matt Corallo?在 Greg 研究的基础上改进了这个提议,并于 2016 年初正式提出了?BIP152?,阐明了压缩区块的概念。压缩区块协议指的是发送者向接收者发送的不再是完整的区块数据,而是接收者肯定没有的区块头、交易 ID 缩写和交易集。这一改动旨在节省带宽,不过也有降低延迟的效果。

这种机制的目的是减少数据广播的内容容量。很明显,这种机制的实现建立在增加交互次数的限制上。原始方案中,同步数据的指令集只需要指定block ID;改进方案中,除了block ID,还需要传输当前节点持有的交易HASH列表。
这种方案到底能否降低带宽消耗,需要综合考虑实际运行情况。

比特币采用的是 “大水漫灌” 型的区块广播方式,显然不是在网络中传播交易的最佳方式。一个节点可能会接收到同一个交易的多个副本,而且必须将这些副本广播给所有与之相连的节点。由此一来,消耗了大量带宽,造成了不必要的开支。此外,这会打击节点与更多节点建立连接的积极性,因为多连接一个节点,每传播一个交易所需的带宽就会相应递增。
连接的节点越少,消耗的带宽就越低。 然而,这可能会带来一定的危险,使用户更容易遭受日蚀攻击(eclipse attack)。

比特币节点的连接数量范围是8-128个。数量越多,安全性越高,但是带宽消耗越高。
本质上,是带宽和安全性的平衡。