
Conversão e Validação de Chaves WIF em Bitcoin
Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.
Conversão e Validação de Chaves Privadas WIF
Este artigo apresenta um utilitário em Python para converter e validar chaves privadas do formato WIF (Wallet Import Format) para hexadecimal e vice-versa, utilizando a codificação Base58Check. Esta ferramenta é útil para desenvolvedores, auditores de segurança e entusiastas de criptomoedas que desejam entender melhor o funcionamento interno das carteiras Bitcoin.
O que é WIF?
WIF, ou Wallet Import Format, é um formato codificado em Base58Check utilizado para importar/exportar chaves privadas com segurança em carteiras Bitcoin. Ele inclui:
- Prefixo (
0x80
) que indica uma chave privada padrão; - Bytes opcionais indicando se a chave é comprimida;
- Checksum para garantir integridade dos dados.
Utilidade do Script
O script realiza as seguintes funções:
- Decodificação Base58: converte strings codificadas para bytes.
- Validação Base58Check: garante que o checksum é válido.
- Conversão WIF → Hex: extrai a chave privada em hexadecimal, detectando se está comprimida.
- Conversão Hex → WIF: gera WIF válido a partir de uma chave hexadecimal.
Funções do Script em Python
base58_decode
Converte uma string Base58 para bytes. Valida os caracteres usando o alfabeto definido para Bitcoin:
BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
base58check_encode e base58check_decode
Essas funções garantem integridade dos dados por meio de duplo hash SHA-256 e comparação com checksum:
base58check_encode(data)
→ retorna string Base58Check.base58check_decode(s)
→ retorna o payload se checksum for válido.
wif_to_hex
Converte uma chave WIF para hexadecimal, verificando se é comprimida:
hex_key, is_compressed = wif_to_hex('5KJo41DNfD3qPVMv9Dv1AcufqrbaxiaMKP7dNYzmu673YTUuWMa')
hex_to_wif
Converte uma chave hexadecimal para WIF, com ou sem compressão:
wif = hex_to_wif(hex_key, compressed=True)
Exemplo de Execução
Ao executar o script com o WIF fornecido, temos:
Hexadecimal: 67b20b0a06606f85d6c0621175fc0323dd81fc0d15e7109c0f170e7ad93b0c93
Comprimida? True
WIF Comprimida: L3eZf2qKUXEuRfaT13XUSdVLzX7DPnbUoWWay7MpYwtqKHL7BDqT
Resumo das Ferramentas e Scripts
Script | Tema | Funções Principais |
---|---|---|
1 | Geração de Endereços Bitcoin | Cria endereços a partir de intervalos de chaves privadas, comparando com banco de dados |
2 | Utilitários Base58Check e Conversão WIF/Hex | Converte e valida WIF, transforma em hexadecimal e vice-versa |
Segurança e Uso Responsável
Este utilitário é fornecido para fins educacionais e técnicos. O uso de chaves privadas requer extremo cuidado. Nunca compartilhe ou utilize chaves privadas em ambientes não seguros.
Aviso: Toda decisão de uso, investimento ou movimentação de criptomoedas deve ser feita com base em conhecimento e análise pessoal. Não siga qualquer procedimento sem entender completamente os riscos envolvidos.
Link oficial da biblioteca
Este script não depende de bibliotecas externas, mas está alinhado com os conceitos definidos na documentação oficial do WIF na Wiki do Bitcoin.