Eclipse Attack(日蚀攻击):当一个节点被完全“隔离”,它就等同于被攻陷
关键词:Eclipse Attack、日蚀攻击、P2P 网络、Bitcoin、Ethereum、区块传播延迟、共识操控
1. 什么是 Eclipse Attack?
Eclipse Attack(“日蚀攻击”)是区块链网络中最危险的网络攻击之一:
攻击者通过控制受害节点的全部进出连接,让它只和攻击者对话,而无法看到真实区块链网络。
换句话说,被日蚀攻击的节点,会活在攻击者构建的“假世界”里。
这不是 51% 攻击,而是 1 对 1 的精准网络攻击。
2. Eclipse Attack 的危害有多大?
被日蚀的节点,就像:
- 只能看到攻击者发的假区块
- 收不到真实交易
- 可能被迫打包无效区块
- 无法同步最新链高
- 成为攻击者的底层工具
它是以下攻击的基础:
| Selfish Mining | ✔ 强依赖 | 攻击者控制受害者的视野 |
| Double-Spend | ✔ 有利 | 让商家“看不到”真实链 |
| 交易审查 | ✔ 强力 | 屏蔽受害者的交易 |
| 时间戳攻击 | ✔ | 修改受害者本地时间源 |
| 伪造链同步 | ✔ | 注入恶意区块 |
所以:
Eclipse 是区块链中网络层最严重的攻击之一。
3. Eclipse Attack 如何实施?
以 Bitcoin / Ethereum 网络为例,攻击流程包括:
步骤 1:Sybil 节点准备
(大量虚假节点铺路)**
攻击者先伪造大量节点(上一篇 Sybil):
- 泼大量 IP
- 多端口并发监听
- 虚拟机/代理节点
- 控制多个 AS 段
这些节点进入受害者的 peers 列表。
步骤 2:淹没节点发现机制(node discovery)
攻击者操纵 victim 的:
- 地址表(address table)
- 邻居缓存(k-buckets)
- peer scoring
- 节点发现协议(例如 Kademlia)
确保 victim 看到的节点列表都是攻击者的。
步骤 3:重启节点,接管出站连接
Bitcoin 默认 8 个出站连接
Ethereum 默认 16 个
攻击者通过技巧让受害者重启(断网、资源耗尽、诱导),
然后受害者会从“缓存的地址”中重建连接,这些地址全是攻击者伪造的。
结果:
受害者出站连接全部连接到攻击者。
步骤 4:接管入站连接
攻击者继续用大量 Sybil 节点
连接受害者所有入站端口。
最终,victim 的所有连接都是攻击者的。
步骤 5:构建虚假网络视野
接下来攻击者可以:
- 控制受害者看到的区块高度
- 延迟某些交易/区块
- 注入恶意区块
- 只让 victim 看到攻击者的链分支
- 隐藏真实网络活动
此时,victim 已完全被日蚀。
4. Eclipse 的真实案例
◆ Bitcoin 2015 强制 Eclipse(论文级攻击)
学者对 Bitcoin 做了完整攻击验证:
- 只需 4,600 个 IP
- 花费不到 1 万美元
- 就可 Eclipse 大量节点
攻击成功率接近 90%。
◆ Ethereum 2020 节点表污染攻击
攻击者污染 Kademlia 路由表,导致新节点在线后几乎全部连接到攻击者。
◆ Ethereum 2022 MEV 相关日蚀攻击
攻击者对 validators 进行 Eclipse → 操控其 MEV 接收路径。
5. Eclipse Attack 可以实现哪些高级攻击?
1)Selfish Mining 提升收益
攻击者让 victim 不看到真实区块 →
victim 继续在旧链挖矿 →
攻击者更容易领先链高。
2)Double Spend 攻击商家
商家节点被日蚀 →
收到攻击者伪造的“假区块” →
以为交易确认了 →
释放商品 →
现实链上并没有该交易。
3)交易审查(Censorship)
攻击者屏蔽某些交易,victim 无法看到它们。
4)链同步污染(PoS 更危险)
攻击者让 PoS 节点同步到伪造链,甚至导致签署无效区块。
5)共识乱序攻击
攻击者能操作受害者的时间戳、slot、round 成为错误值,导致:
- PoS 投票错误
- PBFT 系统 commit 不一致
- Liveness 下降
6. 如何防御 Eclipse Attack?
区块链项目各有不同的防御方法:
1)限制每 IP / 每 AS 的连接数量
Bitcoin 限制“一段 IP 最多 2 个链接”。
** 2)合理的节点随机选择算法**
使用随机挑选,避免攻击者大量占坑。
3)硬编码 bootstrap seed nodes
在客户端内置多个不可变节点。
** 4)在 Kademlia 中增加路由表健康度检查**
Ethereum discv5 对恶意节点做评分。
5)保护入站连接
采用:
- SYN cookies
- 限制恶意连接
- 随机入站拒绝机制
6)使用加密握手(Noise / devp2p)
握手阶段确认对方节点身份难以伪造。
7)基于地理/IP 多样性的 peers 选择
避免全部 peers 来自同一地理或同一 ASN。
7. 小结
Eclipse Attack 是区块链网络层最恐怖的攻击之一:
- 受害者完全被隔离
- 攻击者可操控所有消息
- 可作为 double-spend / selfish mining / censorship 的基础
- 对 PoW/PoS 都危险
它不是 51% 攻击,但伤害程度不亚于 51%。

