
Plataformas Verificadas
Quick Links

Onde Permanecer Protegido
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Entre 01:31 e 01:56 UTC de 30 de julho de 2026, 594,48 BTC saíram de cerca de 500 endereços de Bitcoin, e ninguém precisou tocar em um único dispositivo para levar isso. Não houve malware, não houve página de phishing, não houve seed phrase fotografada em cima de uma mesa de cozinha. Os endereços eram single-signature, muitos dormentes havia anos, cada um com mais de 0,15 BTC, e 1.324 outputs se moveram em cerca de 500 transações dentro de uma janela de três blocos.
Um sweep com esse formato não é um arrombamento, mas uma conta que terminou de rodar.
A pergunta no centro disso é o que uma passphrase BIP-39 realmente faz. Você tem uma Coldcard, e o aviso está aberto no seu celular desde o café da manhã. Você não move essas moedas há três anos, e está tentando descobrir se as palavras guardadas no seu cofre ainda pertencem só a você. Lilith lê as evidências junto com você. Vinte anos em cibersegurança a treinaram para fazer uma única pergunta diante de qualquer promessa de segurança, que é o que uma pessoa forneceu e o que uma máquina prometeu. Ela começa pelo relógio, não pela carteira.
Vinte e cinco minutos é um tempo estranho para roubar 500 pessoas. Uma campanha de phishing que coleta 500 seed phrases coleta ao longo de semanas, um descuido de cada vez. O dinheiro sai numa linha irregular, cada pessoa caindo em um dia diferente. Isto aqui não teve esse formato. Todos os outputs se moveram dentro de três blocos consecutivos, o que significa que as chaves já estavam reunidas, já derivadas e já ordenadas antes de a primeira transação ser transmitida.
"Ninguém estava caçando durante aqueles vinte e cinco minutos", diz Lilith. "A caçada já tinha acabado. O que você está vendo é o saque."
A uniformidade é a segunda assinatura. Todo endereço drenado era single-signature e todos tinham mais de 0,15 BTC, um piso que parece um filtro e não uma coincidência. Quem trabalha a partir de uma lista de chaves candidatas não corre atrás de poeira. Deriva os endereços que cada candidata implica, consulta o ledger público para ver quais deles têm saldo que compense a taxa de transação, e varre os que passam da linha. Depois disso, 562 BTC foram consolidados em um único endereço que não se moveu desde então.
O que não foi estabelecido é que o sweep e a falha sejam o mesmo evento. O aviso da Coinkite não menciona o roubo em momento algum. Os pesquisadores que olharam para os dois têm o cuidado de dizer que a conexão não está demonstrada, mas inferida, lida a partir do formato dos dados on-chain. A CoinDesk informou que a Block publicou suas descobertas sem terminar os testes de explorabilidade, porque a exploração já parecia estar em curso. Adjacente e consistente é até onde a evidência vai hoje, e o mecanismo por baixo não precisa que ela vá além.
Uma seed phrase é um número vestido de palavras. Doze ou vinte e quatro palavras codificam um valor aleatório. Tudo o que vem depois sai desse valor por regras públicas e idênticas em qualquer carteira do mundo: cada chave privada, cada endereço, cada assinatura. O segredo não são as palavras, mas a aleatoriedade que existe por baixo delas.
Isso coloca toda a segurança de uma hardware wallet em um único instante que dura uma fração de segundo, não produz nada que você possa ver e decide tudo o que vem depois.
"Você consegue verificar um endereço na tela", diz Lilith. "Consegue conferir uma assinatura. Não existe tela nenhuma que mostre o quanto a sua aleatoriedade era aleatória."
Em 30 de julho, o time de engenharia e segurança de Bitcoin da Block publicou Predictable RNG Fallback and 32-Bit Reseed in COLDCARD Firmware. É ali que mora o detalhe mecânico. O aviso da Coinkite diz aos donos o que fazer e não oferece causa raiz. O texto da Block oferece uma, e ela é menor do que qualquer um gostaria.
O dispositivo deveria puxar aleatoriedade do gerador de hardware do chip STM32. Sua configuração de placa de produção desligou o gerador do próprio MicroPython colocando uma flag em zero. Entre os dois, a biblioteca verificou se aquela flag estava definida em vez de verificar se estava habilitada, e uma flag em zero continua definida. A verificação passou, a biblioteca se ligou ao gerador de software, e a fonte de hardware silenciosamente parou de ser usada.
O que entrou no lugar foi uma rotina de software determinística alimentada pelos 32 bits menos significativos do ID único do chip, por um contador SysTick e pelos registradores do relógio de tempo real. Nada disso é segredo. A Block observa que o ID do chip é metadado fixo do aparelho, legível na memória, e parcialmente transformado no próprio número de série USB da Coldcard. A biblioteca até misturava um segundo gerador de software alimentado por constantes públicas. XOR não cria entropia, e se as duas entradas são reprodutíveis, o resultado também é.
Uma biblioteca de números aleatórios fica abaixo do nível que alguém pensa em auditar. O ferramental de Proteja Sua Carteira Cripto do Malware nas Suas Ferramentas também ficava.
Uma seed roubada é um evento pessoal. Alguém alcançou sua casa, sua galeria de fotos ou sua atenção, e o dano para na borda do que foi alcançado. Normalmente você consegue reconstruir como aconteceu, e normalmente consegue perceber que aconteceu.
Uma seed fraca é uma categoria. O atacante nunca descobre seu nome, nunca vê seu aparelho e nunca te envia nada. Ele reproduz as condições em que o dispositivo estava quando fez o número. Depois enumera os valores que ele poderia ter produzido, deriva os endereços que cada um implica e lê a blockchain pública para ver quais desses endereços têm dinheiro.
Sua carteira não participa disso em momento nenhum.
Nada toca sua rede. Nada toca seu backup. O PIN nunca entra em cena, porque o PIN protege um aparelho que o atacante não tem motivo para visitar. O air gap funciona perfeitamente. Ele não está errado, mas irrelevante, porque em nenhum momento algo precisou atravessar essa lacuna.
A Coinkite quantifica o estrago para uma única família de aparelhos. Para a Mk4, a Mk5 e a Q, o aviso afirma que as seeds afetadas carregam "cerca de 72 bits de entropia em vez dos 128 bits esperados". Ele não publica número equivalente para a Mk3. A análise da Block vai mais longe no hardware antigo. Nas Mk2 e Mk3 afetadas, ela estabelece um limite superior amplo perto de 2^40,7 valores candidatos quando os valores dos timers são desconhecidos. Quando o ID do chip e os timers são conhecidos, ela descreve a busca como totalmente determinada.
A distância entre esses números é a história inteira. Em 128 bits, ninguém enumera nada, que é exatamente a premissa pela qual você comprou o aparelho. Em 72 bits, a margem deixa de ser uma garantia e vira uma estimativa de quanto esforço seria necessário. Perto de 2^40, o esforço deixa de ser uma pergunta interessante.
Nada disso é observável do seu lado. Não há alerta, não há login falhado, não há transação estranha para notar. O Ataque ao Frontend de dApp: Como Aconteceu o Roubo da Polymarket trata do mesmo desconforto por outro ângulo, em que cada componente se comportou exatamente como foi construído e a perda aconteceu mesmo assim.
O vocabulário vem causando um estrago silencioso aqui. Uma passphrase BIP-39 é chamada de 25ª palavra, e acaba arquivada na cabeça das pessoas ao lado do PIN, como se os dois fossem senhas guardando a mesma porta. Eles não são o mesmo tipo de objeto, e este episódio é o que torna a diferença cara.
O PIN é imposto pelo aparelho. Ele decide se a Coldcard na sua mão vai falar com você. Tire as palavras da seed desse aparelho, digite em qualquer outra carteira, e o PIN simplesmente sumiu. Ele nunca foi parte da chave, mas uma propriedade da caixa.
Uma passphrase BIP-39 não é imposta por nada, porque ela é uma entrada. As palavras da seed e a passphrase entram juntas na função de derivação, e o que sai do outro lado é uma chave mestra diferente, o que significa uma carteira diferente com endereços diferentes. Mude um caractere e você recebe uma carteira sem relação nenhuma com a anterior, sem mensagem de erro, porque nada foi conferido contra nada. Não existe nada a conferir.
"A distinção é essa", diz Lilith. "O PIN protege o aparelho. A passphrase vira parte da chave. Só uma das duas ainda significa alguma coisa quando o aparelho deixa de importar."
O que levanta a pergunta que vale fazer sobre a sua própria configuração. De tudo o que você fez para proteger essas moedas, quanto mudou a chave e quanto apenas guardou o recipiente?
| Camada | Entra na derivação da seed? | Ajuda se sua seed for roubada? | Ajuda se sua seed for fraca? |
|---|---|---|---|
| PIN do dispositivo | Não | Não | Não |
| Air gap / cold storage | Não | Sim | Não |
| Passphrase BIP-39 | Sim | Sim | Sim |
| Entropia por dados (50+ rolagens) | Sim, na criação | Não | Sim |
| Multisig | Não, uma chave separada | Em parte | Sim |
Um PIN e um air gap estão bem no centro do que as pessoas imaginam quando imaginam cold storage, e nenhum dos dois faz absolutamente nada por uma chave que já nasceu adivinhável. Eles defendem o recipiente, e nada neles alcança de volta o momento em que o número foi feito. É um formato conhecido. O Revogar Aprovações de Tokens: A Porta Aberta que Você Esqueceu de Fechar ensina isso pela direção oposta, em que uma permissão que você tinha parado de lembrar continuava perfeitamente viva.
Três grupos atravessaram isso intactos, e eles não são três sortes separadas.
Quem usava passphrase não foi varrido porque os endereços derivados das suas seeds não são os endereços que um atacante obtém enumerando a saída do gerador. As palavras sozinhas produzem uma carteira. As palavras somadas a uma passphrase produzem outra, e só as palavras estavam ao alcance.
Isso não é o mesmo que estar seguro, e a Coinkite é explícita a respeito. A instrução do aviso é "migrar para uma seed recém-gerada assim que for praticável", mesmo com uma passphrase forte. O desenvolvedor de Bitcoin James O'Beirne colocou o motivo de forma direta no X: se o seu aparelho é afetado e você tem uma passphrase, suas moedas agora estão tão seguras quanto essa passphrase. A seed por baixo virou aritmética pública, e tudo passa a se apoiar no único componente que você mesmo escolheu, que nunca foi projetado para carregar a carga inteira sozinho.
As rolagens de dados agem na outra ponta da linha do tempo. Uma Coldcard consegue misturar por hash rolagens físicas de dados na seed enquanto ela está sendo criada, e a posição da Coinkite é precisa: "se você inseriu pelo menos 50 rolagens justas e independentes, e as rolagens não foram registradas nem expostas, não consideramos a seed resultante em risco apenas por esse problema de RNG". Mantenha a ressalva grudada na frase. Apenas por esse problema está fazendo trabalho de verdade ali.
O multisig sobrevive por um terceiro motivo. Ele não melhora a chave ruim, mas a torna insuficiente, porque gastar exige assinaturas de chaves geradas em outro lugar, em outro hardware, em outros momentos. O multisig não aparece em lugar nenhum do aviso. Ele vem de O'Beirne, que citou as três defesas juntas para saldos de chave única criados em uma Mk3 entre 2021 e 2023. Quem não tem nenhuma das três, disse ele, deveria mover os fundos imediatamente.
Coloque as três lado a lado e elas param de parecer uma lista. Uma passphrase é aleatoriedade que você forneceu. Os dados são aleatoriedade que você forneceu. Uma segunda chave é aleatoriedade que outro aparelho forneceu, num momento e num lugar que o aparelho quebrado nunca tocou. Toda defesa que resistiu colocou dentro da chave alguma coisa que o gerador falho não produziu.
Existe uma defesa aqui, não três.
Estabeleça se você está no escopo, e faça isso a partir do aviso, não da lembrança de uma manchete. O alerta de geração de seed da Coinkite lista quatro aparelhos. A Mk3 é afetada no firmware 4.0.1, lançado em março de 2021, até o 4.1.9, e é corrigida no 4.2.0 ou posterior. A Mk4 e a Mk5 são afetadas em qualquer versão anterior à 5.6.0, e a Q em qualquer versão anterior à 1.5.0Q. Tapsigner, Opendime e Satscard não são afetados, o que a Coinkite atribui ao fato de rodarem bases de código diferentes.
Uma linha inicial dizia que a análise preliminar sugeria que os modelos mais novos estavam livres. O aviso, como está hoje, não diz isso. Se você tem uma Mk4, uma Mk5 ou uma Q, confira a versão do firmware, não o nome do modelo. O que deixa você fora disso não é o aparelho que você comprou, mas o número que ele está rodando.
Instalar o firmware corrigido conserta o gerador, e não faz absolutamente nada por uma seed que o gerador antigo já criou. Uma chave que era fraca quando foi criada continua exatamente tão fraca depois, porque o número foi escrito anos atrás e os endereços que ele implica já estão num ledger público.
Atualizar não é migrar.
É por isso que a Coinkite publica uma sequência de migração em vez de um aviso de atualização. Ela roda numa ordem deliberada:
Os passos três e sete são os que somem sob pressão, e os dois existem para impedir que você perca moedas durante a mudança, e não depois dela. Verificar um backup antes de colocar fundos nele é o que evita que uma migração apressada mande tudo para uma carteira que você não consegue restaurar. Guardar o backup antigo até o saldo inteiro ter chegado e confirmado é o que evita que você destrua a única cópia de uma chave que ainda tem dinheiro atrás dela.
Se você tem uma passphrase, a instrução continua sendo migrar. Risco menor não é risco nenhum. Uma string que você escolheu é agora a única coisa entre suas moedas e uma seed que outra pessoa consegue derivar.
Cold storage responde muito bem a uma pergunta. Alguém consegue tirar esta chave deste aparelho? Medido por essa pergunta, o hardware cumpriu. O secure element resistiu, o air gap resistiu, o PIN resistiu, e nada foi extraído de nenhum dos cerca de 500 aparelhos envolvidos. A resistência a violação que aqueles donos pagaram nunca chegou nem a ser testada.
A pergunta que ele não responde, e que nunca foi construído para responder, é se a chave era inadivinhável quando foi feita. Isso aconteceu uma vez, numa fração de segundo, anos antes de tudo isso, e não deixou para trás nenhuma evidência que você possa inspecionar. Você não consegue olhar para uma seed phrase e enxergar quanta aleatoriedade existe atrás dela. Doze palavras vindas de um gerador de hardware e doze palavras vindas de um contador quebrado parecem idênticas no cartão dentro do seu cofre.
Existe diferença entre um sistema que guarda uma coisa e um sistema que a fez. O Desenvolvedores de Cripto São Transmissores de Dinheiro? Código vs Custódia discute essa distinção no direito. Uma hardware wallet vive dos dois lados dela e só te mostra um.
A versão desse hábito para Lilith é uma pergunta, não um checklist. Pegue tudo o que está protegendo suas moedas agora e separe em duas pilhas: as partes que um fornecedor entregou para você e as partes que você mesmo forneceu. A primeira pilha é uma promessa em que você confia. A segunda é a única parte que continua de pé se a promessa se revelar errada.
Em 30 de julho, para cerca de 500 pessoas, a promessa se revelou errada.
Abra o simulador da Kodex e monte qualquer posição. Antes de definir o tamanho dela, escreva quais partes daquele trade você escolheu e quais chegaram como padrão de outra pessoa: a entrada, a distância do stop, o tamanho da posição. A lista do que você escolheu costuma ser menor do que parece, e descobrir isso num saldo simulado não custa nada além dos dez segundos que leva para olhar.