10 anos atrás, Bitcoin não teve a adoção global que tem hoje e a rede era infinitamente menor do que é hoje.
Assim, em 15 de agosto de 2010, um hacker conseguiu invadir a rede BTC, aproveitando um bug no código. Com isso, o atacante conseguiu criar 184.467 milhões de Bitcoins.
O erro encontrado
O bug foi descoberto inicialmente por Jeff Garzik, que ajudou a desenvolver o Bitcoin desde os primeiros anos.
Às vezes ele relatado ou nenhum problema de Bitcoin Talk.
“O valor de saída no bloco 74.638 é bastante estranho”, escreveu ele.
O bloco mostrou que, durante 1h30, ocorreram saídas que atingiram um total de 184.467 milhões de BTC.
Isso é quase 8.800 vezes mais do que o suprimento máximo de Bitcoin, que é de 21 milhões.
LFM
Outro usuário do fórum, sob o pseudônimo de “LFM”, explicado o feito.
Segundo ele, uma pessoa fez uma modificação customizada no software para gerar uma transação.
Portanto, essa mudança aproveitou uma vulnerabilidade no código, aumentando artificialmente a oferta.
Assim, o código utilizado para verificar a transação antes de incluí-la no bloco, não contemplava o caso de as saídas serem tão grandes que fossem ultrapassadas ao serem adicionadas.
Dessa forma, o código Bitcoin verificava a saída de cada transação para números individuais.
No entanto, ele “esqueceu” de verificar se a soma das duas saídas resultava em um número negativo.
Portanto, se dois valores grandes, mas positivos, fossem colocados na transação, o estouro verificaria apenas se era menor ou igual às entradas.
Assim, foi possível emitir uma série de moedas que inflaram excessivamente a oferta.
Correção
Logo, Nakamoto e o desenvolvedor Gavin Andresen começaram a trabalhar para consertar o que aconteceu.
Então, apenas 2 horas e 21 minutos depois de Garzik fazer o anúncio, eles lançaram um fragmento para o código que corrigiu esse problema em transações futuras. Uma hora depois, o patch já havia sido carregado no repositório.
A função era rejeitar transações de overflow, como a que havia sido realizada, bem como qualquer transação que pagasse mais de 21 milhões de BTC em uma única saída.
Além disso, naquele mesmo fórum, foi sugerido que todos os mineiros parassem de processar as transações até que uma solução fosse encontrada.
Foi solicitado ignorar o bloco em que ocorreu o erro e todos os blocos subsequentes.
Garfo macio
A solução encontrada envolveu um garfo macio de blockchain onde a transação problemática e todas as transações subsequentes são revertidas.
Os mineiros aceitaram a proposta e o novo blockchain ultrapassou o antigo bloco 74.691, 19 horas após o incidente.
Os ideais de imutabilidade foram momentaneamente colocados de lado para o bem maior e benefício de longo prazo para a comunidade.
Esta foi a única grande violação de segurança encontrada até agora na história do Bitcoin.
Até agora, a primeira criptomoeda teve 48 vulnerabilidades detectou, mas nenhum tão sério quanto este.
Leia também: Taxa de hash do Bitcoin bate novo recorde no fim de semana
Leia também: Brasil receberá 10 ATMs Bitcoin
Leia também: Bitcoin quebra $ 12.000 e faz com que Binance fique offline