Condividi questo articolo

Após 'Grande Falha', Revisão do Código Bitcoin é Analisada

Após uma grave vulnerabilidade de código, os desenvolvedores de Bitcoin estão se perguntando se os atuais processos de revisão de código são suficientes para evitar novas falhas.

"Choque" é talvez a palavra que melhor descreve o clima desde que um dos bugs mais graves do bitcoin foi descoberto e corrigido na semana passada.

Enquanto a comunidade se recupera da vulnerabilidade que foiescondido no código por dois anos, e isso poderia ter sidoexplorado para imprimir mais bitcoinsdo que os 21 milhões estão codificados para serem produzidos, os desenvolvedores estão se perguntando: Existe uma maneira de evitar que um bug tão grave seja adicionado ao código novamente?

La storia continua sotto
Non perderti un'altra storia.Iscriviti alla Newsletter Crypto Daybook Americas oggi. Vedi Tutte le Newsletter

Dias após a descoberta, T houve nenhuma proposta formal. Mas isso não quer dizer que o evento T tenha motivado discussões sobre como o Bitcoin funciona e como bugs semelhantes na implementação de software mais popular da criptomoeda, o Bitcoin CORE, podem ser identificados e resolvidos no futuro.

É uma pergunta importante também – E se um ator malicioso tivesse encontrado o exploit primeiro? E se houvesse outros bugs ocultos no código agora?

Até este ponto, o moderador pseudônimo do subreddit de Bitcoin 'Theymos' pediu à comunidade para não esquecer o bug.

Ele argumentoufoi "inegavelmente um grande fracasso" em uma postagem amplamente divulgada, acrescentando:

"Se todas as políticas e práticas do Bitcoin Core forem mantidas as mesmas, então é inevitável que uma falha semelhante aconteça novamente, e podemos não ter tanta sorte com o resultado dessa vez."

Dito isso, há um argumento a ser feito de que o Bitcoin CORE, alimentado por uma rede aberta de participantes globais, agora tem um processo mais robusto para revisão de código do que em qualquer outro momento da história da tecnologia.

Neste momento, a implementação temmais desenvolvedores do que nunca contribuindo para a base de código de código aberto. E é BIT testado; segundo uma estimativa, os testes compõem quase 20 por cento da base de código.

A "culpa" da comunidade

Ainda assim, os desenvolvedores argumentam que mais poderia ser feito para garantir que o dinheiro digital funcione sem problemas.

Theymos acha que uma via seria construir testes "mais sofisticados" adaptados para localizar bugs severos, mas difíceis de encontrar, como o da semana passada. "Talvez todas as grandes empresas de Bitcoin devam ser esperadas pela comunidade para designar especialistas em testes qualificados para o CORE", ele continuou, acrescentando:

"Atualmente, muitas empresas T contribuem com nada para o desenvolvimento do CORE ."

O colaborador do Bitcoin CORE, James Hilliard, enfatizou o mesmo, sugerindo que os desenvolvedores podem aumentar a "quantidade" e a "qualidade" dos testes. No entanto, isso pode ser mais fácil dizer do que fazer. O colaborador do Bitcoin CORE, Greg Maxwell, concordou no tópico do Theymos que os testes são importantes, mas a qualidade e os detalhes dos testes são importantes.

"Dirigir mais esforços para testes tem sido um desafio de longo prazo para nós, em parte porque a arte e a ciência de testar não são menos difíceis do que qualquer outro aspecto da engenharia do sistema. Testar envolve habilidades e aptidões particulares que nem todos têm", disse Maxwell.

Esse tipo de conhecimento é difícil de encontrar.

"O desenvolvimento do Bitcoin é amplamente limitado pela revisão de código e não há muitas pessoas por aí capazes de fazer isso", disse Hilliard ao CoinDesk.

No entanto, muitos outros acreditam que a responsabilidade T deve recair somente sobre os desenvolvedores. Um sentimento comum compartilhado era que, como um projeto descentralizado sem líderes, manter o Bitcoin livre de erros é uma responsabilidade compartilhada.

"Meu principal problema com muitas das reações negativas são as pessoas apontando desenvolvedores específicos para atribuir culpas. O projeto inteiro é aberto, não há 'associação' e os usuários têm a mesma responsabilidade de auditar o código quanto os desenvolvedores que contribuem ativamente", disse o entusiasta do Bitcoin Shinobimonkey ao CoinDesk.

Tal sentimento foi compartilhado pelo mantenedor do Bitcoin CORE, Wladimir van der Laan, quetweetou, "Foi errado que o código com bugs tenha sido mesclado. Sim, nós erramos, mas o 'nós' que erramos é muito amplo. Toda a comunidade errou por não revisar as mudanças de consenso completamente o suficiente."

Engenheiro de Chaincode John Newberryacordado. Embora ele T tenha escrito o código com bugs, ele argumentou que, como desenvolvedor no mundo do Bitcoin , ele também teve um papel no erro, por não ter olhado com atenção suficiente.

Ele chegou a dizer que o código em questão parecia engraçado para ele. No entanto, ele assumiu que outros já tinham verificado.

"Em vez de verificar por mim mesmo, confiei que pessoas mais inteligentes e sábias do que eu tinham tudo coberto. Eu presumi que outra pessoa tinha feito o trabalho", ele afirmou.

Vários núcleos de Bitcoin

Ainda assim, alguns argumentam que sempre haverá risco de bugs.

"Já houve bugs no Bitcoin antes e haverá bugs novamente. É apenas software. Não há nada de mágico nisso," tweetouDiretor de operações da Blockstream, Samson Mow.

Nessa mesma linha, há outra ideia popular circulando por aí.

Hoje em dia, no Bitcoin, existe um software Bitcoin principal, o Bitcoin CORE, executado por 95 por cento de nós de Bitcoin . (Pelo menos é o que diz uma contagem – curiosamente, não há como ver todos os nós de Bitcoin , porque alguns nós querem mais Política de Privacidade e T anunciam sua existência para o resto da rede.)

Uma ideia, então, é fazer mais implementações de código Bitcoin . Dessa forma, se uma implementação tiver um bug desastroso que trava a rede, as outras implementações ainda podem ficar bem, mantendo o Bitcoin como um todo funcionando.

E até certo ponto, isso já existe. Há implementações de código menos conhecidas, como Bitcoin Knots e Btcd. Em outros lugares no mundo das Criptomoeda , isso está se tornando a norma. Por exemplo, o Ethereum tem duas implementações dominantes, geth e parity, cada uma das quais pode ser usada por qualquer um que execute o software.

Ainda assim, muitos desenvolvedores de Bitcoin temem que adicionar mais de uma implementação possa introduzir problemas que seriam ainda piores do que a vulnerabilidade da semana passada.

"O que muitas pessoas não percebem é que ter pessoas executando implementações diferentes torna mais fácil para os invasores particionarem a rede", contribuidor do Bitcoin CORE, Andrew Chow argumentouem uma conversa descrevendo os prós e os contras.

Dessa forma, os desenvolvedores T necessariamente concordam sobre o que exatamente precisa ser feito.

Theymos talvez tenha expressado melhor quando disse:

"T sei exatamente como isso pode ser evitado de acontecer novamente, mas sei que seria um erro da comunidade ignorar esse bug só porque ele acabou sendo inofensivo dessa vez."

Escudo de metalimagem via Shutterstock

Alyssa Hertig

Repórter colaboradora de tecnologia na CoinDesk, Alyssa Hertig é uma programadora e jornalista especializada em Bitcoin e Lightning Network. Ao longo dos anos, seu trabalho também apareceu na VICE, Mic e Reason. Atualmente, ela está escrevendo um livro explorando os meandros da governança do Bitcoin . Alyssa possui alguns BTC.

Alyssa Hertig