Como a blockchain é hackeada: ataques em redes descentralizadas

Author logo
Patrick Dike-Ndulue
Post image

Principais insights

O artigo explora as diferentes formas de ataques às redes blockchain, destacando que, embora sejam mais seguras que bancos de dados centralizados, ainda estão vulneráveis a ameaças como ataques de 51%, gasto duplo, ataques Sybil, mineração egoísta, vulnerabilidades em smart contracts e roubo de chaves privadas. Exemplos reais ilustram as perdas financeiras significativas, principalmente em projetos menores. O texto conclui que, à medida que as medidas de segurança evoluem, os ataques também se tornam mais sofisticados, tornando a vigilância e a inovação constantes essenciais para a segurança das blockchains.

A blockchain — um livro-razão distribuído que funciona como um banco de dados — é uma solução muito mais confiável para armazenar informações e realizar transações do que bancos de dados centralizados. Mesmo assim, pode ser alvo de ataques, que acontecem com frequência preocupante. Os ataques em redes descentralizadas variam, mas na maioria das vezes têm como objetivo explorar brechas no mecanismo de consenso e assumir o controle do hash rate da blockchain. Isso permite que agentes maliciosos alterem dados no registro, causem confusão e roubem criptomoedas.

Neste artigo, vamos analisar como ocorrem os ataques à blockchain e quais são as ameaças mais comuns.

Ataque de 51%

O ataque de 51% é a principal ameaça às blockchains. Ele se aplica a redes que usam o algoritmo de consenso proof-of-work (PoW).

Como funciona o ataque

A ideia básica é assumir o controle de mais de 50% do poder computacional da rede, ou seja, do hash rate. As consequências são parecidas com ter participação majoritária em uma empresa: você pode tomar decisões e fazer o que quiser com a companhia. No caso do hash rate, isso significa controlar 51% do poder computacional da blockchain.

Se os atacantes controlam mais de 50% do poder de mineração, podem reordenar transações, anular confirmações e impedir que outros mineradores processem criptomoedas. Ou seja, podem causar caos e levar a falhas na rede. Também é possível agir de forma discreta, como gastar a mesma criptomoeda várias vezes (gasto duplo).

Como alguém consegue tanto poder? Existem várias opções, incluindo alugar grande quantidade de equipamentos de mineração e assumir o controle — ou até criar — um pool de mineração. Outra possibilidade é enganar outros mineradores ou partir para o caminho ilegal, executando uma botnet de mineração com auxílio de malware.

Vale a pena o risco?

No entanto, usar esse método para atacar uma blockchain grande, como o Bitcoin, onde a rede possui muitos nós e os custos de equipamentos e eletricidade são altos, é praticamente impossível. Geralmente, também não compensa o esforço. Projetos menores, porém, não estão imunes a esse tipo de ameaça.

Várias redes já sofreram ataques de 51%, incluindo ZenCash (ZEN), Litecoin Cash (LCC), MonaCoin (MONA), Verge (XVG) e Bitcoin Gold (BTG).

Exemplos reais

Após realizar um ataque de 51%, os invasores podem explorar todas as vulnerabilidades do protocolo. Em geral, o objetivo é o gasto duplo.

O ataque bem-sucedido à rede ZenCash (ZEN) em 2018 rendeu aos atacantes US$ 550 mil. Eles conseguiram gastar duas vezes duas transações significativas, de 13.000 e 6.600 ZEN, respectivamente. O ataque durou 110 blocos e 4 horas, e o custo para a rede foi pequeno em comparação ao valor roubado, cerca de US$ 30 mil.

Outro exemplo é o Ethereum Classic, que foi atacado três vezes em 2020 por um hacker que alugou poder computacional do serviço NiceHash. Entre julho e agosto, o hash rate do ETC caiu drasticamente, e o invasor aproveitou. Ele alugou GPUs com hash rate superior a 51% da rede Ethereum Classic, permitindo gastar mais de 1 milhão de ETC, que valiam mais de US$ 9 milhões na época.

O custo do aluguel do hash rate foi de centenas de milhares de dólares, então o “lucro” final exato é desconhecido. Infelizmente, há muitos casos semelhantes.

Gasto duplo

O problema do gasto duplo surgiu muito antes da blockchain e das criptomoedas.

Em resumo, ao trocar um item por outro, se você não concluir a transação no momento e prometer cumprir sua parte depois, sempre existe o risco de não ter mais o ativo futuramente.

Em teoria, é possível fornecer um documento prometendo pagamento (contrato, nota, etc.) para duas ou três partes, mesmo que o ativo prometido só exista em uma única cópia. Isso é o gasto duplo. Na blockchain, o princípio é exatamente o mesmo.

Como funciona o gasto duplo

O gasto duplo ocorre quando um atacante gasta as mesmas moedas duas ou mais vezes. Por exemplo, um usuário que possui 1 BTC envia para vários destinatários ao mesmo tempo e recebe algo em troca. No final, apenas uma pessoa realmente recebe esse 1 BTC.

Quando a rede está funcionando corretamente, apenas uma transação recebe aprovação da maioria dos nós, e isso é o que normalmente acontece. Medidas de segurança são incorporadas às blockchains para evitar esse tipo de ataque. Ainda assim, existe o risco de gasto duplo.

Há diferentes formas de conseguir gastar duas vezes, sendo o ataque de 51% um exemplo. Quando um atacante controla mais da metade do hash rate, pode gerar novos blocos de forma independente, modificá-los e rejeitar certas transações enquanto confirma apenas as “necessárias”.

atack_img.png

Este exemplo mostra que os atacantes criaram um fork da cadeia principal e confirmaram transações falsas enquanto cinco transações legítimas foram processadas.

Durante esse tempo, seria possível enviar moedas para uma exchange, concluir transações que exigem de 1 a 5 confirmações na blockchain e, em seguida, receber outra criptomoeda ou dinheiro fiduciário em troca.

Depois, quando a “janela de ataque” se fecha, a série de blocos falsos é descartada, mas para o atacante, o cenário é o seguinte: ele colocou os tokens em uma exchange e os vendeu, mas, quando a blockchain restabelece o consenso, ainda possui todas as moedas na blockchain original. O que foi vendido, na verdade, era uma criptomoeda “falsa”.

Ataque Finney

O ataque Finney leva esse nome em homenagem ao primeiro destinatário de Bitcoin, Hal Finney, que também foi o primeiro a sugerir a possibilidade de gasto duplo de criptomoedas na blockchain.

O ataque Finney é uma variante do gasto duplo que pode ocorrer quando uma contraparte aceita uma transação não confirmada.

Em essência, um minerador pode gerar um bloco e incluir uma transação de seu endereço “A” para outro endereço seu, “B”, sem transmiti-la imediatamente para a rede. Em seguida, executa outra transação do endereço “A” para “C”, que pertence a outro usuário. Se esse usuário aceitar a transação sem confirmação da rede, o golpista transmite o bloco anterior contendo a primeira transação. Assim, a transação de “A” para “C” se torna inválida, e o atacante obtém duplo benefício.

Ataque de corrida (Race attack)

Esse tipo de ataque é uma corrida entre duas transações. Um golpista envia as mesmas moedas do mesmo endereço, em dispositivos diferentes, para dois destinatários ao mesmo tempo. Ambos enviam seus produtos ou criptomoedas, mas a segunda transação processada é invalidada.

Esse ataque só é possível se o comerciante aceitar uma transação não confirmada. Para evitar cair nesse golpe, basta aguardar pelo menos uma confirmação da operação.

Ataque Sybil

Esse ataque recebe o nome de Sybil, personagem principal do livro de Flora Rheta Schreiber, que relata seu tratamento para transtorno dissociativo de identidade. A ideia é que hackers preencham a rede com nós sob seu controle até “cercar” o nó da vítima, controlando todas as transações.

Explorando vulnerabilidades

Isso é praticamente impossível em grandes redes como o Bitcoin, já que os nós selecionam outros nós aleatoriamente para confirmar transações.

Por isso, ataques Sybil geralmente têm como alvo novos projetos cripto. Ao se conectar à rede, um nó pode não conhecer os endereços IP de nós confiáveis e acaba solicitando essas informações.

Se o pedido chegar a um nó do atacante, ele pode responder com os endereços dos nós que controla.

Isso permite ao hacker:

  • Bloquear as transações do usuário, desconectando-o da blockchain principal;
  • Decidir a qual bloco “conectar” o usuário (geralmente blocos onde ocorre gasto duplo);
  • Rastrear todas as transações do usuário.

Em resumo, os nós controlados pelo atacante podem convencer outros nós a aprovar dados incorretos.

Mineração egoísta (Selfish mining)

Blockchains baseadas em PoW possuem uma vulnerabilidade que mineradores desonestos podem explorar: a capacidade de confirmar múltiplos blocos simultaneamente.

O problema do fork

Se dois blocos são gerados ao mesmo tempo e ligados aos anteriores, a blockchain se divide em duas cadeias. O fork torna a arquitetura da blockchain mais complexa e desacelera as transações, por isso os mineradores devem transmitir imediatamente os dados de confirmação aos outros nós após confirmar um bloco, para evitar conflitos.

Mesmo assim, mineradores egoístas escondem essas informações dos demais participantes e enganam os “honestos”, que continuam gerando uma nova cadeia de blocos e aumentam o tamanho do fork da rede.

Cenário prático

Imagine que um minerador egoísta minera o bloco 2.001, mas não o transmite à rede. Os demais nós continuam minerando novos blocos a partir do 2.000. Agora existem dois blocos reivindicando ser o 2.000º: um de um minerador honesto e outro do atacante. Ambos estão ligados a seus próprios blocos 2.001.

Os fraudadores continuam gerando blocos e os adicionam à sua cadeia, que cresce. Depois, transmitem os dados sobre o bloco 2.001 que mineraram; a rede reconhece que foi encontrado primeiro, classifica a cadeia egoísta como válida e descarta os blocos adicionados pelos nós honestos no mesmo período. Como resultado, os mineradores honestos não recebem recompensas e seu trabalho é desperdiçado.

Ataques de roteamento (Routing attacks)

Esses ataques não estão diretamente ligados a falhas de segurança da blockchain em si. Eles exploram vulnerabilidades nos protocolos de conexão dos provedores de internet (ISPs).

Ao obter acesso ao protocolo, um hacker pode publicar rotas falsas. Esse tipo de ataque pode ser usado para gasto duplo. Se houver atraso na entrega de novos blocos, eles não serão visíveis para a rede, criando uma janela para gastar as criptos duas vezes.

Explorando vulnerabilidades em smart contracts

Smart contracts são programados por pessoas, e pessoas cometem erros.

O custo dos erros de código

Diversas vulnerabilidades podem ser encontradas em smart contracts. Pode ser um problema complexo e difícil de detectar, ou até mesmo um simples erro de digitação no código. De qualquer forma, qualquer falha pode resultar em perdas de milhões de dólares.

Segundo relatório da empresa de segurança Web3 Beosin, de 30 de junho de 2023, o valor total de criptomoedas perdido por fraudes, hacks e golpes no primeiro semestre de 2023 foi de US$ 656 milhões. A maior parte (56%) das criptos roubadas foi perdida devido a vulnerabilidades em smart contracts.

Não são apenas as falhas nos próprios smart contracts que podem levar a hacks na blockchain, mas também a linguagem em que são escritos. Em 30 de julho de 2023, quatro pools de liquidez da Curve Finance foram comprometidos devido a uma vulnerabilidade no Vyper, a linguagem de programação usada para criar os smart contracts da Curve. A Curve Finance é uma exchange descentralizada com tecnologia de market maker automatizado (AMM) e o principal hub de liquidez de stablecoins em DeFi. No total, cerca de US$ 60 milhões foram roubados, dos quais US$ 20 milhões foram recuperados por white hats e devolvidos à Curve. A maior parte do prejuízo veio do ataque ao principal pool CRV/ETH, que perdeu toda sua liquidez (cerca de US$ 40 milhões).

Ataques DDoS e dilatação de tempo

Ataques DDoS não têm como objetivo roubar criptos, mas sim prejudicar projetos cripto e desacreditar startups. Eles envolvem o envio de um grande número de transações inúteis, “poeira”, para a rede, dificultando sua operação, atrasando transferências de dados, atualizações da blockchain e a criação de novos blocos na cadeia.

Ataques a chaves privadas

Para garantir a confidencialidade da transmissão de dados em canais públicos na blockchain, utiliza-se criptografia assimétrica, ou seja, criptografia com chaves privadas e públicas. Essas chaves são vinculadas por um algoritmo matemático. Se você conhece a chave pública de alguém, pode criptografar uma mensagem para essa pessoa, que só poderá ler ao decifrar com a chave privada. Se você tem a chave privada, pode descobrir a chave pública — o contrário, porém, não é possível.

As chaves privadas dão acesso total a todos os criptoativos do usuário, por isso são alvo dos atacantes.

Vulnerabilidades e proteção

A forma mais fácil de obter acesso a uma chave privada e aos criptoativos associados é por meio de uma seed phrase, que pode ser obtida simplesmente roubando um papel com o código mnemônico, ou por outros métodos como engenharia social e ataques de phishing.

Para proteger sua chave privada e, consequentemente, todos os seus criptoativos, você pode confiar o armazenamento à Tangem Wallet. A carteira cripto Tangem não utiliza seed phrase, o que elimina o risco de roubo desse dado. A chave privada é gerada e armazenada nos chips de dois ou três cards (o card principal e os cards de backup), onde permanece e de onde não pode ser extraída.

Conclusão

É importante ter em mente que a blockchain enfrenta atualmente diversas ameaças, incluindo todos os ataques de grande repercussão citados acima, além de problemas específicos de cada rede, como erros de programação, métodos de criptografia e outros. Hackers estão constantemente buscando essas brechas e tentando explorá-las, seja identificando vulnerabilidades em smart contracts, explorando fragilidades da própria blockchain ou atacando exchanges de criptomoedas.

Ameaças hipotéticas

Existem outras formas de ataque que, por enquanto, são apenas hipotéticas:

  • Canibalismo entre pools (a destruição de um pool para prejudicar a operação da blockchain);
  • O ataque P + epsilon: segundo Vitalik Buterin, esse é um dos problemas mais preocupantes em redes PoW, e envolve oferecer uma espécie de suborno a outros participantes em troca de apoio a mudanças propostas na blockchain;
  • Timejacking (tentativas de manipular os timestamps das transações).

Por enquanto, parece que hackers não estão interessados nessas estratégias.

O que esperar do futuro

Existe apenas uma solução para tudo isso: aprimorar continuamente os mecanismos de segurança das redes descentralizadas. A experiência mostra, porém, que quanto maior o nível de proteção, mais sofisticados se tornam os métodos desenvolvidos por mineradores e hackers para burlá-la. Essa é uma batalha que provavelmente nunca terá fim. No mundo das finanças tradicionais, caixas eletrônicos são hackeados, cartões de crédito são roubados e bancos são assaltados. Não existe garantia de segurança absoluta.

Author logo
Autor Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Analisado por Rukkayah Jigam

Writer & editor covering digital assets and product updates.