Uma falha grave no software do Bitcoin, Litecoin e Decred que provocaria a centralização e diminuição massiva do hashpower foi revelada nesta quarta-feira (09) dois anos depois de ter sido encontrada por um programador chamado Braydon Fuller.
O problema foi descoberto em 2018 e estava presente em 50% da rede do Bitcoin. Ele foi sendo corrigido ao longo do tempo, mas caso fosse explorado, diz o estudo, poderia ocasionar na perda de fundos.
“De forma simplificada, a falha funcionava assim: fazendo muitas solicitações para os nodes (ataques DDoS), fazia com que se ocupasse toda a memória RAM dos computadores que rodavam o node e, com isso, eles ficavam fora do ar”, disse o programador e criador da PagCripto, Carlos Lain.
Conforme o paper, isso poderia ocasionar um desligamento dos nodes e fazer com que a rede se dividisse temporariamente. “Isso pode afetar a negociação, exchanges, atomic swaps, escrows e canais de pagamento HTLC da lightning network”, diz o texto.
O mais grave, segundo Lain, é que explorando essa falha poderia ter sido possível, posteriormente, realizar um ataque 51% com um custo muito reduzido.
Não houve, contudo, nenhuma conhecida exploração da vulnerabilidade.
A falha no Bitcoin Core foi introduzida no sistema em novembro de 2017 e lançada nas versões v0.16.0 e v0.16.1 do software. O erro foi comunicado pela primeira vez em julho do ano seguinte.
Fuller, o descobridor da vulnerabilidade, é um engenheiro de software focado em segurança com experiência em criptografia, sistemas descentralizados e distribuídos desde 2014.
Falha famosa em 2010
Uma das mais famosas falhas do software do Bitcoin ocorreu em 2010. Na ocasião, o bug ocorreu no bloco 74.638, o bloco fatídico que criou 184.467.440.737.09551616 BTCs, com dois endereços recebendo pouco mais de 92 bilhões de Bitcoin cada. Até hoje não se sabe quem foi o responsável pelo ataque.
Contudo, a anomalia foi detectada no fórum Bitcoin Talk por Jeff Garzik, um desenvolvedor que hoje é o CEO da Bloq. O problema foi denominado “overflow bug”; o código para verificar as transações de Bitcoin não funcionava se as saídas fossem grandes o suficiente quando somadas.
A falha foi corrigida rapidamente. Depois de cinco horas foi feito um “soft fork” , que redefiniu o blockchain do Bitcoin para antes do bloco bugado e incluiu o código para rejeitar transações de saídas com valores que extrapolassem o limite.