区块链网络层卡顿真相 分布式通信的致命短板
区块链常常被包装成毫无瑕疵的信任机器, 然而, 真正在节点上运行过的人都清楚, 网络层才是那个极易出现问题的所在之处。所谓网络层, 指的是各节点之间怎样发现彼此、怎样传播信息、怎样确保数据不丢失且不混乱的底层逻辑。它不像共识层那般备受瞩目, 却是整个系统能否稳固的基础。事实上, 许多所谓的性能瓶颈, 根源恰恰就潜藏在网络层当中。
节点发现机制为何成了单点隐患
网络层的首个难关是节点发现。早期比特币借助DNS种子节点来进行节点发现, 那些硬编码于客户端内的IP地址池, 看似简便高效, 然而一旦遭受攻破或者污染, 整个网络便如同盲人。试想一下, 新节点上线的首要步骤便是寻找这些种子节点, 要是它们返回的尽是恶意节点, 那么新节点自起始便被环绕了。
更麻烦之处在于, P2P网络当中不存在中心化调度, 节点相互之间的连接全然是随机的。这便导致产生了一种怪异的现象: 大矿池以及大交易所所拥有的节点数量众多、带宽充足, 它们彼此之间自然而然地形成了高密度连接网, 然而普通节点有可能仅仅连接上七八个邻居, 讯息传播到它们那里总是要慢上半拍。这种网络拓扑结构的不平衡, 直接致使信息传播速度出现两极分化的情况。事实上, 许多区块链项目在进行压力测试之际崩溃, 根本并非是共识算法无法承受, 而是网络层率先被消息洪流给冲垮了。
广播风暴和延迟谁能真正解决
区块链网络层, 最典型的矛盾, 集中于广播机制。为确保每笔交易、每个区块, 都能抵达全网每个节点, 多数公链采用泛洪式广播, 即节点收到消息后, 转发给所有邻居。邻居再转发给它们的邻居。听起来靠谱,仔细琢磨, 这简直是野蛮生长的灾难。同一个区块, 可能从不同路径, 反复抵达同一个节点, 带宽和CPU, 全都浪费在重复消息的识别与丢弃上。
而延迟问题愈发使人头疼不已, 网络层对时间异常敏感, 然而在现实世界当中, 网络迟滞、丢包、振动乃是常态, 一个区块从出块节点扩散至全网半数节点, 倘若中间存在某个区域的网络状况特别糟糕, 那么这个区块的确认时间便会被拉长, 更为隐匿的是, 恶意节点能够借助网络层实施攻击, 从而操控信息抵达的先后次序, 以变相的方式影响共识结果, 比如说预先向部分节点发送虚假区块, 致使诚实节点在验证环节耗费大量时间。
总的来说, 网络层所存在的问题并非依靠对共识算法进行优化便能够避开的。以太坊所推行的Gossip协议虽说相较于泛洪而言要好上一些, 然而也仅仅只是解决了表面问题。要是想实现真正的解决, 那就需要从针对网络拓扑设计, 以及消息压缩, 还有节点信誉机制这些底层的逻辑方面着手。这条路是极为艰难的, 不过必定得有人去走。
TAG: TP下载安卓最新版本
