Entre 01h31 e 01h56 UTC de 31 de julho de 2026 — vinte e cinco minutos — um atacante varreu 594 BTC, cerca de US$ 38 milhões, de aproximadamente 500 carteiras Bitcoin. Não houve phishing, não houve golpe de suporte, não houve senha vazada. As vítimas usavam Coldcard, uma das hardware wallets mais respeitadas do mercado, guardada em cofre, com as 12 ou 24 palavras anotadas em papel ou aço. Elas fizeram tudo certo.

O problema é que a seed dessas carteiras nunca foi realmente aleatória. Um erro de compilação introduzido em março de 2021 fez o firmware ignorar o gerador de números aleatórios de hardware e usar, no lugar dele, um PRNG determinístico de software. Durante cinco anos e quatro meses, todo mundo que gerou uma seed naquele aparelho recebeu uma chave que um computador comum consegue adivinhar.

Falha de RNG no Coldcard drenou 594 BTC de 500 carteiras Bitcoin
A falha estava no build, não na criptografia. Card: BitcoinP2P · Foto: Gareth Halfacree/Wikimedia (CC BY-SA 2.0)
Resumo rápido: um guard de pré-processador escrito com #ifndef em vez de #if deixou o build do Coldcard linkar o PRNG de fallback do MicroPython no lugar do TRNG de hardware. A seed de 128 bits virou, na prática, ~40 bits no Mk3 — espaço de busca trivial. Firmware novo não conserta seed velha: a entropia fraca já está assada na chave. Quem tinha passphrase BIP-39 ou gerou a seed com dados (dice rolls) passou ileso.
beta fechado · convites limitadosA DolaRamp gera a seed no seu aparelho — e a gente provou isso no código// carteira não-custodial de usdt, usdc e pyusd · android e iphone · liberamos em até 24hquero entrar

Antes de tudo: o que é Coldcard e o que é Coinkite?

Se você está chegando agora nesse assunto, vale separar duas coisas que a cobertura mistura o tempo todo.

Coinkite é a empresa. Uma fabricante canadense, sediada em Toronto e fundada em 2012, especializada em produtos físicos para Bitcoin. É uma das mais antigas e mais respeitadas do setor — o que explica por que este caso pegou tanta gente experiente.

Coldcard é o produto. Um aparelho físico, do tamanho de uma calculadora de bolso, que guarda a sua chave privada offline e assina transações sem nunca conectar na internet. É o que se chama de hardware wallet ou “carteira fria”. Você monta a transação no computador ou celular, passa para o aparelho (por cartão SD ou QR code), ele assina, e você devolve a transação assinada para a rede. A chave nunca sai de lá.

Ponto que confunde muita gente: o Coldcard não é um software que outras carteiras usam por baixo. Não é uma biblioteca embarcada em dezenas de apps. É o firmware do aparelho da própria Coinkite. A falha atingiu quem gerou a seed naquele aparelho específico, e não usuários de MetaMask, Ledger, Trezor ou qualquer outra marca. O firmware do Coldcard é de código aberto — foi justamente lendo esse código que o bug foi encontrado — mas isso é diferente de estar rodando dentro de outros produtos.

Quais produtos foram afetados (e quais não)

A Coinkite vende mais coisas além do Coldcard. O advisory é explícito sobre o recorte:

Produto O que é Situação
COLDCARD Mk2 / Mk3 Gerações antigas da hardware wallet (descontinuadas) Afetado — risco crítico
COLDCARD Mk4 / Mk5 Gerações atuais, com teclado e tela Afetado — risco menor
COLDCARD Q Modelo top, com teclado QWERTY, leitor de QR e pilhas AAA Afetado — risco menor
TAPSIGNER Cartão NFC que dá uma chave a carteiras de celular Não afetado
OPENDIME Pendrive que funciona como “cédula” de Bitcoin ao portador Não afetado
SATSCARD Cartão para transferir Bitcoin fisicamente, de mão em mão Não afetado
BLOCKCLOCK / SATSCHIP Relógio de dados da rede e chip colecionável Fora do escopo

Os três primeiros da lista de “não afetados” escapam por um motivo bem concreto: rodam bases de código completamente diferentes. Nunca passaram perto da função que quebrou.

Quanto custa um aparelho desses

Para dimensionar quem é o público atingido — e por que as carteiras varridas tinham saldos relevantes:

Modelo Preço (loja oficial) Em reais (aprox.)
COLDCARD Mk5 US$ 169,94 (de US$ 189) ~R$ 950
COLDCARD Q US$ 249,21 (de US$ 289) ~R$ 1.400
Mk3 / Mk4 Descontinuados — não estão mais à venda, mas seguem em uso na mão de milhares de pessoas

Somando frete e importação, um Coldcard no Brasil sai facilmente acima de R$ 1.500. Ninguém compra um aparelho desses para guardar R$ 200 em Bitcoin. Esse é exatamente o perfil que o atacante filtrou: o script só varreu carteiras com mais de 0,15 BTC.

A cronologia: cinco anos de bug, vinte e cinco minutos de saque

O bug não foi explorado no dia em que nasceu. Ele ficou dormindo no código aberto do firmware por mais de cinco anos até alguém olhar com atenção suficiente — e quando isso aconteceu, a exploração foi industrial.

Data Evento
01/03/2021 Commit b18723dd migra a geração de seed de ckcc.rng_bytes() para ngu.random.bytes(). A regressão entra no código.
17/03/2021 Firmware v4.0.0 é publicado com o bug. Toda seed gerada a partir daqui é suspeita.
11/03/2022 Mk4 ganha um “reseed” com entropia dos secure elements — mitigação parcial que, como se descobriu agora, era limitada demais.
30/07/2026 A equipe de Bitcoin Engineering da Block publica a análise técnica após relatos de usuários com fundos roubados. Exploração já estava ativa.
31/07/2026 — 01h31 a 01h56 UTC O saque 1.324 outputs gastos em 500 transações dentro de uma janela de 3 blocos. 594 BTC.
31/07/2026 Coinkite emite o advisory oficial do Mk3 e o backgrounder técnico. Hotfix liberado.

A assinatura on-chain do saque é o que entrega a natureza automatizada da coisa. Rob Hamilton, da AnchorWatch, rastreou o padrão: todas as carteiras eram single-sig, todas tinham mais de 0,15 BTC, muitas estavam dormentes desde 2021, a taxa era constante em ~30 sat/vB e não havia change output em nenhuma delas.

Esse conjunto de sinais só faz sentido de um jeito: uma ferramenta rodando em lote, gastando chaves privadas pré-computadas offline. O atacante não estava descobrindo as chaves durante o ataque — ele já tinha a lista pronta e estava apenas executando.

A anatomia do saque

594 BTC

Aprox. US$ 38 milhões

~500

Endereços single-sig

1.324

Outputs gastos

25 min

3 blocos

A causa raiz: um erro de linking, não de criptografia

Este é o ponto que mais interessa a quem constrói software — e o que torna o caso didático. A matemática do Bitcoin não falhou. A criptografia não foi quebrada. O hardware não tinha defeito. O TRNG (True Random Number Generator) do chip STM32 estava lá, funcionando, presente no binário. Ele simplesmente nunca era chamado.

O que deveria acontecer

O Coldcard tem um gerador de aleatoriedade de hardware próprio. Justamente por isso, a configuração da placa define a macro MICROPY_HW_ENABLE_RNG como zero — a intenção é desligar o caminho de aleatoriedade nativo do MicroPython, porque a Coinkite usa o dela.

O que aconteceu de fato

Na migração de 2021, a biblioteca libngu passou a fornecer a função de aleatoriedade. E o guard que deveria impedir um build errado estava escrito assim:

// O guard que falhou — testa EXISTÊNCIA, não VALOR
#ifndef MICROPY_HW_ENABLE_RNG
  #error “precisa do RNG de hardware”
#endif

// A placa define assim:
#define MICROPY_HW_ENABLE_RNG 0

// Macro EXISTE (vale 0) → #ifndef é falso → #error nunca dispara
// → build compila feliz com a implementação errada.

Em C, #ifndef X pergunta “a macro X existe?”. Ele não pergunta “o valor de X é diferente de zero?” — para isso seria preciso #if !X. Como a macro existia e valia zero, o guard considerou que estava tudo em ordem e o #error nunca disparou.

Aí veio o segundo golpe: as duas funções — a do TRNG de hardware e a do fallback de software — tinham a mesma assinatura, rng_get(). Para o linker, são intercambiáveis. Ele resolveu o símbolo para a versão que estava no submódulo do MicroPython: o Yasmarang, um PRNG determinístico não-criptográfico, usado em MicroPython para coisas como jogos e simulações — nunca para chaves.

“O guard usou #ifndef, que testa se MICROPY_HW_ENABLE_RNG está definida, em vez de testar se o valor dela é diferente de zero. Nós definimos a macro como zero, então o #error não parou o build.”

— Coinkite, backgrounder técnico oficial

Com o que o Yasmarang foi semeado

Se o PRNG fosse semeado com algo imprevisível, o estrago seria pequeno. Não foi o caso. Segundo a análise da Block, o Yasmarang era inicializado uma única vez com três coisas:

  • UID do MCU — o identificador fixo do chip. Não é segredo e não muda nunca.
  • Contador SysTick — algo entre 80.000 e 120.000 valores possíveis. Isso é menos de 17 bits.
  • Registradores de RTC e subsegundo — o relógio do aparelho no momento da geração.

Nenhum desses é fonte criptográfica de entropia. São valores derivados de tempo e de identidade do hardware — parcialmente observáveis, parcialmente adivinháveis, e coletados uma única vez. Um atacante que saiba a marca do aparelho e a janela aproximada em que a carteira foi criada consegue enumerar o espaço inteiro num computador comum.

Quanta entropia sobrou de verdade

Uma seed BIP-39 de 12 palavras deveria carregar 128 bits de entropia. Isso significa 2128 possibilidades — um número maior que a quantidade de átomos na Terra, e a razão pela qual ninguém consegue chutar sua seed. Veja o que sobrou:

Modelo Firmware afetado Entropia efetiva Situação
Mk2 / Mk3 4.0.0 a 4.1.9 ~40 bits Crítico — força bruta trivial
Mk4 / Mk5 anterior a 5.6.0 ~72 bits (Coinkite)
~32 bits (Block)
Divergência nas estimativas
Q anterior a 1.5.0Q ~72 bits (Coinkite)
~32 bits (Block)
Divergência nas estimativas
TAPSIGNER / OPENDIME / SATSCARD íntegra Não afetados (codebase diferente)

Repare no salto: de 128 para 40 bits não é uma redução de 69%. É uma redução por um fator de 288 — aproximadamente 300 septilhões de vezes. É a diferença entre “impossível para a humanidade inteira” e “roda num notebook”.

A divergência que você precisa conhecer

Nos modelos mais novos, a Coinkite havia adicionado em 2022 uma mitigação: misturar entropia dos secure elements SE1/SE2 no estado do PRNG. O advisory oficial estima que isso elevou o espaço de busca para ~72 bits — bem abaixo dos 128 esperados, mas ordens de magnitude mais caro de atacar que o Mk3.

A análise independente da Block é mais pessimista, e vale a pena entender por quê. Segundo eles, a implementação do reseed faz o hash de 40 bytes de dados do secure element mas retém apenas quatro bytes, e a função de reseed não aceita o digest completo — ela sobrescreve uma única palavra de 32 bits do estado. Se isso estiver correto, o espaço de busca fica limitado a 232, com cerca de 231 tentativas em média. Isso é fraco.

Como agir diante da divergência: as duas análises são descritas pelos próprios autores como preliminares e a investigação continua. Na dúvida entre 72 e 32 bits, trate como 32. Migrar uma carteira que estava segura custa uma tarde; não migrar uma que estava exposta custa tudo.

Não é só a seed: o alcance real do bug

Um detalhe que passou batido na cobertura de imprensa: a mesma construção de RNG alimentava outras coisas além da seed principal. Segundo a Block, também saíram desse gerador quebrado:

  • Chaves privadas de paper wallets geradas no aparelho
  • Máscaras de Seed XOR (o esquema de dividir a seed em partes)
  • Chaves ECDH de clonagem entre dispositivos
  • Segredos do Key Teleport
  • Material do Web2FA
  • Senhas geradas pelo aparelho

Ou seja: se você usou o Coldcard como “gerador de aleatoriedade confiável” para qualquer outra finalidade nesse período, esse material também precisa ser considerado comprometido. E há um agravante: basta o atacante conhecer a xpub ou um endereço da carteira para enumerar candidatos offline, sem tocar na rede e sem deixar rastro até a hora do saque.

Roubaram Bitcoin. E se eu tenho outros tokens na mesma seed?

Essa é a pergunta mais importante do caso e quase ninguém a fez. A resposta curta: sim, esse dinheiro também está exposto — e ninguém precisa de um segundo ataque para pegá-lo.

O Coldcard é um aparelho exclusivo de Bitcoin. O firmware não assina Ethereum, não assina Solana, não conhece token nenhum. Então, se você só usou o aparelho como ele foi feito para ser usado, o que estava lá era Bitcoin, e foi isso que saiu.

O problema é o que muita gente faz: reaproveitar as mesmas 12 ou 24 palavras em outra carteira. Você anotou a seed do Coldcard e, meses depois, digitou as mesmas palavras no MetaMask, na Trust, na Phantom, no Ledger Live “só para não ter que guardar outro papel”. É comum, parece prático, e neste caso é fatal.

Por que a exposição atravessa qualquer rede

Uma seed BIP-39 não é “a chave do Bitcoin”. Ela é uma chave-mestra, da qual se derivam as chaves de todas as redes, cada uma no seu caminho de derivação padronizado. Bitcoin em m/44'/0', Ethereum em m/44'/60', Solana em m/44'/501', e assim por diante. É por isso que as mesmas palavras “funcionam em qualquer carteira”.

Isso corta para os dois lados. O atacante que quebrou a seed não quebrou a chave do Bitcoin — ele quebrou a raiz. Tendo a raiz, derivar o endereço de Ethereum, de Solana, de Tron ou de qualquer outra rede é uma conta que roda em milissegundos, de graça, offline. Ele não precisa achar nada de novo. Já tem tudo.

Em uma frase: a fraqueza não está na rede nem na moeda — está na semente da qual todas as chaves nascem. Se a semente é adivinhável, tudo que brotou dela é adivinhável. O saque de 594 BTC foi onde o atacante olhou primeiro, não onde ele pode olhar.

O mesmo vale para quem nunca teve um Coldcard

Um detalhe que amplia bastante o público de risco: você não precisa nem ter o aparelho hoje. Se alguém gerou a seed num Coldcard da janela vulnerável e depois migrou aquelas palavras para um app de celular, uma carteira de desktop ou outra hardware wallet, a seed continua fraca. Ela não fica mais forte por mudar de casa. O que importa é onde ela nasceu.

O que fazer se esse é o seu caso

  1. Liste tudo que nasceu daquela seed. Toda carteira, em toda rede, onde você um dia digitou essas palavras. Inclua as que você acha que estão vazias — saldo esquecido, NFT, token de airdrop, posição travada em DeFi.
  2. Trate todas como comprometidas ao mesmo tempo. Não é “primeiro o Bitcoin, depois o resto quando der”. A raiz é a mesma; a urgência é a mesma.
  3. Gere seeds novas e independentes para cada destino, num aparelho ou app com firmware corrigido.
  4. Não reutilize seed entre carteiras daqui para frente. Este caso é a demonstração mais cara possível do motivo: uma única falha de entropia, num único fabricante, contamina tudo que compartilha a raiz.

Vale registrar a honestidade da informação: o advisory oficial da Coinkite trata só do Bitcoin gerado no aparelho — ele não discute reuso de seed em outras carteiras, porque isso está fora do produto deles. A conclusão acima é consequência direta de como o padrão BIP-39 funciona, e é por isso que ela não aparece nos comunicados oficiais nem na maior parte da cobertura.

Comprar e vender Bitcoin com suporte humano →

Quem NÃO está em risco

Nem todo dono de Coldcard precisa entrar em pânico. Estas situações protegem:

Situação Por que protege
Seed gerada antes de março/2021 Anterior ao commit que introduziu a regressão. O TRNG ainda era chamado.
Seed com 50+ rolagens de dado independentes A entropia veio de fora do aparelho. O RNG quebrado não participou.
Passphrase BIP-39 forte Multiplica o espaço de busca por 94n por cima da seed fraca. Ver seção abaixo.
Multisig com ao menos uma chave não-vulnerável O atacante precisaria de todas as chaves do quórum. Uma boa já quebra o ataque.
TAPSIGNER, OPENDIME, SATSCARD Codebases completamente diferentes. Nunca tocaram nesse código.
O ponto crítico que quase todo mundo erra: o que importa é o firmware que estava rodando no momento em que a seed foi gerada — não o firmware que está no aparelho hoje. Você pode estar com a versão mais recente instalada e ainda assim ter uma seed nascida em 2021, quando o bug estava ativo.

Por que a passphrase salvou tanta gente

A passphrase BIP-39 (a “13ª palavra”, ou “camada avançada”) não é armazenada no aparelho — ela existe só na sua cabeça. Ela entra como sal na função de derivação, o que significa que o atacante precisa acertar a seed E a passphrase juntas.

Com 94 caracteres imprimíveis possíveis, uma passphrase de 12 caracteres adiciona sozinha cerca de 78 bits ao espaço de busca. Somando aos 40 bits residuais do Mk3, o total volta para a casa dos 118 bits — de novo fora do alcance de qualquer atacante. Uma proteção que não custava nada, e que separou quem perdeu tudo de quem só teve um susto e uma tarde de trabalho.

“Se a seed afetada do Mk3 foi usada com uma passphrase BIP-39, nossa análise preliminar indica que seus fundos correm risco mínimo.”

— Advisory oficial da Coinkite

A diferença entre a falha e a correção

Esta é a parte que todo desenvolvedor deveria ler duas vezes. A correção da Coinkite não mexeu em criptografia — mexeu em como o build se comporta quando alguém erra. E essa mudança de filosofia é a lição inteira do caso.

Dimensão ❌ Antes (a falha) ✅ Depois (a correção)
Guard do build #ifndef — testa se a macro existe Checagem de símbolo no linker, testa o que foi realmente linkado
Fallback do MicroPython Presente no build, pronto para ser escolhido Excluído explicitamente do objeto final
Ambiguidade de símbolo Duas rng_get() com a mesma assinatura competindo Só a versão da placa define rng_get(); o upstream não define símbolo nenhum
Comportamento em erro Fail-open compila e roda com o gerador errado Fail-closed o build quebra
O que era verificado Se o TRNG estava presente no binário Se o TRNG é de fato alcançado pelo call path
Quem detecta o erro Humano em code review (não detectou) CI, automaticamente, a cada build

Colocando em uma frase: a falha era um sistema que ficava calado quando estava errado; a correção é um sistema que se recusa a compilar quando está errado. A pergunta mudou de “o código seguro está aí?” para “o código seguro é o que vai rodar?”.

Por que o code review não pegou isso

Porque não havia nada de errado para ver. Cada arquivo, lido isoladamente, estava correto. A implementação do TRNG estava correta. A configuração da placa estava correta. O guard parecia razoável. O bug não morava em nenhum arquivo — morava na interação entre a macro, o guard e o linker, que é exatamente o tipo de coisa que revisão de código humana não enxerga.

A Coinkite chegou a verificar que o TRNG estava presente no binário compilado. Estava mesmo. O que ninguém testou foi se a função de geração de seed realmente chegava nele.

E a ironia da inteligência artificial

A Coinkite suspeita que o atacante usou IA para revisar versões antigas do firmware — que é open source — e foi assim que encontrou o bug. A ironia que a própria empresa admitiu no advisory: poucas semanas antes, eles mesmos rodaram um dos melhores modelos de IA disponíveis no código em busca de falhas de segurança, e o modelo não achou nada. Mesma ferramenta, resultados opostos — provavelmente porque quem ataca faz a pergunta certa e tem tempo para insistir, enquanto quem defende pede uma varredura genérica e aceita o “não encontrei nada” como resposta.

O que fazer agora: o procedimento oficial

Entenda antes de agir: atualizar o firmware não conserta uma seed velha. A entropia fraca já está assada na chave — não existe atualização que a torne aleatória retroativamente. O firmware novo garante que a próxima seed nasça forte. Por isso o procedimento tem duas partes, e nenhuma delas pode ser pulada.

Passo 1 — Mitigação imediata (faça hoje)

Se você tem fundos relevantes numa carteira potencialmente afetada e não pode migrar agora, adicione uma passphrase BIP-39 forte e única no aparelho e mova os fundos para a carteira resultante. Isso é rápido e já tira você da lista de alvos enumeráveis. Não é a solução final, é o extintor.

Passo 2 — Atualize o firmware

Modelo Versão corrigida
Mk3 4.2.0 ou superior (há advisory de migração dedicado)
Mk4 / Mk5 (Standard) 5.6.0 ou superior
Q (Standard) 1.5.0Q ou superior
Mk4 / Mk5 (Edge) 6.6.0X ou superior
Q (Edge) 6.6.0QX ou superior

Passo 3 — Gere uma seed completamente nova

Só depois do firmware corrigido. E a recomendação da Coinkite é não confiar apenas no RNG do aparelho desta vez — use entropia externa:

  • 99 ou mais rolagens de dado (≈256 bits de entropia externa), ou
  • Passphrase BIP-39 forte, ou — o ideal — as duas coisas

Passo 4 — Verifique antes de confiar

  1. Confira o fingerprint da carteira e um endereço de recebimento depois de um power-cycle do aparelho (desligar e ligar de verdade). Isso confirma que o que você anotou é o que o dispositivo realmente derivou.
  2. Envie uma transação pequena de teste e confirme que ela chega.
  3. Só então mova o restante dos fundos.

Passo 5 — Considere a carteira antiga queimada

Depois de esvaziar, não reutilize a seed antiga para nada. Nem para “guardar trocado”. Se ela é enumerável, ela é enumerável para sempre, e qualquer satoshi que voltar para lá é presente para quem já tem a lista.

A lição de engenharia que vale para qualquer sistema

Se você constrói qualquer coisa que lide com chaves, tokens, senhas ou dinheiro, o padrão do hotfix da Coinkite merece ser copiado. Não a linha de código específica — o princípio:

1. Teste alcançabilidade, não presença

Verificar que a função segura está no binário não prova nada. O que importa é se o call path chega até ela em tempo de execução. São perguntas diferentes, e só a segunda protege.

2. Todo fallback é um risco, não uma rede de segurança

Um caminho de fallback só existe para ser escolhido em algum momento. Em código de segurança, prefira o erro estrondoso ao degradê silencioso: melhor não funcionar do que funcionar errado sem avisar.

3. Fail-closed por padrão

Se a checagem de segurança não puder ser realizada, o sistema deve parar — não seguir em frente assumindo que está tudo bem. Esse é literalmente o único ponto onde o bug do Coldcard poderia ter morrido antes de nascer.

4. Automatize o que o review humano não enxerga

Bugs de configuração, de linking e de resolução de símbolo são invisíveis para leitura de código, porque cada arquivo está certo sozinho. Esses casos exigem verificação de máquina, no CI, a cada build.

beta fechado · convites limitadosTesta a DolaRamp com a gente// usdt · usdc · pyusd em solana, tron, base e ton · sem gas, sem kyc
// android e iphone · liberamos em até 24h · sem custo
quero entrar

Na BitcoinP2P e na DolaRamp, essa é a razão pela qual insistimos em autocustódia bem feita em vez de autocustódia como slogan. Ter a chave na mão só protege se a chave for de verdade aleatória — e isso depende de camadas de engenharia que o usuário final não tem como auditar sozinho. Quem constrói carteira tem a obrigação de olhar para o próprio código com essa pergunta na mão, antes que alguém de fora olhe primeiro.

Comprar Bitcoin e USDT com atendimento humano na BitcoinP2P →

Perguntas Frequentes

O que é Coldcard e o que é Coinkite?

Coinkite é a fabricante — empresa canadense de Toronto, fundada em 2012. Coldcard é o produto dela: uma hardware wallet, um aparelho físico que guarda sua chave privada de Bitcoin offline e assina transações sem se conectar à internet. Não é um software embutido em outras carteiras: a falha atingiu quem gerou a seed no aparelho da Coinkite, e não usuários de outras marcas.

Quanto custa uma Coldcard?

Na loja oficial, o Mk5 sai por US$ 169,94 e o Q por US$ 249,21 (ambos em promoção, de US$ 189 e US$ 289). No Brasil, com frete e importação, passa de R$ 1.500. Mk3 e Mk4 estão descontinuados, mas seguem em uso — e são justamente os mais expostos.

Tenho outros tokens na mesma seed. Também foram roubados?

Estão igualmente expostos, ainda que o saque tenha atingido só Bitcoin. Uma seed BIP-39 é uma chave-mestra: dela se derivam as chaves de todas as redes. Quem quebrou a seed tem a raiz, e derivar o endereço de Ethereum, Solana ou Tron a partir dela leva milissegundos e não custa nada. Se você reaproveitou as mesmas palavras em outra carteira, trate tudo como comprometido ao mesmo tempo — e note que isso vale mesmo se você migrou a seed para outro aparelho: o que importa é onde ela foi gerada.

Minha Coldcard foi afetada?

Depende do firmware que estava no aparelho quando você gerou a seed, não do firmware atual. Seeds criadas entre março de 2021 e julho de 2026 em Mk2, Mk3, Mk4, Mk5 ou Q devem ser tratadas como potencialmente afetadas. Se você usou passphrase BIP-39, 50+ rolagens de dado, ou multisig com uma chave de outra origem, o risco é mínimo.

Atualizar o firmware resolve o problema?

Não para a seed que já existe. A entropia fraca está assada na chave e nenhuma atualização a torna aleatória retroativamente. O firmware novo garante que a próxima seed nasça forte — por isso é obrigatório atualizar antes de gerar a nova.

Como uma seed de 12 palavras vira adivinhável?

As 12 palavras são só uma forma legível de escrever um número de 128 bits. Se esse número foi sorteado por um gerador previsível, semeado com o ID do chip e o relógio, o espaço real de possibilidades cai para algo na casa de 240 — que um computador comum percorre. As palavras continuam sendo 12; a aleatoriedade por trás delas é que sumiu.

Uso multisig. Estou seguro?

Se pelo menos uma chave do quórum foi gerada fora da janela vulnerável ou em outro dispositivo, sim — o atacante precisaria de todas as chaves necessárias para assinar. Multisig funcionou exatamente como deveria neste caso: a diversidade de fornecedor e de origem das chaves absorveu a falha de um componente.

E se eu tiver perdido fundos?

Transações Bitcoin são irreversíveis e não há como estorná-las. O que fazer: registrar boletim de ocorrência, documentar os TXIDs e endereços envolvidos, e acompanhar os comunicados oficiais da Coinkite. Migre imediatamente qualquer outro saldo que ainda esteja em carteira potencialmente afetada — o atacante já tem a lista, e o que não foi varrido ainda pode ser.

Devo parar de usar hardware wallet?

Não. Hardware wallet continua sendo o padrão correto para autocustódia, e o histórico do modelo é muito melhor que o de deixar Bitcoin em corretora. O que este caso ensina é a favor de camadas: passphrase BIP-39, entropia externa por dados, e multisig com dispositivos de fabricantes diferentes. Nenhum fornecedor único é infalível — a arquitetura é que precisa sobreviver à falha de um deles.

Carteira de celular é mais segura que hardware wallet, então?

Não — são camadas diferentes com trade-offs diferentes. Hardware wallet mantém a chave fora de um aparelho conectado à internet, e isso continua valendo. O que este caso mostra é que a qualidade da entropia é um problema separado do isolamento da chave, e que ele atinge qualquer plataforma. Uma carteira de celular boa gera a seed pelo gerador criptográfico do próprio aparelho (Secure Enclave no iPhone, Keystore no Android). Uma carteira de celular ruim não. A pergunta certa não é “hardware ou celular”, é “quem verifica de onde vem a aleatoriedade — e como você sabe disso?”.

Leia também: DolaRamp: a nossa carteira de dólar digital que não precisa de gas

Ver todos os artigos →