E se existir um bug no código do Bitcoin? Bem, há exatos 12 anos, um bug foi descoberto! E o mais interessante é saber como uma rede descentralizada agiu para corrigi-lo.
No final de 11 de março de 2013, um minerador de Bitcoin rodando a versão 0.8 criou um bloco grande (na altura 225.430) que era incompatível com versões anteriores do Bitcoin.
Isso causou um fork na rede Bitcoin e resultou em duas blockchains separadas.
Nas primeiras horas do dia seguinte, a comunidade de desenvolvedores identificou o problema: em 19 de fevereiro daquele mesmo ano, a versão 0.8 do código havia sido lançada.
Essa versão incluía uma mudança no sistema de banco de dados que permitia um maior volume de transações em cada bloco, o que a versão anterior 0.7 não suportava.
Com o recente aumento no volume de transações na rede Bitcoin, alguns blocos excederam esse limite e foram rejeitados pelos nós que rodavam a versão 0.7, mas aceitos pela versão 0.8, criando duas blockchains incompatíveis.
Pieter Wuille anunciou que, após discussões, a comunidade reconheceu que o caminho menos arriscado era continuar com a cadeia antiga.
O plano de correção incluiu várias ações: os mineradores precisavam parar de usar a versão 0.8 e voltar para a versão 0.7, e os nós que haviam sido atualizados para a versão mais recente precisavam reverter para a versão anterior.
Outra recomendação foi para que os comerciantes parassem temporariamente de aceitar pagamentos em Bitcoin para evitar o risco de aceitar transações na nova cadeia, que seriam descartadas se o plano fosse bem-sucedido.
O plano funcionou, e 24 blocos depois, a cadeia antiga havia se tornado a cadeia mais longa novamente.
Referências:
https://bitcointalk.org/index.php?topic=145184.0https://bitcointalk.org/index.php?topic=152030.0