Quão difícil é adivinhar sua frase de recuperação? A ColdCard tornou isso fácil

FelixFelix
/Atualizado em 5 de ago. de 2026
Quão difícil é adivinhar sua frase de recuperação? A ColdCard tornou isso fácil

Principais Resultados

• Uma atualização de firmware defeituosa da ColdCard reverteu silenciosamente do gerador de números aleatórios de hardware para um pseudo-aleatório de software

• Isso reduziu o conjunto de frases de recuperação possíveis de 2^256 para cerca de 2^40 (cerca de 1,1 trilhão) nos modelos Mk2/Mk3, e em torno de 2^72 nos modelos Mk4/Mk5/Q

• Os atacantes nunca quebraram o dispositivo — eles simplesmente adivinharam frases de recuperação que deixaram de ser difíceis de adivinhar

• Uma frase BIP-39 de 24 palavras gerada corretamente é cerca de 5×10^60 vezes mais difícil de sofrer colisão do que uma explosão de raios gama de extinção em massa no próximo segundo

• Um gerador de números verdadeiramente aleatórios baseia-se em ruído físico, de modo que conhecer o modelo do dispositivo, número de série, horário de inicialização e o código-fonte completo ainda não leva um atacante a lugar nenhum

Este artigo foi escrito como um guia de linguagem simples. Para facilitar a leitura, alguns detalhes técnicos foram simplificados ou transformados em analogias, podendo diferir de como as coisas realmente funcionam nos bastidores. Se você precisar tomar decisões sobre a segurança de ativos reais, consulte os anúncios oficiais e um profissional.

Em 30 de julho de 2026, algo incomum aconteceu na rede do Bitcoin: no espaço de apenas 15 minutos, 500 endereços enviaram aproximadamente 594,48 BTC (cerca de 38 milhões de dólares) para um único endereço. Pouco depois, cerca de 562 BTC desse total foram transferidos para outro endereço. Isso claramente não era uma atividade normal de transferência, e mais tarde foi confirmado como sendo um hacker movimentando fundos roubados. Registro on-chain

500 source addressesone consolidation address (~594.48 BTC / ~$38M)a second address (~562 BTC)

Conforme as vítimas se apresentavam uma a uma, um fio condutor emergiu: todas elas haviam usado uma carteira de hardware Coldcard. No mesmo dia, a Coinkite, fabricante da Coldcard, emitiu um aviso de segurança, e tanto a investigação oficial quanto análises técnicas independentes confirmaram: algo realmente deu errado com a carteira ColdCard. O problema estava em como os números aleatórios eram gerados, o que significava que um invasor não precisava violar fisicamente uma Coldcard. Eles só precisavam adivinhar a frase de recuperação do usuário para esvaziar os fundos.

Então, o que realmente aconteceu aqui?

Toda essa incidência deu errado em uma etapa específica: a geração da frase de recuperação.

Aqui vai uma analogia. Normalmente, quando uma carteira de hardware gera uma frase de recuperação, é como entrar em um cofre quase infinito de chaves, pegar uma delas aleatoriamente e entregá-la a você — e essa chave abre um cofre que pertence apenas a você. Mas o software da Coldcard tinha um bug, e o intervalo de onde ele tirava as chaves encolheu daquele cofre inteiro para uma única gaveta pequena. Tudo o que você precisa fazer é testar as chaves dessa gaveta uma a uma: cada uma que abrir algo, você esvazia.

Claro, essa analogia não está totalmente correta, mas o princípio se mantém. Mais precisamente: uma atualização defeituosa da equipe de firmware da Coldcard fez com que, ao gerar uma frase de recuperação, a carteira não conseguisse chamar o gerador de números aleatórios de hardware mais seguro e usasse um gerador de números aleatórios de software "pseudo-aleatório" em vez disso. A "senha" produzida — ou seja, a frase de recuperação — simplesmente não era segura o suficiente, e foi isso que levou a este incidente.

Neste ponto, você pode estar se perguntando: por que minha frase de recuperação tem a ver com números aleatórios? Como o hacker encontrou a senha do cofre? E o que diabos é um gerador de números aleatórios? Calma, deixe-me explicar passo a passo.

O que realmente está por trás de uma frase de recuperação?

Por que uma frase de recuperação prova que os ativos são seus?

Antes de entrarmos em detalhes sobre de onde vem uma frase de recuperação, precisamos deixar uma coisa clara: a relação entre seus ativos, sua carteira e sua frase de recuperação.

Uma frase de recuperação na verdade não se parece muito com a chave de um cofre. No design subjacente de uma blockchain, seus ativos estiveram o tempo todo expostos na cadeia, como dinheiro depositado em um banco. O dinheiro em si não tem o nome do proprietário impresso nele, todo mundo pode vê-lo e, em tese, qualquer pessoa tem o direito de fazer algo com ele. Mas, obviamente, não é qualquer um que pode sacar quantias ilimitadas. Isso acontece porque, antes de você transferir qualquer coisa, a cadeia pede que você apresente uma "prova" mostrando que você detém esses ativos e que eles pertencem a você, e essa "prova" é a sua frase de recuperação.

Em outras palavras, quem quer que insira a frase de recuperação na cadeia, os ativos para os quais ela aponta são dessa pessoa, mesmo que quem esteja operando não seja você, porque tudo o que a cadeia vê é que alguém enviou uma prova válida de propriedade.

Alguém inicia uma transferênciaa cadeia pede uma provauma assinatura derivada da frase de recuperaçãoverificada, os ativos podem se mover

A cadeia confia em provas, não em pessoas.

Portanto, uma frase de recuperação se assemelha mais, em essência, a uma escritura de propriedade ou a um selo oficial que carrega um "número especial". O selo em si é fácil de falsificar; o que realmente o torna à prova de violações é o "número" especial que ele carrega e, por design, é praticamente impossível para qualquer outra pessoa adivinhar esse número.

Logo, toda a questão se resume a essa sequência de "números". De onde ela vem? E como ela mantém seus ativos seguros?

Como uma frase de recuperação passa de números para palavras?

Todos nós sabemos que os computadores funcionam com base em código binário. Textos, imagens, senhas, uma vez dentro de um computador, todos eles acabam se tornando uma sequência de 0s e 1s. As frases de recuperação não são exceção.

Por exemplo, dentro de um computador, ela pode se parecer com isto:

010101000010

Mas você pode se perguntar: uma frase de recuperação é um conjunto de palavras em inglês, não de números. Como diabos ela surge dessa sequência de 0s e 1s?

Na verdade, não é tão complicado assim. Comecemos preparando um "dicionário" que indica qual pedaço de dígitos mapeia para qual palavra. Para facilitar o entendimento, vamos montar um mini dicionário com apenas 16 palavras:

BinárioPalavra em inglêsBinárioPalavra em inglês
0000apple1000umbrella
0001book1001candle
0010moon1010river
0011pocket1011star
0100coffee1100bread
0101squirrel1101forest
0110train1110clock
0111ocean1111window

Em seguida, cortamos essa sequência de código em três partes:

0101 | 0100 | 0010

Depois, pegamos esses três pedaços e os consultamos no dicionário:

0101 → squirrel
0100 → coffee
0010 → moon

E assim, uma sequência de binários quase impossível de ler se transforma em três palavras fáceis de anotar:

squirrel coffee moon

Esse é o princípio fundamental por trás de uma frase de recuperação: ela não é um conjunto de palavras que apareceu do nada. É um número longo, dividido em vários pedaços pequenos, sendo que cada pedaço é traduzido em uma palavra usando uma lista de palavras fixa.

É claro que uma frase de recuperação real é um pouco mais complexa do que este exemplo: a lista de palavras é maior, o número é mais longo e informações de checksum são adicionadas. Mas a lógica central não muda. Uma frase de recuperação é apenas outra maneira de expressar aquela sequência de números, uma que seja mais fácil para os humanos anotarem, armazenarem e restaurarem.

Quão difícil é adivinhar 24 palavras?

Dito isso, podemos finalmente falar sobre frases de recuperação reais. Há vários padrões para gerá-las hoje em dia, que você pode encarar simplesmente como a existência de muitos "dicionários" diferentes. Vamos pegar o mais amplamente utilizado, o BIP-39, e falar sobre de onde vem realmente a segurança de uma frase de recuperação.

O dicionário BIP-39 contém 2.048 palavras, muito mais do que o que usamos em nosso exemplo, mas funciona essencialmente da mesma forma. Ele também é extraído de uma sequência muito longa de código binário. Especificamente, ele vem de uma sequência de 264 bits, onde cada 11 bits representam uma palavra, e cada palavra tem 2^11, ou seja, 2.048 possibilidades, correspondendo exatamente às 2.048 palavras do dicionário.

Mas os computadores funcionam em binário, e os números aleatórios que eles geram só podem vir em múltiplos de 2, então você não pode gerar um número aleatório de 264 bits diretamente. O que podemos fazer é pedir para ele gerar um número aleatório de 256 bits primeiro, e depois mover os primeiros 8 dígitos para o final. Agora temos 264 bits, o suficiente para uma frase de recuperação de 24 palavras.

Lembra do que vimos há pouco? A segurança da frase de recuperação, o nosso "selo oficial", vem de uma sequência especial de números, e esse número é o número aleatório por trás da frase. Também dissemos que o selo é seguro justamente porque ninguém consegue adivinhar qual número está nele. Obviamente, você não vai reivindicar os ativos de alguém adivinhando o número errado. Então, quão difícil é adivinhar esse número? Tudo se resume ao comprimento do número aleatório: um número aleatório de 256 bits tem um total de 2^256 possibilidades, o que significa 2^256 frases de recuperação possíveis, ou 2^256 endereços de carteira possíveis.

Quão grande é esse número? O número de partículas elementares no universo observável geralmente é estimado em cerca de 10^80, enquanto 2^256 ≈ 10^77. Em outras palavras, poderíamos distribuir um endereço de carteira para praticamente todas as partículas observáveis no universo. E toda a população humana é de apenas cerca de 2^33, então cada pessoa ainda poderia receber aproximadamente 2^223 endereços, o que é um 1 seguido de 67 zeros:

10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000

Portanto, um hacker tentando adivinhar sua frase de recuperação é como tentar escolher o único endereço que possui saldo entre todos eles. Isso é extraordinariamente difícil.

Mas a essa altura, alguém pode perguntar: um computador poderia gerar acidentalmente dois endereços de carteira idênticos? Nesse caso, quem chegasse segundo poderia simplesmente levar os ativos da primeira pessoa, certo? Boa pergunta, e essa possibilidade tecnicamente existe. No mundo real, porém, isso não vai acontecer. Para duas frases de recuperação BIP-39 de 24 palavras geradas de forma independente e correta, a probabilidade de serem idênticas é de 1 / 2^256 ≈ 8.6 × 10^-78.

Em comparação, artigos confiáveis estimam que a probabilidade de a Terra ser atingida no próximo segundo por uma explosão de raios gama forte o suficiente para desencadear uma extinção em massa seja de cerca de 4.4 × 10^-17. O que significa que uma colisão de frases de recuperação é aproximadamente 5 × 10^60 vezes menos provável do que um evento de extinção em massa.

O que te dá uma ideia de quão difícil é adivinhar uma frase de recuperação.

Então, o que exatamente a ColdCard fez de errado?

De 2^256 para 2^40

Uma vez que você entende o que realmente está por trás de uma frase de recuperação, é fácil entender onde a ColdCard errou.

Uma atualização defeituosa da equipe da ColdCard significou que, ao gerar frases de recuperação, o que deveria ser 2^256 frases possíveis resultou em apenas 2^40, uma lacuna impressionante em termos de escala. Você pode muito bem se perguntar como um número aleatório de 40 bits produz 24 palavras, mas não se prenda a isso. Tudo o que você precisa saber é que esse bug tornou dramaticamente mais provável que um endereço de carteira gerado pela ColdCard fosse adivinhado.

Endereços realmente gerados, apenas cerca deEnquanto uma implementação correta teria
2^40 = 1.099.511.627.7762^256 = 115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936

Vale a pena ser preciso quanto ao escopo: diferentes modelos foram afetados em diferentes graus. Os cerca de 40 bits discutidos aqui se aplicam principalmente ao Mk2 e Mk3, enquanto a estimativa para o Mk4, Mk5 e Q é de cerca de 72 bits.

Coloque os dois lado a lado e a resposta salta aos olhos: havia apenas 1.099.511.627.776 frases de recuperação possíveis saindo da ColdCard no total. Para um hacker, tudo o que é preciso é uma máquina de alto desempenho processando-as uma a uma, e há uma chance real de ir embora com os fundos. Ainda é um trabalho árduo, mas não está mais em uma escala que a humanidade não consiga lidar nesta fase.

Mesmo nesse ponto, as coisas ainda não eram catastróficas. 1.099.511.627.776 ainda é um número bastante grande e, somado à latência da rede, um hacker pode ter precisado de anos de tentativas antes de encontrar um endereço com saldo.

Infelizmente, o erro da ColdCard também significou que até o método para gerar esses valores possíveis era rastreável, o que reduziu a dificuldade enormemente.

Por que números aleatórios gerados por software podem ser adivinhados?

É porque os números aleatórios que a ColdCard usou para as frases de recuperação vieram de um "gerador de números aleatórios por software" e, a rigor, todo gerador desse tipo é "pseudo-aleatório" e seu algoritmo pode ser rastreado. Por que eu digo isso?

Primeiro, pense sobre o que a aleatoriedade realmente é. Digamos que estamos jogando uma moeda para o alto. Normalmente dizemos que cara e coroa têm cada uma 50% de chance igual e saem aleatoriamente. Isso ocorre porque, enquanto a moeda gira no ar, sua trajetória é moldada por vários fatores: com que força a jogamos, a gravidade da Terra, a força e a direção do ar-condicionado na sala, o efeito Coriolis, até mesmo pequenas vibrações de movimentos na crosta terrestre, fatores em que podemos pensar e muitos em que não podemos. Juntos, eles tornam impossível calcular o caminho da moeda no ar, então não conseguimos descobrir o resultado, e aceitamos que o lançamento de uma moeda é "aleatório".

Mas um "gerador de números aleatórios por software" roda em um algoritmo fixo. Em termos gerais, ele pega um punhado de condições iniciais, as passa por um algoritmo fixo e produz um número aleatório fixo. Em outras palavras: desde que conheçamos essas poucas condições iniciais, sabemos qual número ele produzirá e, portanto, qual será a frase de recuperação.

E, por coincidência, as condições iniciais que as pessoas normalmente usam são coisas como o carimbo de data/hora (timestamp) na geração, o carimbo de data/hora de quando o dispositivo foi inicializado, o número de série do dispositivo e assim por diante. Isso significa que um hacker só precisa fazer palpites razoáveis sobre esses números e, em seguida, projetar um algoritmo para quebrar as frases de recuperação geradas pela ColdCard. Em outras palavras, o hacker não precisa adivinhar cegamente, porque a forma como a frase é gerada segue um padrão para começo de conversa.

Como um gerador de números aleatórios de hardware realmente mantém as coisas seguras?

A raiz de tudo isso é que a ColdCard não usou um "gerador de números aleatórios verdadeiro", o que significa o gerador de números aleatórios de hardware dentro do chip do elemento seguro. Como dissemos acima, um PRNG de software comum é uma fórmula determinística:

device ID + time + algorithmrandom number

Se um invasor puder enumerar os IDs de dispositivos e o tempo, ele poderá recalcular cada resultado.

Um gerador de números aleatórios verdadeiro, por outro lado, baseia-se em fenômenos físicos, tais como:

  • ruído térmico em circuitos;
  • instabilidade (jitter) de osciladores;
  • metaestabilidade de transistores;
  • ruído de avalanche;
  • ruído quântico em alguns dispositivos;
  • erros de memória aleatórios causados por raios cósmicos.

e assim por diante, para gerar a frase de recuperação, muito parecido com o lançamento de uma moeda, onde muitos dos fatores interferentes estão simplesmente além da previsão humana. O processo se torna:

unpredictable physical noisesample and digitizecondition and hashseed a cryptographically secure PRNGgenerate the recovery phrase

Mesmo que um invasor conheça o modelo do dispositivo, o número de série, o horário de inicialização e todo o código-fonte, ele ainda não consegue retroceder até a forma de onda exata do ruído do circuito naquele momento. É com isso que se parece a aleatoriedade genuinamente confiável.

Entropia, a medida da aleatoriedade

O que é entropia?

"Entropia" parece complicado, mas você pode pensar nisso de forma simples: antes que a resposta seja revelada, quantos resultados possíveis existem?

Uma moeda normal tem dois resultados possíveis, cara e coroa. Lançá-la uma vez produz 1 bit de entropia, porque 2^1 = 2. Lance-a duas vezes e haverá quatro possibilidades: cara-cara, cara-coroa, coroa-cara e coroa-coroa, o que dá 2 bits de entropia, porque 2^2 = 4. Continue assim e 256 lançamentos darão a você 2^256 resultados diferentes, o que equivale a 256 bits de aleatoriedade.

Mas o segredo da entropia não é apenas que os resultados pareçam bagunçados. O que importa mais é que ninguém possa saber o resultado com antecedência. Se uma moeda foi adulterada para que sempre caia com a cara para cima, mesmo lançá-la 256 vezes ainda produz zero entropia, porque o resultado era previsível o tempo todo.

E se você nem mesmo confiar no gerador de números verdadeiramente aleatórios?

Se você também não confiar no gerador de números verdadeiramente aleatórios dentro da sua carteira física, há uma opção mais primitiva disponível: jogue uma moeda para o alto e crie a aleatoriedade com suas próprias mãos.

Registre cara como 0 e coroa como 1, lance a moeda 256 vezes e anote cada resultado. Isso lhe dará um número binário de 256 bits. Em seguida, em um ambiente completamente offline, calcule a soma de verificação (checksum) para esse número de acordo com o padrão BIP-39 e converta-o em 24 palavras em inglês. Essa é uma frase de recuperação completa.

flip a coin 256 timesrecord heads and tailsa 256-bit binary numbercompute the BIP-39 checksum24 recovery wordsimport into a hardware wallet

Uma ressalva aqui: os lançamentos de moeda só podem substituir a etapa de "gerar o número aleatório". Eles não podem substituir a carteira física. O armazenamento da carteira, a derivação de endereços e a assinatura de transações ainda devem ocorrer dentro do ambiente isolado de uma carteira física. Dispositivos conectados devem apenas monitorar e transmitir transações, e jamais devem entrar em contato com a sua frase de recuperação.

Não digite resultados reais de lançamento de moeda em uma página da web, e não invente uma sequência de 0s e 1s só porque ela parece aleatória. Somente quando cada resultado vier genuinamente de um lançamento imprevisível é que essa sequência de dígitos carregará aleatoriedade real.

FAQ's

Não. Os dispositivos em si não foram invadidos. Um bug de firmware fez com que as frases de recuperação fossem geradas a partir de um conjunto muito menor de valores possíveis, permitindo que os atacantes as adivinhassem por força bruta em vez de atacar o hardware.

O impacto diferiu por modelo. Os cerca de 40 bits de aleatoriedade discutidos aqui aplicam-se principalmente ao Mk2 e Mk3; a estimativa para Mk4, Mk5 e Q é de cerca de 72 bits. Consulte os comunicados oficiais da Coinkite para saber o escopo definitivo.

Um gerador de software é um algoritmo fixo alimentado com algumas condições iniciais, como carimbo de data/hora ou número de série, de modo que qualquer pessoa que possa adivinhar essas entradas pode recomputar sua saída. Um gerador de hardware amostra ruído físico imprevisível, como ruído térmico de circuitos ou instabilidade de osciladores, que não pode ser recalculado a partir de informações públicas.

Uma frase BIP-39 de 24 palavras é baseada em um número aleatório de 256 bits, oferecendo 2^256 possibilidades — aproximadamente 10^77, próximo ao número de partículas elementares no universo observável.

Sim. Registre cara como 0 e coroa como 1, jogue a moeda 256 vezes, calcule a soma de verificação (checksum) do BIP-39 offline e converta o resultado em 24 palavras. O lançamento de moedas apenas substitui a etapa de aleatoriedade — o armazenamento da carteira e a assinatura de transações ainda devem ocorrer dentro de uma carteira de hardware, e os resultados nunca devem ser digitados em uma página da web conectada.

Proteja sua jornada criptográfica com o OneKey

View details for Comprar OneKeyComprar OneKey

Comprar OneKey

A carteira de hardware mais avançada do mundo.

View details for Baixar aplicativoBaixar aplicativo

Baixar aplicativo

Negocie ativos globais. Comece em poucos minutos, apenas com o seu email.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Clareza Cripto—A uma chamada de distância.

Continue lendo