Autor: Tyler
Recentemente vi a nova obra de grande sucesso do irmão Jackie Chan, “Capturar o Vento e Perseguir Sombras”. Há uma cena bastante interessante - ativos criptográficos no valor de centenas de bilhões de dólares de Hong Kong, trancados em uma carteira de palavras-chave de 12 palavras, e no final, apenas a última palavra permanece desconhecida.
Eu fui experimentar depois de assistir e descobri que a 10ª e a 12ª palavras não estão no dicionário padrão de mnemônicos. Claramente, o roteirista fez isso de propósito, para evitar que alguém recriasse a carteira seguindo a trama e cometesse fraudes, afinal, esse tipo de golpe na blockchain não é incomum:
Os fraudadores podem intencionalmente vazar um endereço de carteira “com saldo” (típico na rede Tron, utilizando o mecanismo Owner), induzindo as pessoas a transferirem Gas, esperando que as vítimas caiam na armadilha; uma vez que os fundos são transferidos, não podem ser recuperados.

Mas a parte interessante aqui é que o filme diz que falta apenas a última palavra sem saber. No entanto, no mundo real, as palavras-memória seguem o padrão BIP39, totalizando 2048 palavras, ou seja, uma quebra de força bruta da última posição tem no máximo 2048 possibilidades. Se restringirmos ainda mais o intervalo, por exemplo, sabendo que a letra inicial é “es” como no filme, as possibilidades são ainda menores e podem ser testadas em um minuto.
No entanto, a questão que merece ser revisitada além do filme é: Quais são as relações entre a frase-secreta, a chave privada e a chave pública? Por que perder a frase-secreta significa perder todos os ativos?
A frase de recuperação é um método de backup que segue o padrão BIP39, composta por 12, 18 ou 24 palavras selecionadas aleatoriamente e combinadas a partir de um vocabulário de 2048 palavras em inglês.
Após o processamento deste conjunto de palavras-chave pelo algoritmo PBKDF2, será gerada uma semente (Seed), que, a partir desta Seed, derivará uma série de chaves privadas de acordo com os padrões de caminho BIP32/BIP44, correspondendo assim a uma série de chaves públicas/endereço.
Um conjunto de palavras-chave → Gera uma série de chaves privadas → Gera uma série de chaves públicas → Correspondem a uma série de endereços
Em outras palavras:
Portanto, pode-se considerar a frase de recuperação como o seu “conjunto de chaves”, e cada chave privada é como uma das chaves que pode abrir uma porta, utilizada para assinar e provar o seu controle sobre um determinado endereço de carteira — quando você inicia uma transação, é com a chave privada que assina, dizendo a toda a rede: “Esta transferência é autorizada por mim.”
Então, alguns amigos podem achar: será que posso reunir 12 palavras por conta própria? Por exemplo, data de aniversário, palavra em inglês favorita, nome do ídolo, assim fica mais personalizado.
A resposta é: sim, mas é extremamente perigoso.
Porque os números aleatórios gerados por computador são verdadeiramente aleatórios, enquanto as palavras escolhidas pelos humanos geralmente seguem padrões (palavras comuns, palavras habituais, preferências de ordem), o que reduz significativamente o espaço de busca, tornando suas palavras-chave mais fáceis de serem adivinhadas.

Já houve incidentes de segurança com “carteiras pseudo-aleatórias”, onde algumas carteiras usaram algoritmos pseudo-aleatórios para gerar frases de recuperação, resultando em entropia insuficiente, sendo quebradas por hackers através de ataques de força bruta — em 2015, o grupo de hackers Blockchain Bandit explotou geradores de números aleatórios defeituosos e vulnerabilidades de código, procurando sistematicamente chaves privadas de segurança fraca, conseguindo escanear mais de 700 mil endereços de carteiras vulneráveis e roubando mais de 50 mil ETH deles.
Claro que alguns geeks usarão dados (é necessário garantir que os dados sejam suficientemente justos) para gerar números aleatórios, que serão mapeados para o vocabulário BIP39, isso é considerado seguro manualmente, mas para a maioria das pessoas, não é necessário complicar tanto, pois isso pode levar a erros.
Eu também já imaginei essa questão no passado, sonhando que um dia geraria um endereço de carteira e, ao olhar, veria mais de um milhão de ETH, alcançando a liberdade financeira instantaneamente, roubando a casa de algum grande investidor.
Não posso deixar de dizer que só de pensar já é tentador. Mas a realidade é: a probabilidade é quase zero.
Por quê? Porque o número possível de combinações de frases de recuperação é tão exagerado que ultrapassa a imaginação humana:
Qual é o conceito deste nível de magnitude?
Sabemos que a quantidade de areia na Terra é incalculável, mas os cientistas estimaram um valor aproximado. Supondo que todas as praias e desertos da Terra somem, o total de grãos de areia é cerca de 7,5×10¹⁸ grãos, o que também significa:
Em outras palavras, é como se cada grão de areia na Terra se tornasse um “novo planeta Terra”, e cada novo planeta Terra tivesse praias e grãos de areia, e você tivesse que encontrar aquele grão previamente marcado entre todos esses grãos de areia de uma só vez.
Isto já ultrapassa de longe a escala que a humanidade pode imaginar.

Portanto, a probabilidade de quebrar uma carteira por força bruta não é “extremamente baixa”, mas, com o conhecimento da física e da capacidade computacional, é equivalente a zero. Confiar em “banco de dados” para enriquecer é pior do que jogar na loteria, a probabilidade de ganhar é muito maior.
Voltando àquela configuração do filme: se realmente houver alguém que só falta uma palavra da frase mnemônica, então é de fato possível tentar através de uma força bruta.
Por fim, algumas dicas de segurança sobre carteiras/frases de segurança/chaves privadas: