Na manhã desta sexta-feira (27) aconteceu uma bifurcação acidental na blockchain do Ethereum (ETH) provocada por operadores de nó que ainda rodam uma versão desatualizada do Go-Ethereum (Geth), o cliente de software mais popular do Ethereum.
Isso significa que atualmente a blockchain Ethereum está processando duas cadeias simultaneamente, a principal e uma paralela que se não eliminada, poderia causar um ataque de gasto duplo, segundo o Decrypt. Nessa ofensiva, a mesma criptomoeda é gasta mais de uma vez já que a transação é substituída pela cadeia alternativa.
Conforme mostrou o Portal do Bitcoin no início da semana, o Geth tinha um bug de alta gravidade no seu código que poderia fazer com que mais da metade de todos os operadores de nó do Ethereum não fossem mais capazes de processar a blockchain.
Para corrigir o bug, os desenvolvedores do Ethereum Foundation lançaram a versão v1.10.8 na terça-feira e pediram que todos os operadores de nó atualizassem imediatamente, o que não aconteceu.
De acordo com dados do Ethernodes, 54% de todos os operadores de nó do ETH está com uma versão inferior a v1.10.8 do Geth — o que significa que mais da metade da rede está operando em um software vulnerável.
Um cliente Ethereum é um software que os usuários podem baixar para verificar as transações na rede. Pelo fato do Geth ser o cliente de software do Ethereum mais utilizado no mundo, utilizado por 74% de todos os validadores, erros no seu código são críticos para o bem-estar da rede.
Há uma corrida agora para pressionar os operadores de nó a atualizar o mais rápido possível para que o problema seja resolvido.
De acordo com o desenvolvedor Tim Beiko, três grandes pools de mineração de Ethereum —Binance, BTC.com e Flexpool.io — rodavam até essa manhã uma versão desatualizada do Geth, intensificando a falta de consenso da rede que gerou a divisão da cadeia. Após o alerta, o BTC.com informou no Twitter que concluiu a atualização.
Bug da Geth já dividiu blockchain do ETH
Essa não é a primeira vez que acontece uma divisão na cadeia do Ethereum provocada por um bug do Geth. Em novembro do ano passado, a blockchain do ETH se dividiu temporariamente porque um grande número de nodes não atualizaram para uma versão do Geth lançada na época que corrigia um bug crítico no código.
Da mesma forma que agora, a falta de consenso entre os operadores fez a cadeia se dividir em uma versão mais longa e uma versão mais curta. Quando isso acontece normalmente, os nodes aderem à versão mais longa. Mas naquele momento, os nodes que não foram atualizados ficaram com a cadeia maior, processando blocos diferentes e incompatíveis com outras versões da blockchain.
Antes do problema ser resolvido, diversas corretoras e carteiras de Ethereum tiveram seus serviços impactados porque dependiam da infraestrutura do Infura, que estava desatualizado na época.