Visão Geral
Um ataque eclipse tem como alvo um nó Bitcoin específico controlando todas as suas conexões de pares de entrada e saída. Uma vez que o nó vítima está isolado da rede honesta, o atacante pode alimentá-lo com uma visão manipulada da blockchain, habilitando vários ataques secundários como gasto duplo, amplificação de mineração egoísta ou censura de transações.
Como Funciona
Operação normal:
┌──────┐ ┌──────┐ ┌──────┐
│Nó A │◄──►│Vítima│◄──►│ Nó B │ (Conectado a pares honestos)
└──────┘ └──┬───┘ └──────┘
│
┌────┴────┐
│ Nó C │
└─────────┘
Ataque eclipse:
┌───────────┐ ┌───────────┐
│ Atacante │◄──►│ Vítima │◄──►│ Atacante │
│ Nó 1 │ │ Nó │ │ Nó 2 │
└───────────┘ └─────┬─────┘ └───────────┘
│
┌─────┴──────┐
│ Atacante │
│ Nó 3 │ (TODOS os pares são controlados pelo atacante)
└────────────┘
Metodologia do Ataque
- Reconhecimento: O atacante identifica o endereço IP do nó vítima
- Envenenamento da tabela de endereços: O atacante inunda a tabela de endereços da vítima com endereços IP controlados pelo atacante enviando muitas mensagens
addr - Reinicialização forçada: O atacante aguarda ou induz uma reinicialização do nó (por exemplo, via esgotamento de recursos)
- Monopolização de conexões: Quando a vítima reinicia e se conecta a pares, ela seleciona de sua tabela de endereços envenenada, conectando-se exclusivamente a nós do atacante
Consequências
- Gasto duplo: O atacante pode mostrar à vítima uma versão diferente da cadeia, enganando comerciantes que executam esse nó para aceitar pagamentos inválidos
- Desperdício de potência de mineração: Se a vítima for um minerador, pode minerar em uma cadeia obsoleta ou fabricada pelo atacante, desperdiçando hash power
- Censura de transações: O atacante pode impedir que a vítima veja ou transmita transações específicas
- Ataques de 0 confirmações: Transações não confirmadas são especialmente vulneráveis, pois a vítima não pode ver transações concorrentes
Mitigações no Bitcoin Core
O Bitcoin Core implementou várias contramedidas ao longo dos anos:
- Seleção diversificada de pares: As conexões de saída são escolhidas de diferentes faixas de endereços IP (sub-redes /16 diferentes)
- Conexões âncora: Duas conexões de apenas retransmissão de blocos são persistidas entre reinicializações
- Limites de conexão por sub-rede: Limita quantos pares podem se conectar da mesma faixa de IP
- Conexões exploradoras: Testam periodicamente endereços aleatórios para verificar se são nós honestos acessíveis
- Limites de conexões de entrada: Impedem que um único IP abra muitas conexões
Melhores Práticas para Operadores de Nós
- Executar nós com um IP estático e configurar pares confiáveis usando a opção
addnode - Usar conexões Tor ou VPN junto com clearnet para diversificar caminhos de rede
- Monitorar a diversidade de conexões de pares e observar padrões incomuns
- Manter o Bitcoin Core atualizado para se beneficiar das mitigações mais recentes contra ataques eclipse