Como Encontrar Chaves Privadas de Endereços Bitcoin com Python
Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.
Como Encontrar Chaves Privadas de Endereços Bitcoin com Python
Este artigo apresenta um script avançado em Python que tenta encontrar chaves privadas correspondentes a endereços do Bitcoin utilizados por grandes carteiras (“rich list”), com base em abordagens de força bruta e hashing sequencial. Apesar de **altamente improvável** obter sucesso devido ao espaço gigantesco de chaves possíveis, este projeto serve como exercício acadêmico para entender criptografia de curvas elípticas, endereços WIF e geração de chaves públicas.
⛓️ Contexto e Objetivo do Script
O intuito é usar uma lista de endereços Bitcoin (por exemplo, exportados de 99Bitcoins Rich List) e, utilizando insumo de entropia ou hashing iterativo, tentar encontrar uma correspondência entre chaves privadas e esses endereços. O que é praticamente impossível na prática — mas didaticamente valioso.
Configurações Iniciais e Limites
- RICHLIST_TXT: arquivo com endereços de Bitcoin a serem testados;
- MAX_ADDRESSES: quantidade máxima de endereços a serem carregados;
- MIN_SATOSHIS: valor mínimo (em satoshis) para filtrar endereços com valor mais alto.
📘 Estrutura Geral do Script
- Carregamento da lista de endereços e filtragem;
- Geração de um “seed” inicial ou recebimento via parâmetro para hashing;
- Ciclo de hashing SHA‑256 sequencial (ou geração aleatória via
secrets.token_bytes); - Transformação das chaves privadas em WIF e correspondente endereço público;
- Comparação com endereços da rich list até achar uma correspondência ou atingir o limite de tentativas.
🔐 Geração de Endereço Bitcoin
O fluxo interno segue estes passos:
- Gerar
secretcomo 32 bytes pseudo-aleatórios; - Converter em chave pública via curva secp256k1 (
ecdsa.SigningKey); - Hash SHA-256 + RIPEMD-160 para “endereçar” o endereço;
- Codificação com
base58para formato WIF ou endereço público padrão.
🧮 Controle de Fluxo e Interrupção
Para grandes execuções, o script permite:
- Ler o número de iterações via argumento
maxreps; - Interromper com Ctrl+T ou similar e mostrar progresso de tentativas;
- Finalizar com mensagem “JACKPOT!” se houver correspondência.
📋 Trecho Principal Com Resumo
def spin(secret=None, richlist=None, maxreps=None, fake_success=False):
# Carrega richlist, configura seed e repetições máximas
# Gera secret via secrets.token_bytes ou SHA-256 da seed
# Loop: gerar private, address; comparar com lista
# Se encontrar, exibe seed, private, address, reps
pass
⚠️ Por que não funciona na prática?
O universo de chaves privadas é ~2256 possibilidades — muito além do alcance mesmo de supercomputadores. Encontrar uma chave que corresponda a um endereço com saldo é astronomicamente improvável. Este projeto serve exclusivamente para aprendizado de criptografia de curva elíptica, hashing e codificação Bitcoin.
📌 Recomendações Finais
Embora seja um experimento fascinante, lembre-se: **não tente usar esse código para acessar carteiras reais** — é ilegal, eticamente incorreto e praticamente inviável. Use-o apenas como ferramenta de estudo e exercite boas práticas de segurança e criptografia.
Lembre-se: qualquer tentativa de acesso não autorizado é crime e a chance de sucesso é próxima de zero. Use esse conteúdo para aprender, não para ações maliciosas.
🔗 Recursos e Documentação
- python‑ecdsa – biblioteca ECDSA para Python;
- base58 – encoding/decoding base58;
- hashlib – hashes SHA‑256;
- secrets – geração de bytes seguros em Python 3.6+.

Comentários
Comente só assim vamos crescer juntos!