Como a baixa entropia ainda causa milhões em perdas no mercado cripto

Sem padrões de entropia obrigatórios, a próxima perda bilionária pode já estar acontecendo.

Author logo
Patrick Dike-Ndulue
Atualizado
Post image

Em 31 de julho de 2026, um invasor esvaziou cerca de 500 carteiras de Bitcoin em apenas 25 minutos. O ataque movimentou aproximadamente 594 BTC, algo em torno de US$ 38 milhões, e todas as carteiras afetadas pertenciam a pessoas que haviam comprado uma carteira de hardware justamente para evitar esse tipo de situação.
 

Coinkite disclosed that COLDCARD firmware had been generating keys using a software pseudorandom number generator rather than the hardware generator built into the device. Two functions in the codebase shared the same name and signature, so the linker selected the wrong one, and the build produced no warning.
 

Esse é só o caso mais recente de uma longa lista. Na última década, as maiores perdas em criptomoedas não vieram de ataques sofisticados, mas sim de algo mais básico: randomness that was not random enough.

O que está por trás da chave privada?

Carteiras de criptomoedas — seja em app, extensão de navegador ou dispositivo de hardware — dependem de uma tarefa feita corretamente: gerar números que ninguém mais consiga adivinhar ou recriar. É isso que entropia significa neste contexto: o grau de imprevisibilidade em um número gerado.


Entropy is the raw randomness a wallet uses to create a private key, measured in bits. More bits mean a larger space of keys that an attacker must search. It enters a wallet at setup. Every key, address, and signature after that follows fixed mathematical rules, so no new randomness arrives later.

Fonte de entropia

Em teoria, uma carteira pode obter aleatoriedade de um pseudorandom number generator (PRNG): um algoritmo que estica uma pequena quantidade de entropia “real” até o quanto for necessário, mas só se a semente inicial for realmente imprevisível. 

Softwares rodando em abas de navegador ou em um celular recém-ligado costumam começar em uma espécie de “câmara de privação sensorial”. Para gerar um número verdadeiramente aleatório, o programa precisa de ruído: entradas imprevisíveis vindas do mundo fora do processamento puro. Isso pode vir de variações de tempo no processador, movimentos do mouse ou componentes de hardware especializados.

Nos primeiros milissegundos após ligar um dispositivo, esses reservatórios de ruído podem estar vazios ou só parcialmente inicializados. Se uma biblioteca criptográfica chamar o gerador de números aleatórios cedo demais, pode estar extraindo de um poço raso — gerando números tecnicamente aleatórios, mas vindos de um espaço pequeno o suficiente para ser exaustivamente pesquisado.


Browsers add their own constraints. JavaScript’s Math.random() was never designed for security, and even the safer crypto.getRandomValues() depends on the operating system’s underlying entropy pool. If that pool is weak, as it can be in mobile sandboxes, virtual machines, or stripped-down IoT devices, the randomness is compromised before it ever reaches the code that generates your private key.


Randomness na assinatura de transações

Ao assinar uma transação de Bitcoin ou Ethereum, você não usa sua chave privada diretamente. Em vez disso, é gerado um nonce: um número aleatório de uso único, combinado à chave privada no algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm) para gerar a assinatura.

Mas aqui está o ponto: se o mesmo nonce for usado duas vezes com a mesma chave privada, a matemática entrega tudo que um atacante precisa para descobrir essa chave.
Assinaturas ECDSA são um par de números, (r, s), que satisfazem uma equação específica envolvendo:

  • a chave privada (d),
  • o nonce (k), e
  • a mensagem da transação já em hash (z).

Se k for o mesmo para duas mensagens diferentes, as equações se alinham, permitindo que qualquer pessoa que veja ambas as assinaturas calcule k. Uma vez que k é conhecido, d — a chave privada — pode ser obtida com algumas multiplicações e um inverso modular.


Em 2013, flaw in Android’SecureRandom function caused early Bitcoin wallets on the platform to produce predictable nonces. Funds vanished from wallets before most users had any idea there was a problem.


Diferente de um erro comum de programação, não é possível detectar aleatoriedade ruim apenas lendo o código-fonte. As chamadas de função podem parecer corretas, mas, a não ser que se meça de fato os bits gerados e se faça testes estatísticos para verificar sua imprevisibilidade, uma falha fatal pode ficar escondida por meses ou anos, esperando alguém paciente o suficiente para explorar.

 

O motivo pelo qual a entropia segue sendo uma vulnerabilidade persistente pode ser resumido em:

  • Startup entropy drought: Dispositivos recém-ligados podem não ter acumulado ruído ambiental suficiente para alimentar PRNGs.

  • Browser limitations: JavaScript’s Math.random() is not secure; even crypto.getRandomValues() depends on the host environment’s entropy pool.

  • Unsafe tooling: Geradores de endereços personalizados, scripts offline ou bibliotecas mal mantidas frequentemente economizam na aleatoriedade para ganhar velocidade ou reprodutibilidade.

  • Human input: “Brainwallets” e frases escolhidas por usuários já foram quebradas apenas com tentativas de dicionário.

Criptógrafos há tempos preferem hardware random number generators (HRNGs), também chamados de true RNGs. Eles convertem fenômenos físicos como jitter eletrônico, ruído térmico e decaimento radioativo em bits aleatórios, podendo se auto-testar continuamente para falha ou viés.

Como o hardware resolve isso

Em sistemas de alta segurança, a solução é direta: gerar as chaves dentro de um chip que contém um HRNG certificado, sem nunca duplicar essas chaves.

A secure element is a purpose-built, tamper-resistant microcontroller. It is a fortified chip designed to store secrets and perform cryptographic operations without revealing the underlying keys. They are the same class of component used in passports to prevent cloning, SIM cards to authenticate devices to mobile networks, and contactless payment cards to authorize transactions.


A secure element can house a hardware random number generator that draws its unpredictability from physical noise, such as thermal fluctuations or oscillator jitter, rather than from mathematical algorithms alone. 


These HRNGs are not just “once-and-done” devices. Under standards such as NIST SP 800-90B, they must perform continuous health tests, checking every output stream for statistical bias, stuck bits, or other failures that could degrade randomness over time. If anything looks suspicious, the chip can halt key generation immediately. In a good hardware wallet, the secure element’s HRNG feeds randomness directly into the key-generation process inside the chip itself. 


Nem todo “hardware” é igual

O termo carteira de hardware cobre uma ampla variedade de projetos, e nem todos oferecem o mesmo nível de proteção para aleatoriedade e isolamento de chaves.


Na base estão dispositivos baseados em microcontroladores de uso geral, chips projetados para flexibilidade e não para resistir a ataques físicos ou de canal lateral. Muitos deles incluem um gerador básico de números aleatórios. 


Ainda assim, pode ser um pseudorandom generator alimentado pelo estado interno do dispositivo, e não um HRNG totalmente em conformidade com os padrões exigidos. Nesses projetos, a geração da chave pode acontecer no firmware, com a chave privada resultante armazenada temporariamente em RAM ou memória flash. Isso significa que uma falha no firmware, um ataque de canal lateral bem-sucedido ou adulteração física podem expor a chave.
 

Já as carteiras baseadas em secure element mantêm tanto a fonte de entropia quanto a lógica de geração de chaves dentro de um ambiente resistente a adulterações. Esse modelo também impõe controle de acesso rigoroso: operações criptográficas (assinatura, derivação) são executadas dentro do chip, e apenas a assinatura final ou a chave pública saem dele — nunca o segredo em si.

Padrões já existem

O problema da aleatoriedade não é uma questão sem solução científica. Criptógrafos já definiram o que é uma boa entropia. O National Institute of Standards and Technology (NIST) dos EUA publicou a série de padrões SP 800-90, que divide o problema em partes claras.


SP 800-90B detalha como avaliar uma fonte de entropia — o processo físico ou de software que produz bits imprevisíveis. Exige análise estatística rigorosa para estimar a entropia real de cada fluxo de bits, além de testes internos para monitorar continuamente a fonte em busca de viés ou falha.


SP 800-90C explica como combinar essa entropia com deterministic random bit generators (DRBGs), para que a saída permaneça forte mesmo se uma fonte se degradar.


Um dispositivo em conformidade não gera números aleatórios uma vez só e torce pelo melhor. Ele monitora continuamente seu próprio funcionamento: se o padrão de ruído do HRNG muda, se um bit “trava” ou se a saída não passa nos testes estatísticos, o sistema interrompe a geração de chaves para evitar chaves fracas.

Como saber se você está em risco

A maioria dos usuários não consegue medir entropia diretamente, mas é possível questionar onde e como suas chaves foram geradas. Se foram criadas “em uma página web” ou “em um app Android antigo”, especialmente antes de meados da década de 2010, essas chaves provavelmente são fracas. A abordagem mais segura é criar uma nova carteira em um dispositivo de hardware que use aleatoriedade certificada e documentada — e então transferir seus fundos para ela.

Linha do tempo dos ataques de entropia 

Weak entropy removes the need to work backward. The attacker enumerates the small set of keys the broken generator could have produced, derives the addresses for each candidate, and then checks those addresses against the blockchain for a balance. Here's a history:

  • 2018—The IOTA seed generator scam: Usuários foram orientados a criar as seeds de suas carteiras usando um site. O operador do site mantinha uma cópia dessas seeds e drenou os fundos depois, roubando cerca de US$ 4 milhões. Aqui, a aleatoriedade era zero: o invasor já sabia os números.
     

  • 2019—The Blockchain Bandit: Pesquisadores de segurança identificaram 732 chaves privadas fracas de Ethereum em circulação. Um invasor desconhecido monitorava esses endereços há anos, drenando cerca de 45.000 ETH assim que fundos apareciam.
     

  • 2022—Profanity’s vanity address catastrophe: A ferramenta open source Profanity gerava endereços personalizados de Ethereum a partir de seeds com apenas 32 bits de entropia, cerca de 4 bilhões de possibilidades. Uma GPU moderna pode vasculhar esse espaço em poucas horas. A Wintermute, uma market maker de Londres, perdeu cerca de US$ 160 milhões dessa forma.
     

  • 2023—Trust Wallet browser extension flaw: Em uma divulgação da equipe de segurança da Ledger, foi constatado que a extensão de navegador gerava seeds de carteira com cerca de 32 bits de entropia. O problema foi corrigido rapidamente e a Trust Wallet reembolsou alguns usuários, mas por meses qualquer pessoa que criasse uma carteira ali estava em risco.
     

  • 2025—The LuBian allegation: A denúncia da Arkham ainda não foi verificada, mas se a perda de 127.426 BTC realmente for resultado de geração previsível de chaves, seria o maior exemplo de como um único erro na criação pode condenar bilhões em ativos. 
     

  • 2026: COLDCARD: Coinkite disclosed that a software pseudorandom generator had replaced the intended hardware generator in shipped firmware. The fallback entered the upstream dependency in May 2018 and reached key generation in March 2021.

    A Coinkite estima cerca de 40 bits de espaço de busca efetivo no hardware Mk3 e cerca de 72 bits nos modelos posteriores, que misturavam dados do secure element. Ambos os números ficam abaixo da meta de 128 bits.

    Já existia uma proteção para evitar exatamente isso. Ela testava se uma macro de configuração estava definida, e não se seu valor era diferente de zero; a macro foi definida como zero, então o teste passou e o erro nunca foi disparado.

Considerando trocar o COLDCARD?

A Tangem gera sua chave dentro de um chip secure element certificado, usando um hardware random number generator. 

Se você está cansado de se preocupar com seed phrases, nosso setup sem seed significa que não há frases de 12 ou 24 palavras para anotar, fotografar ou perder — justamente o que está por trás da maioria dos hacks de carteiras do passado.

Auditado de forma independente por Cure53, Kudelski e Riscure. Feito para esse momento.

Mova suas moedas para onde a aleatoriedade é realmente aleatória. Conheça a Tangem Wallet.

Author logo
Autor Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
Analisado por Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.