En este artículo profundizaremos en la utilización de BIP32 y BIP44 para la creación y gestión de carteras HD (Determinísticas Jerárquicas) en Bitcoin. Veremos desde los fundamentos criptográficos hasta ejemplos prácticos de derivación de claves y la correcta organización de rutas.
Conceptos básicos de BIP32 y BIP44
BIP32: Claves determinísticas jerárquicas
El
Elementos clave en BIP32
Master seed: origen único de entropía.
Master private key (m): clave privada raíz derivada de la semilla.
Master chain code: vector de 32 bytes que se usa junto a la clave para derivación.
Child keys: claves derivadas pública o privadas, indexadas por un número.
BIP44: Estándar de rutas para múltiples criptomonedas
El
Estructura de la ruta de derivación
m / purpose / coin_type / account / change / address_index
purpose = 44 (indica uso de BIP44)
coin_type = 0 para Bitcoin (según SLIP-0044)
account = número de cuenta, separa balances.
change = 0 para externas, 1 para internas (cambio).
address_index = índice de la dirección dentro de la cuenta.
Diferencias clave entre BIP32 y BIP44
| Característica | BIP32 | BIP44 |
|---|---|---|
| Derivación | Claves jerárquicas genéricas | Rutas estandarizadas multi-criptomoneda |
| Estructura | m / index | m / 44 / coin_type / account / change / index |
| Uso | Flexibilidad total | Interoperabilidad de carteras |
Implementación práctica en carteras HD
1. Generación de la semilla y clave maestra
Utilizar un generador de mnemonics BIP39 para crear 12–24 palabras.
Convertir el mnemonic a semilla con función PBKDF2-HMAC-SHA512.
Derivar la clave maestra (m) y chain code usando HMAC-SHA512.
2. Derivación de la ruta BIP44 para Bitcoin
Siguiendo la ruta m/44/0/0/0/0 obtenemos la primera dirección externa de la cuenta 0.
m → derivar index 44 (purpose).
44 → derivar index 0 (coin_type para BTC).
0 → derivar index 0 (cuenta 0).
0 → derivar rama de cambio externo.
0 → obtener address_index = 0.
3. Exploración de direcciones y gestión de saldos
Para generar múltiples direcciones externas, basta incrementar el
Escaneo de UTXO: comprobar saldo de cada dirección.
Para direcciones de cambio internas usar change = 1 en la ruta.
Manejo de carteras determinísticas: solo almacenar la semilla o clave maestra.
4. Seguridad y copias de respaldo
Almacenar siempre el mnemonic o semilla en un lugar offline (hardware wallet o papel).
Proteger la semilla con passphrase opcional BIP39 para derivación adicional.
Verificar integridad de respaldos con checksum del mnemonic.
Recursos y referencias
BIP32 (Bitcoin Improvement Proposal 32)
Con esta guía detallada, podrás implementar y gestionar de forma segura carteras HD compatibles con BIP32 y BIP44 en tus proyectos de Bitcoin.
