Validação e Armazenamento de Frases Mnemônicas com Python
Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.
Validação e Armazenamento de Frases Mnemônicas com Python
Frases mnemônicas (ou seed phrases) são a base da segurança em carteiras de criptomoedas. Este conteúdo apresenta um projeto Python que gera combinações de palavras para construir frases mnemônicas válidas, validando-as com a biblioteca bip_utils e armazenando os dados gerados em um banco SQLite. A solução é voltada a desenvolvedores, auditores e pesquisadores que desejam entender o funcionamento das derivações de chaves no ecossistema Bitcoin.
Sobre a Biblioteca bip_utils
A biblioteca bip_utils permite trabalhar com diversos padrões de geração de chaves e frases mnemônicas em Bitcoin, Ethereum e outras redes compatíveis com BIP32/BIP39/BIP44. O projeto pode ser encontrado no repositório oficial em:
https://github.com/ebellocchia/bip_utils.
Objetivo do Script
O script abaixo executa as seguintes tarefas:
- Carrega uma base de palavras de um arquivo
palavras.txt. - Cria combinações finais para construir frases mnemônicas com 24 palavras.
- Valida se a frase é compatível com o padrão BIP39.
- Gera a chave privada e a chave WIF correspondente.
- Armazena os dados no banco SQLite, evitando duplicações.
Banco de Dados SQLite
Antes de processar as frases, o script cria uma tabela chamada mnemonics com colunas para:
- frase: frase mnemônica validada.
- private_key: chave privada em hexadecimal.
- wif: chave no formato WIF.
Funções do Script
O script conta com as seguintes funções principais:
- criar_tabela_se_nao_existir(): cria a estrutura de banco.
- carregar_palavras(): importa as palavras base de um arquivo externo.
- verificar_mnemonica(frase): valida a frase, gera as chaves e insere no banco.
- obter_ultima_frase(): recupera a última frase salva, para continuar o processamento de onde parou.
- gerar_frases(): gera e valida todas as combinações possíveis com base fixa + três últimas palavras variáveis.
Exemplo de Frase Base
O script usa uma base de 21 palavras fixas, como no exemplo:
trim build repair either cricket vocal wink engage puzzle poem bike ...
A essa base, são adicionadas três palavras combinadas a partir do conteúdo do arquivo palavras.txt. Isso gera frases completas com 24 palavras.
Trecho de Código: Validação Mnemônica
def verificar_mnemonica(frase):
global d_contador, c_contador, valid_frases_printed
try:
seed_bytes = Bip39SeedGenerator(frase).Generate()
bip44 = Bip44.FromSeed(seed_bytes, Bip44Coins.BITCOIN)
private_key = bip44.PrivateKey().Raw().ToHex()
wif = bip44.PrivateKey().ToWif()
inserir_no_banco(frase, private_key, wif)
c_contador += 1
if c_contador % 10000 == 0:
valid_frases_printed += 1
print(f"Frase válida #{c_contador}: {frase}")
print(f"\tFrases descartadas: {d_contador} \t|\tFrases válidas: {c_contador}", end='\r')
except Exception as e:
d_contador += 1
print(f"\tFrases descartadas: {d_contador} \t|\tFrases válidas: {c_contador}", end='\r')
Exemplo de Saída no Terminal
O processo exibe no console um acompanhamento em tempo real:
Frases descartadas: 11452 | Frases válidas: 48
Segurança e Ética
- Este tipo de código não deve ser usado para tentar acessar carteiras de terceiros.
- Não compartilhe frases mnemônicas geradas com ninguém.
- Utilize esta ferramenta apenas com fins educacionais, de auditoria pessoal ou testes controlados.
Responsabilidade Individual
O conteúdo apresentado tem finalidade educativa. Nunca envie ou armazene fundos em carteiras cujas chaves privadas você não compreende ou não controla. Cada usuário deve fazer sua própria análise antes de investir tempo ou recursos em sistemas relacionados à segurança criptográfica.

Comentários
Comente só assim vamos crescer juntos!