Ataque de 51%
Reescrever a blockchain construindo uma cadeia mais longa
Um ataque de 51% se refere ao ato de construir intencionalmente uma nova cadeia mais longa de blocos para substituir blocos já na blockchain. Isso permite substituir transações que já foram mineradas na blockchain.
Esse tipo de ataque é mais fácil de realizar quando você tem a maioria do poder de mineração, e é por isso que é chamado de "ataque da maioria" ou "ataque de 51%".
Método
Como funciona um ataque de 51%?
Os nós sempre aceitam a cadeia conhecida mais longa como a versão válida da blockchain. Então, se você quer "desfazer" uma transação, basta construir uma nova cadeia de blocos mais longa sem aquela transação.
Quando os nós recebem essa nova cadeia mais longa, eles fazem uma reorganização da cadeia para desativar os blocos da cadeia antiga e ativar os blocos da nova cadeia que você construiu. Assim, você efetivamente reescreve a blockchain, revertendo transações que antes pareciam permanentes.
Você iria querer incluir uma transação substituta na nova cadeia para enviar os bitcoins a um novo destino (ex.: ao seu endereço, e não ao vendedor do carro). Caso contrário, a transação original poderia ser re-minerada na nova cadeia.
Prevenção
O que impede um ataque de 51%?
Todo minerador é incentivado a construir sobre a cadeia mais longa atual. Então, se o poder de mineração combinado de todos os outros mineradores for maior que o seu, fica incrivelmente difícil superá-los para construir uma cadeia mais longa e substituir a existente.
Para evitar que isso aconteça, queremos tornar difícil que um único minerador adquira a maioria do poder. Isso é alcançado permitindo que qualquer pessoa no mundo minere e oferecendo uma recompensa de bloco como incentivo para construir na cadeia conhecida mais longa.
Enquanto a maioria do poder de CPU for controlada por nós que não estão cooperando para atacar a rede, eles gerarão a cadeia mais longa e superarão os atacantes.
Praticidade
Quão difícil é realizar um ataque de 51%?
A parte mais complicada seria conseguir todo o hardware necessário, o que seria incrivelmente caro. Porém, se você conseguisse a maioria do poder de mineração, seria só uma questão de tempo até construir uma nova cadeia mais longa.
Dito isso, é preciso mais trabalho para substituir um número maior de blocos do que apenas alguns. Então, quanto mais fundo uma transação chega na blockchain, mais tempo e energia são necessários para revertê-la.
Probabilidade
Você consegue reescrever a blockchain com menos de 50% do poder?
É possível reescrever a blockchain sem a maioria do poder de mineração, mas você vai precisar de sorte. A mineração é imprevisível, então, mesmo com pouco poder, nada impede você de ter sorte e minerar os próximos 2 blocos seguidos. É improvável, mas não impossível.
Quanto mais fundo uma transação está, mais sorte você vai precisar para minerar X blocos seguidos. Se ninguém tem a maioria do poder, fica exponencialmente mais difícil substituir uma transação quanto mais fundo ela chega.
Aqui está uma tabela com as suas probabilidades exatas:
| Blocos | 50%+ | 40% | 30% | 20% | 10% |
|---|---|---|---|---|---|
| 1 | 100% | 73,6% | 44,6% | 20,4% | 5,1% |
| 2 | 100% | 66,4% | 32,5% | 10,3% | 1,3% |
| 3 | 100% | 60,3% | 23,9% | 5,3% | 0,4% |
| 4 | 100% | 55,0% | 17,7% | 2,7% | 0,1% |
| 5 | 100% | 50,4% | 13,2% | 1,4% | 0,02% |
| 6 | 100% | 46,2% | 9,9% | 0,7% | 0,006% |
| 10 | 100% | 33,2% | 3,1% | 0,06% | 0,00003% |
Os números acima supõem que você tenta substituir blocos construindo uma cadeia alternativa um bloco mais longa que a cadeia atual.
Equação
A probabilidade de conseguir reescrever blocos é uma função de quanto poder de mineração você tem e quantos blocos você quer substituir. A equação está no Whitepaper do Bitcoin (Seção 11).
A equação calcula a probabilidade de alcançar a cadeia mais longa (estando um número de blocos atrás). Para substituir blocos, você precisa ir um bloco mais longe.
Perguntas Frequentes
Alguém já realizou um ataque de 51% no Bitcoin com sucesso?
Não, ainda não. Alguns mineradores chegaram perto de 50% ou mais do poder total ao longo da história do Bitcoin (a GHash.io chegou perto em 2014), mas ninguém realizou um ataque de 51% bem-sucedido.
Mesmo que um minerador passe de 50% do poder, isso não significa necessariamente que vá atacar; significa só que ele pode. Aliás, com tanto poder, provavelmente é mais lucrativo continuar minerando blocos e coletando recompensas do que reverter uma única transação (e afundar o valor do bitcoin por causa do ataque).
Quanto poder de hash eu preciso para um ataque de 51%?
Você pode usar o valor de alvo atual para estimar quanto poder de hash precisaria para obter o controle da maioria. O alvo se move para cima e para baixo conforme a rapidez com que todos os mineradores conseguem minerar novos blocos, então podemos usá-lo para descobrir quão rápido precisamos fazer hash para superar a velocidade atual da rede. O processo: obter o alvo atual (do campo bits do bloco mais recente), calcular os hashes esperados por bloco e dividir pelos 10 minutos do intervalo de bloco.