📜  什么是 Eclipse 攻击?

📅  最后修改于: 2022-05-13 01:56:13.066000             🧑  作者: Mango

什么是 Eclipse 攻击?

eclipse 攻击是一种基于 P2P(Peer to Peer)网络的攻击。 Eclipse 攻击只能在接受来自其他节点的传入连接的节点上执行,并且并非所有节点都接受传入连接。

在比特币网络中,默认情况下最多有 117 个传入 TCP 连接和 8 个传出 TCP 连接。

换句话说,在 P2P 网络中控制节点对信息的访问是一种 Eclipse 攻击。攻击者以这样一种方式定位自己,即目标的所有传入和传出连接都是攻击者节点。

Eclipse攻击

Eclipse 攻击的工作原理:

Eclipse 攻击是可能的,因为网络中的节点无法与所有其他节点连接,并且可以与有限数量的相邻节点连接。这种限制可能使攻击者将一个节点与网络的其余部分隔离起来似乎很方便,但这并不是一件容易的事。现在让我们讨论它是如何完成的。

  • 攻击者如何隔离节点:攻击者通常必须利用僵尸网络来执行完全隔离节点的任务,并且可能需要多次尝试才能完成。一种可行的方法是从主机节点创建一个虚拟网络,用大量 IP 地址淹没目标节点,目标可能会在下次重新连接到区块链网络时与这些 IP 地址同步。从这一点开始,攻击者等待目标连接到恶意节点。

Eclipse 攻击的后果:

在 Eclipse 攻击期间,攻击者向目标隐藏区块链账本的实际当前状态,攻击者可以执行以下操作:

  • 双花
  • 矿工停电
  • 双花:双花是数字现金计划中的一个潜在缺陷,其中同一个数字代币可以多次使用。例如:假设您给店主 10₹,现在它们不再是您的,您不能再次使用完全相同的 10₹,但如果您重复消费,您将再次使用完全相同的票据.您可能已经猜到了,这样做是不合法的。类似地,在区块链网络上,假设你花了 10 个比特币(这是很多比特币)买房子,这 10 个比特币作为交易存储在内存池中,该交易在网络上广播,这 10 个比特币被扣除从你的钱包里。
    • Eclipse 攻击双花:假设你是攻击者,你的所有攻击者节点占网络总算力的 40%,目标节点占 30% 的算力,剩余网络也有 30% 的算力.现在,您在公共网络上花费 10 个比特币,并通知网络上除目标节点外的所有其他节点,商家收到付款,并从您的钱包中扣除 10 个比特币。然后,您通知目标节点有关虚假交易的信息,该交易将 10 个比特币从卖方发送到您(攻击者的)帐户。由于你的算力加上目标算力达到 70%,你会以最快的速度出块,所以你的链是最长的,并且如前所述,它会被网络验证,因此,这 10 个比特币将被转移从卖家账户回到你的账户,你就可以再次使用这10个比特币。
  • Miner Power Disruption:攻击者可以向目标隐藏区块已被开采的信息,从而误导受害者浪费算力挖掘孤立区块。孤立块是已在区块链网络中解决但未被网络接受的块。通过这种方式,攻击者能够提高他们在网络中的相对哈希率,并使区块挖掘竞赛对他们有利。另一种方法是结合目标更快地挖掘区块的能力,就像我们在双花中看到的那样,与目标合作以结合你的哈希能力。

Eclipse攻击的预防:

  • 增加节点连接:如果网络中的每个节点都连接到大量节点,攻击者将难以隔离网络中的目标,从而降低了 Eclipse 攻击的可能性。
  • 随机节点选择:网络的设计方式应使每个节点在与网络同步时连接到一组随机节点。