日蚀攻击——共识攻击介绍

日蚀攻击(Eclipse Attacks)是一种针对比特币网络的攻击。每个比特币网络节点默认最多允许被117个其他节点连接(输入连接),同时最多可以向其他8个节点发起连接(输出连接)。

日蚀攻击的目标就是比特币节点的接入连接。通过控制某一个比特币节点的接入连接来达到控制比特币输入的消息来源,使这个节点仅跟恶意节点通信。

日蚀攻击中,攻击者只需40%的算力就可以达到51%攻击的效果。假设比特币网络分为2个算力为30%的节点和一个算力为40%的节点,如果攻击者拥有算力为40%的节点,他就能通过日蚀攻击来达到分割这两个30%算力的节点,使之不能正常出块。这样攻击者拥有的40%算力的节点就能控制整个网络。

日蚀攻击的实施方法如下。

1)攻击者可以通过某种方法把正常的比特币节点的输出连接都连接到攻击者控制的恶意节点,同时比特币节点的输入连接都被恶意节点连满。那如何做到让正常的比特币节点都连接到恶意的节点呢?在比特币节点中有两张表,一张叫作NewTable,用来保持当前节点所感知到的网络中其他节点的地址;另一张叫作TriedTable,用于保存曾经连接过的节点。比特币节点每次建立输出连接的,都是在这两张表中选择一个时间戳较新的节点连接。通过控制僵尸网络不断地去连接这个比特币节点,即可达到刷新这两张表的目的,使得这两张表保存了大量的恶意节点的地址信息。

2)攻击者再通过DDoS攻击等方法,让这个比特币节点重启。这样这个比特币节点连到的就都是攻击者控制的恶意节点了。

从本质上说,日蚀攻击是一种针对P2P网络的攻击。这种攻击方法与共识算法关系不大,理论上讲对PoW、PoS、DbFT等共识算法都有效,但是它非常依赖于节点在P2P网络处理上的漏洞,因此实施攻击不具备普适性。

看了“日蚀攻击”的朋友还学了:

双花攻击——共识攻击介绍

权利压迫攻击——共识攻击介绍

868区块链学习网为您整理《日蚀攻击——共识攻击介绍》仅供参考。