Bitcoin - Mitigando Ataques
Vou discutir três tipos diferentes de ataques prováveis no sistema Bitcoin -
Ataque de corrida
Como um invasor, você pode enviar a mesma moeda para diferentes fornecedores em rápida sucessão, provavelmente usando duas máquinas diferentes. Se os vendedores não esperarem pela confirmação do bloqueio antes de entregar a mercadoria, logo perceberão que a transação foi rejeitada durante o processo de mineração. A solução para esse tipo de ataque é que o vendedor deve aguardar pelo menos uma confirmação de bloqueio antes de enviar a mercadoria.
Finney Attack
Nesse caso, o atacante é o mineiro. O mineiro extrai um bloco com sua transação e não o libera no sistema. Ele agora usa as mesmas moedas em uma segunda transação e, em seguida, libera o bloco pré-minerado. Obviamente, a segunda transação seria rejeitada eventualmente por outros mineiros, mas isso levará algum tempo. Para mitigar esse risco, o vendedor deve aguardar pelo menos seis confirmações de bloqueio antes de liberar a mercadoria.
O Ataque de 51%
Nesse tipo de ataque, partimos do pressuposto impraticável de que alguém possui 51% do poder de computação da rede. O atacante neste tipo de ataque mina um blockchain privado onde gasta o dobro das moedas.
Como ele possui a maior parte do poder de computação, ele tem a garantia de que seu blockchain privado em algum ponto do tempo seria mais longo do que a cadeia de rede “honesta”. Ele então libera sua blockchain privada no sistema, tornando todas as transações registradas anteriormente na blockchain honesta para serem inválidas.
Esse tipo de ataque é fictício, pois é muito caro adquirir um poder de computação igual ou superior a 51% do poder de computação de toda a rede.