O mecanismo de consenso da Bitcoin é, teoricamente, vulnerável a ataques por mineiros com objectivos desonestos ou destrutivos.
Como vimos noutros artigos, o consenso depende de ter uma maioria de mineiros interessados em manter a rede a trabalhar de forma honesta. No entanto, se um grupo conseguir juntar poder de mineração suficiente poderá lançar um ataque à rede com o objectivo de alterar as regras de consenso, quer seja para proveito próprio, para inviabilizar a rede ou bloquear endereços específicos.
Um ataque ao consenso da rede é conhecido como “ataque de 51%“. Para o concretizar o grupo de mineiros terá que conseguir juntar uma maioria do poder de computação da rede.
Tendo esse poder, conseguem minerar a maioria dos blocos. Isto permite dois tipos de perversões das regras:
- Criar transacções de duplo gasto – os atacantes conseguem criar uma transacção que gasta duas vezes as mesmas moedas ao criar um fork abaixo de blocos anteriormente confirmados. Reunindo poder suficiente, seria possível a um atacante invalidar seis ou mais blocos, revertendo assim transacções que estavam validadas (considera-se validada ao fim de 6 confirmações, 6 blocos publicados acima daquele que a inclui). De notar, que isto só seria possível para operações do próprio atacante. Neste ataque, os mal-feitores esperam que a sua transacção seja validada, faz o fork abaixo dela e volta a utilizar essas mesmas moedas para fazer outro pagamento. Desta forma, o endereço que tinha recebido as bitcoins da primeira vez perde-as e o atacante consegue manter o bem ou serviço pelo qual trocou essas moedas.
- Impedir o serviço de transacções ou endereços específicos. Neste tipo de ataque os atacantes conseguem bloquear transacções ou mesmo endereços de receberem ou enviarem bitcoins. Como os atacantes ficam com o controlo da rede, podem identificar determinadas operações e escolher que elas não sejam incluídas nos blocos que serão adicionados à cadeia. Essa selecção de transacções pode ser feita individualmente ou, no caso de querer atingir um endereço específico, identificar transferências que lhe sejam destinadas ou feitas a partir daí. E, mesmo que outro mineiro inclua uma dessas transacções num bloco os atacantes poderiam fazer um fork e voltar a minerar o bloco sem a incluir.
Apesar de todos estes riscos, é importante realçar que um ataque ao consenso da rede, apenas consegue afectar o consenso futuro ou, no pior dos caso, o passado recente (dezenas de blocos). Teoricamente, um fork pode ser conseguido a qualquer altura da cadeia, mas na prática seria necessário um poder de computação absurdo para conseguir alterar blocos muito antigos. As transacções guardadas na blockchain são crescentemente mais seguras à medida que o tempo passa e mais blocos são minerados. Também de notar que este tipo de ataques não conseguem roubar bitcoins, gastar bitcoins sem a assinatura do endereço próprio ou alterar operações anteriores nem posse de bitcoins. Este tipo de ataques não conseguem atingir a segurança de chaves privadas ou do algoritmo de assinatura de transacções. Isto significa que mesmo que um grupo malicioso conseguisse “tomar conta” da rede não conseguia roubar todas as Bitcoins para si.
Na verdade, um ataque de 51% não precisa de ter realmente 51% do poder de computação total da rede. Segundo algumas estimativas, esse valor poderia ser apenas 30%. Este ataque é essencialmente um braço-de-ferro entre os atacantes e a rede, no qual vencerá o grupo mais forte. Quanto mais poder de computação tiver o grupo maior será a probabilidade de conseguir dominar a Bitcoin.
No entanto, mais uma vez a força da Bitcoin está nos números e na descentralização do poder. Actualmente, a poder de computação da rede está em redor dos 100 milhões de TH/s (fazem-se 100 milhões de teras tentativas para descobrir a solução para o Proof-of-Work por segundo). É possível comprar equipamentos de mineração que fazem 73 TH/s a cerca de $2000. Fazendo as contas: para ter poder de computação, apenas para os 30%, seriam necessários investir mais de 800 milhões de dólares.
Ou seja, ainda que seja teoricamente possível fazer um ataque deste tipo, seriam necessários demasiados recursos para o executar.
Se por outro lado, as intenções dos atacantes fossem apenas tentar destruir a confiança na Bitcoin, certamente o conseguiriam. Mas, por outro lado, a rede e o software estão em constante evolução e a comunidade rapidamente conseguiria responder com medidas que tornariam a Bitcoin mais robusta daí em diante.
A possibilidade de um ataque deste tipo ser bem sucedido torna-se ainda mais reduzida se considerarmos todos os intervenientes na rede. A Bitcoin é constituída por mineiros, programadores, carteiras, os utilizadores finais entre outros. Todos eles têm uma palavra a dizer sobre a alteração das regras de consenso. Por exemplo, ainda que uma maioria de mineiros acordassem em alterar alguma regra, mesmo sem intenções maliciosas, os outros intervenientes poderiam simplesmente não os seguir por não concordarem com essa alteração. Isto faria com que a actividade económica se mantivesse numa cadeia minoritária e esses mineiros estariam a minerar uma moeda sem nenhum valor.
A maneira de fazer alterações ou melhorias nas blockchains, será sempre através de forks que mudam as regras do consenso de forma que todos os intervenientes possam decidir quais as regras que pretendem seguir sendo livres de escolher qual a cadeia que pretendem seguir a partir desse momento.
Como vimos quando estudámos os forks, existem motivos válidos para escolher soft e hard forks. Para cada caso, existem também riscos e por isso cada proposta terá que ser analisada pelos membros da rede para tomarem a sua decisão. A única constante que temos assegurada no desenvolvimento de software de consenso é que as alterações são difíceis e obrigam a chegar a compromissos que deixem a comunidade satisfeita. A Bitcoin e a Cripto-Comunidade como sistema descentralizado mantém a fasquia elevada neste tema e é a comunidade por excelência para inovar este tipo de software.
4 replies on “Ataques de 51% – Controlar a Bitcoin”
Bom saber que a Bitcoin não é fácil de ser roubada, nem por interesse dos mineiros (pelo menos facilmente)!
GostarGostar
[…] A Bitcoin foi criada precisamente para eliminar grandes concentrações de poder em poucos indivíduos, entidades ou instituições. No entanto, muitos mineradores com a expectativa de aumentarem as suas probabilidades de serem recompensados juntam-se em mining pools. A probabilidade de um minerador aumenta à medida que o seu poder de mineração também aumenta. Assim, foram criados estes aglomerados de mineradores para poderem aumentar as suas hipóteses de receberem as moedas da recompensa. No entanto, este mecanismo cria uma concentração de poder. Se uma destas pools conseguisse juntar poder suficiente poderia controlar a rede e escolher as transações que seriam validadas, através de um ataque de 51%. […]
GostarGostar
[…] criar moedas falsas mas poderia ser gastas as mesmas moedas mais do que uma vez. No entanto, como vimos anteriormente, isto implicava tomar o controlo da rede o que, tendo em conta o tamanho da rede, é […]
GostarGostar
[…] Ataques de 51% […]
GostarGostar