Bitcoin: falha na Coldcard expõe seeds fracas
Muitas pessoas presumem que uma carteira de hardware de Bitcoin isolada da internet é segura por padrão. No entanto, o problema pode surgir antes mesmo de o dispositivo ficar offline. Se a seed nascer com pouca aleatoriedade, ela já carrega uma fraqueza estrutural, mesmo que a carteira assine transações fora da rede por anos.
A falha recente divulgada na Coldcard ilustra esse risco. Um dispositivo afetado podia gerar uma frase de recuperação comum, com 12 ou 24 palavras, e depois funcionar normalmente no uso offline. Porém, por trás disso, o gerador trabalhava com um conjunto muito menor de combinações. Assim, um invasor podia testar essas possibilidades em outra máquina, reconstruir seeds prováveis e comparar os resultados com endereços públicos registrados no blockchain do Bitcoin.
Nesse cenário, a segurança da carteira é decidida no momento da criação da seed. Antes de PIN, backup em aço, lacre antiviolação ou isolamento físico ajudarem, a chave precisa nascer de uma fonte real de aleatoriedade.
Falha de firmware reduziu a entropia na origem
O primeiro relato público sobre a falha da Coldcard descreveu um vetor recente de ataque. Seeds candidatas podiam ser geradas fora do aparelho, convertidas em endereços públicos e comparadas com a atividade visível no livro-razão público do Bitcoin.
A causa técnica foi pequena, mas decisiva. Em 1º de março de 2021, uma mudança de código transferiu a geração de seeds da Coldcard para uma nova biblioteca. No firmware de produção, uma configuração chamada MICROPY_HW_ENABLE_RNG estava definida como zero, ou seja, desativada. Entretanto, a integração verificava apenas se a configuração existia. Com isso, a simples presença do ajuste fez a geração seguir para o fallback determinístico Yasmarang do MicroPython, em vez de usar o gerador aleatório de hardware pretendido. Segundo a análise coordenada da Block, esse caminho afetado foi enviado no firmware 4.0.0 em 17 de março.
Embora a saída da carteira parecesse normal, o espaço de busca ficou drasticamente reduzido. A estimativa preliminar da Coinkite aponta cerca de 40 bits de espaço efetivo de busca para seeds afetadas dos modelos Mk2 e Mk3. Já para os modelos Mk4, Mk5 e Q afetados, a estimativa fica em aproximadamente 72 bits.
Além disso, a Block identificou um limite separado para dispositivos posteriores: no máximo 2^32 fluxos seguramente distinguíveis quando o estado de fallback e o histórico de chamadas permaneciam fixos. Já os números da Coinkite estimam o espaço efetivo que um invasor poderia percorrer na prática
Aviso de segurança
As duas análises colocam os aparelhos posteriores, antes da correção, dentro do intervalo afetado. No aviso de segurança da Coinkite, entram nessa lista os firmwares do Mk4 e Mk5 anteriores ao padrão 5.6.0 ou ao Edge 6.6.0X, além do firmware do Q anterior ao padrão 1.5.0Q ou ao Edge 6.6.0QX. Para Mk2 e Mk3, a Coinkite cita as versões 4.0.1 a 4.1.9, enquanto a Block afirma que o caminho começou em 4.0.0.
Atualizar para uma versão corrigida protege a criação de novas seeds. Mesmo assim, todas as seeds já existentes preservam a entropia que receberam no nascimento, e todo endereço derivado delas compartilha o mesmo segredo raiz.
Por consequência, quem usou uma versão afetada precisa verificar o aviso de segurança e criar uma seed totalmente nova com software corrigido e entropia confiável, salvo quando puder comprovar a exceção de uso de dados privados. Depois disso, os fundos precisam ser transferidos para a nova carteira. Gerar um novo endereço a partir do mnemonic antigo mantém a fraqueza original.
Perdas suspeitas e migração defensiva
Em 31 de julho, o Bitcoin Optech informou uma estimativa em evolução acima de 1.000 BTC. Em 2 de agosto, a Galaxy Research estimou 1.367 BTC suspeitos distribuídos em 4.585 endereços. Já um usuário do X identificado como Graham_Quantum afirmou que 18,25245043 BTC deixaram carteiras em 29 de julho.
18,25245043 BTC saíram de carteiras em 29 de julho.
<emGraham_Quantum, no X
O efeito colateral gerou um número muito maior por causa da movimentação defensiva. Um segundo levantamento sobre o caso constatou que 77.402 BTC saíram de faixas mais antigas de UTXO após a divulgação da falha.
Esse total representa a movimentação bruta de moedas antigas, incluindo migração preventiva. Portanto, ele mede uma onda de autoproteção, enquanto o número menor da Galaxy é uma estimativa em evolução de perda suspeita.
| Indicador | Classificação | Escopo | Limite importante |
|---|---|---|---|
| 1.367,05 BTC | Perda suspeita | Estimativa da Galaxy Research em 2 de agosto, em 4.585 endereços | Número atribuído e em evolução, sem total final do incidente |
| 77.402 BTC | Movimentação preventiva | Movimento bruto de faixas antigas de UTXO após a divulgação | Inclui migração defensiva e é separado de totais de roubo ou vendas |
Na prática, a falha produziu dois choques ao mesmo tempo: roubo e uma onda muito maior de migração racional.
Quando dados privados podem reduzir o risco
A documentação de dados da Coldcard calcula cerca de 2,585 bits de entropia para cada rolagem independente de um dado justo de seis lados. Cinquenta rolagens fornecem aproximadamente 129,25 bits de entropia bruta, patamar convencional para segurança de 128 bits. Já 99 rolagens entregam cerca de 255,91 bits, valor próximo da meta de 256 bits, antes de a carteira aplicar o procedimento documentado de conversão.
Esses números se alinham ao padrão amplamente usado BIP-39. Uma frase de 12 palavras codifica 128 bits de entropia e um checksum de 4 bits. Já uma frase de 24 palavras codifica 256 bits e um checksum de 8 bits.

O checksum ajuda a detectar erros de digitação. Ainda assim, a aleatoriedade vem do material subjacente. Hashes e formatação organizada podem dar aparência sólida a uma entrada fraca, enquanto o conjunto real de segredos possíveis continua pequeno. Em outras palavras, 12 palavras aparentemente confiáveis podem ter surgido de uma base muito rasa.
As rolagens físicas só ajudam quando o procedimento documentado da carteira as incorpora corretamente. O dado precisa ser adequado à tarefa, cada jogada deve ser genuína e independente, e a sequência precisa permanecer privada. Padrões reutilizados, fotografias, anotações na nuvem e inserção em um computador comum conectado à rede podem comprometer a independência ou o sigilo dessas rolagens.
No caso da Coldcard, a Coinkite afirma que a migração pode ser desnecessária apenas quando o usuário consegue comprovar que a seed final incorporou pelo menos 50 rolagens justas, independentes e privadas. Se houver dúvida, a orientação é migrar.
Dados importam porque a aleatoriedade gerada pelo aparelho exige que o usuário confie em toda a cadeia de hardware, firmware, processo de compilação e código de integração. Em contrapartida, um fluxo documentado de entrada manual acrescenta entropia controlada pelo proprietário e vinda de fora dessa cadeia.
Passphrase forte muda o ataque, mas não corrige a seed
Cerca de 50 rolagens miram 128 bits de segurança, e 99 visam aproximadamente 256 bits. Ainda assim, os usuários devem seguir o procedimento exato do dispositivo, sem improvisar a conversão.
Passphrases BIP-39 fortes e únicas também alteram o ataque de outra forma. Elas adicionam um segredo independente que o invasor precisa descobrir depois de encontrar o mnemonic. Porém, a entropia original da seed permanece inalterada. Além disso, toda passphrase, inclusive com erro de digitação, deriva uma carteira com aparência válida. Por isso, perder a frase exata pode deixar os fundos inacessíveis. O PIN do dispositivo cumpre outro papel.
Essa passphrase cria uma troca real. Ela pode funcionar como uma segunda barreira poderosa quando o dono consegue reproduzi-la e protegê-la. Por outro lado, um backup ruim transforma o mesmo recurso em um caminho para o bloqueio do próprio usuário.
Casos anteriores reforçam o alerta
O episódio da Coldcard é o caso mais recente, mas a mesma falha de origem já apareceu em carteiras muito diferentes.
Em 2023, a Ledger Donjon divulgou que certas versões da extensão de navegador da Trust Wallet usavam um caminho em WebAssembly alimentado por um valor de 32 bits do Mersenne Twister. Os mnemonics pareciam normais, mas vinham de cerca de quatro bilhões de valores iniciais possíveis. O escopo afetado era específico: versões 0.0.172 a 0.0.182 da extensão usando Trust Wallet Core anterior à 3.1.1. O National Vulnerability Database registra exploração em dezembro de 2022 e março de 2023.
Já a divulgação do Milk Sad mostrou uma versão mais intuitiva do mesmo risco no Libbitcoin Explorer 3.x. O comando bx seed usava um Mersenne Twister de 32 bits semeado pelo relógio e podia produzir o mesmo mnemonic sob as mesmas condições de tempo. Assim, conhecer o horário aproximado de criação dava ao invasor um intervalo muito menor para testar do que as palavras de recuperação sugeriam.
Pesquisadores encontraram mais de 2.600 carteiras de Bitcoin em uso ativo nas faixas afetadas e estimaram mais de US$ 900 mil em roubos relacionados, distribuídos por múltiplas cadeias com preços de agosto de 2023. Desse total, mais de 2.550 carteiras compartilhavam um padrão automatizado e podem ter pertencido a um único proprietário. Os pesquisadores também disseram que alguns esvaziamentos podem ter envolvido outras fragilidades.
Falha em um fallback de firmware
A falha apareceu com disfarces diferentes a cada vez. Na Coldcard, ela surgiu em um fallback de firmware. Em outros casos, a aleatoriedade fraca entrou por uma extensão de navegador e por uma ferramenta de linha de comando que confiava no relógio. Ainda assim, os segredos resultantes pareciam fortes na superfície, embora o conjunto real de possibilidades fosse perigosamente raso.
As orientações sobre custódia de Bitcoin costumam começar depois que a seed já existe: mantê-la offline, usar backups duráveis, separar responsabilidades e testar a recuperação. Tudo isso continua importante. Ainda assim, esse caso mostra que a linha de partida precisa voltar um passo. O isolamento físico protege o segredo que recebe. Primeiro, porém, a aleatoriedade precisa existir de fato.