O que mantém a rede de Bitcoin funcionando é um conjunto de regras. Seiscentos e quarenta e seis mil linhas de código — que determinam como as transações são processadas e definem o limite monetário do Bitcoin — são armazenadas em um único repositório público na plataforma de hospedagem de arquivos GitHub.
Apenas alguns poucos e selecionados têm acesso aos códigos.
Embora a rede do Bitcoin seja descentralizada, este é indiscutivelmente o elemento mais centralizado — e potencialmente sua maior fraqueza. O que aconteceria se alguém conseguisse se infiltrar nesse código e inserisse um bug na própria rede do Bitcoin? Um governo poderia fazer uma força-tarefa para encerrar todo o sistema?
Decidimos realizar este experimento hipotético, para testar a rede Bitcoin até seu limite e analisar se existe alguma potencial fraqueza nela. Conversamos com especialistas e desenvolvedores de Bitcoin para entender como o sistema funciona e se um ataque poderia realmente acontecer.
O que descobrimos é que existem muitas áreas para possíveis ataques, mas o sistema é bastante robusto para lidar com elas. Veja a seguir como seria um ataque como esse.
Quem são os mantenedores do Bitcoin?
Primeiro, precisamos entender como o sistema funciona.
Os mantenedores do Bitcoin Core são as únicas pessoas que podem fazer alterações materiais no código do Bitcoin no repositório GitHub. Embora seu site oficial não especifique exatamente quem tem essa responsabilidade, de acordo com detetives do site bitcointalk.org, apenas seis pessoas têm esse acesso especial. São eles: Wladimir van der Laan, Jonas Schnelli, Marco Falke, Samuel Dobson, Michael Ford e Pieter Wuille.
O Bitcoin é um projeto de código aberto, então os mantenedores não são nomeados formalmente. Dessa forma, o privilégio é estendido a uma base ad hoc criada pelos mantenedores existentes quando alguém demonstra as qualificações certas para conseguir um lugar na mesa.
Gavin Anderson, fundador da The Bitcoin Foundation, supostamente elegeu Van der Laan como o principal mantenedor do Bitcoin — o principal responsável por enviar alterações para o Bitcoin Core.
Para atualizar a base de código do Bitcoin, a equipe de mantenedores da criptomoeda revisa o código proposto por um dos milhares de desenvolvedores de Bitcoin e, se este código for bom o suficiente, é aprovado.
É aqui que entram as chaves PGP.
Cada mantenedor do Bitcoin tem acesso a uma chave PGP, que significa Pretty Good Privacy (“uma privacidade muito boa”, em português). Essas chaves são usadas para assinar, criptografar e descriptografar textos, e-mails, arquivos e outras formas de comunicação ou informação.
Como a base de código do Bitcoin é armazenada publicamente no GitHub, qualquer pessoa pode propor uma mudança. Para impedir que a base de código seja alterada ad infinitum por qualquer pessoa, nenhuma mudança é confirmada até que um mantenedor aprove-a com sua chave PGP.
Jameson Lopp, CTO do provedor de soluções de autocustódia Bitcoin Casa, disse que o papel do mantenedor não é algo tão importante assim. “Embora haja apenas um punhado de contas de ‘mantenedor’ do GitHib que a nível organizacional têm a capacidade de mesclar o código no branch master, essa é mais uma função de zelador do que uma posição de poder.”
Mas ele também gosta da frase: “Não confie, verifique.” Então, vamos fazer exatamente isso.
Acesso não autorizado ao Bitcoin Core
Não importa a forma como acontecer, se alguém for atacar o sistema – até mesmo alguém que trabalhe para o GitHub – precisará ter acesso a uma das chaves PGP dos mantenedores.
“Alguém que trabalha no GitHub poderia alterar maliciosamente o código no repositório Bitcoin Core. É por isso que eles assinam as autorizações com uma chave PGP. Se o código no GitHub foi alterado de forma maliciosa, as assinaturas não corresponderão”, disse o pesquisador de Bitcoin Andrew Yang ao Decrypt.
Mas e se um invasor realmente acabar colocando as mãos em uma chave PGP?
“Se uma dessas chaves vazar, um invasor poderia potencialmente modificar o código no repositório”, disse Elias Strehle, pesquisador do Blockchain Research Lab, ao Decrypt.
Se isso acontecer, no entanto, os mantenedores do Bitcoin têm uma resposta – pelo menos teoricamente.
“Presumo que os mantenedores do Bitcoin criariam rapidamente um novo repositório com novas chaves PGP, carregariam o código não danificado e pediriam à comunidade para usar o novo em vez do repositório de Bitcoin Core corrompido”, acrescentou Strehle.
Portanto, esse ataque provavelmente falharia, mas um trabalho interno poderia ser mais prejudicial.
E se um mantenedor decidir atacar o sistema?
Até agora nós já entendemos quem são os mantenedores do Bitcoin, e que atacar o Bitcoin Core roubando uma chave PGP de um mantenedor provavelmente não funcionará. Agora, vamos considerar o que aconteceria se um dos próprios mantenedores do Bitcoin fosse comprometido, ou até mesmo decidisse atacar o sistema.
Teoricamente, um mantenedor traidor poderia carregar um código malicioso, escondê-lo à vista de todos e torcer para que ninguém perceba a ação.
“Devido à diversidade de pessoas que precisam aceitar qualquer mudança, é muito difícil inserir uma mudança maliciosa no Bitcoin Core, mas talvez fosse possível como parte de uma atualização que a maioria das pessoas aprovou”, Harry Halpin, CEO da Nym Technologies – uma equipe de programadores que trabalha com privacidade na Internet — disse ao Decrypt, acrescentando: “Uma mudança verdadeiramente problemática teria que se infiltrar em uma atualização que a maioria das pessoas aprova!”
No entanto, é improvável que isso funcione. Por um lado, é improvável que o resto dos mantenedores do Bitcoin – ou qualquer um dos milhares de desenvolvedores do Bitcoin – deixem de perceber o código malicioso. Mas mesmo que isso aconteça, há outra defesa.
“Eu entendo que o código malicioso seria identificado pelo script de verificação de assinaturas na próxima vez que alguém enviar uma solicitação de pull ou executar testes”, disse o desenvolvedor de Bitcoin Thomas Kerin ao Decrypt. Em outras palavras, se um mantenedor desonesto tentasse enterrar algum código malicioso na base de código sem ser percebido, na próxima vez que uma atualização fosse realizada, isso resultaria em uma contradição no código.
“A atenção de cada desenvolvedor se voltaria imediatamente para entender o que aconteceu”, acrescentou Kerin.
Se é improvável que um mantenedor desonesto tenha sucesso em sua tentativa de danificar o código do Bitcoin, talvez os mantenedores não sejam tão poderosos – ou importantes – como parecem à primeira vista. Até agora, o Bitcoin parece relativamente seguro, mas nosso experimento hipotético ainda não acabou.
E se todos os mantenedores fossem sequestrados?
Vamos considerar essa situação hipotética, de que que todos os mantenedores foram sequestrados, a notícia não se espalhou rápido o suficiente para a comunidade e um grande número de operadores de nó de Bitcoin aceitou um código malicioso de um invasor.
Alguns dos governos mais poderosos do mundo não fazem questão alguma de que as moedas descentralizadas ganhem força, então é possível que um desses governos poderosos tente prejudicar a rede Bitcoin.
Em uma primeira opção, poderia haver uma aquisição aberta do Bitcoin, onde o agente malicioso faz questão de que o mundo veja suas ações.
Todos os mantenedores – incluindo Van der Laan – seriam presos, e o agente malicioso imediatamente começaria a tentar forçar uma atualização prejudicial ao Bitcoin Core. Essa abordagem provavelmente não teria sucesso. “A comunidade bifurca o repositório, pegando o último commit válido e recomeça a partir daí”, disse Kerin ao Decrypt.
Mas há uma segunda abordagem, mais tortuosa: uma aquisição secreta. Aqui, o protagonista pode sequestrar os mantenedores, roubar as chaves PGP e liberar um código-fonte secreto de backdoor que eles construíram no Bitcoin Core. Mas este cenário também tem suas limitações.
“Eu não acredito que você conseguiria fazer isso em tantos países sem a família espalhar a notícia”, disse Kerin.
De qualquer forma, se algo assim acontecesse, o Bitcoin provavelmente teria um fork.
“Os nós manipulados e os nós saudáveis provavelmente seriam incapazes de chegar a um consenso sobre o status do blockchain, criando assim uma bifurcação onde um lado é malicioso e outro é saudável”, disse Strehle.
Além disso, em vez de ser implantado automaticamente na vasta rede de nós Bitcoin, cada operador de nó pode decidir se aceita ou não a nova atualização. Isso evita forçar códigos indesejados a usuários que não concordam com a atualização em si e atua como uma ótima defesa para essa situação hipotética.
“O código do repositório não é enviado para os nós. O código do invasor só pode se tornar ativo se os operadores de nó ativamente aproverem-no no repositório”, disse Strehle (a ênfase é nossa), acrescentando que, no caso de um hack, isso pode acontecer a curto prazo, mas a notícia se espalhará rapidamente na comunidade.
Os mineradores de Bitcoin se protegerão
Outra proteção é a maneira como os mineradores de Bitcoin são incentivados a verificar se existem códigos maliciosos — e se livrar deles caso se confirme.
Adam Back, CEO e cofundador da Blockstream, empresa de tecnologia de blockchain, disse ao Decrypt que vale a pena enfatizar o quão improvável é para um operador de nó querer atualizar para um código malicioso. “Não acho que essa situação prejudique outras pessoas, além da própria proteção financeira dos operadores de nós”, disse Back.
Isso acontece porque cada operador de nó tem a opção de extrair atualizações do repositório GitHub. Como Back acrescentou: “Um nó que encaminha blocos inválidos será desconectado por outros nós, e um nó que envia blocos antigos será ignorado e substituído por outros nós que enviam blocos mais atualizados”.
Em outras palavras, é muito improvável que o código do invasor seja aceito por um número suficiente de operadores de nó para resultar em uma atração real. “Ficaria muito evidente que o blockchain não combina e, portanto, o golpe falharia e este código seria rejeitado”, disse Jason Deane, analista de Bitcoin da Quantum Economics, ao Decrypt.
Portanto, se um ataque liderado por um governo soa como algo irreal para você, é porque é.
Os mantenedores e as chaves secretas deixam os oponentes da centralização um pouco descontentes, mas, no final das contas, o Bitcoin é aberto e qualquer um pode continuar de onde o trabalho correto parou.
“Se você é um hacker e consegue uma chave PGP para o repositório Bitcoin Core, você pode ser comparado a alguém correndo nu em um campo de futebol”, concluiu Strehle, acrescentando: “Você pode chamar bastante atenção, causar confusões, talvez interromper o jogo um pouco, mas é só isso.”
*Traduzido e editado com autorização da Decrypt.co