Las billeteras modernas respaldan una sola frase semilla y derivan cada clave de ella. Varios BIP definen cómo.
BIP39: palabras a semilla
La billetera genera de 128 a 256 bits de entropía aleatoria y añade un checksum. El resultado se divide en trozos de 11 bits, cada uno asignado a una de 2.048 palabras, dando de 12 a 24 palabras. Las palabras, más una frase de contraseña opcional, pasan por PBKDF2-HMAC-SHA512 con 2.048 iteraciones y sal "mnemonic"+passphrase, produciendo una semilla de 512 bits. Una frase de contraseña distinta da una billetera completamente distinta.
BIP32: el árbol de claves
HMAC-SHA512 de la semilla da una clave privada maestra y un chain code de 32 bytes. Desde cualquier clave se puede derivar un hijo por índice:
- Hijos normales (índice por debajo de 231) pueden derivarse de la clave pública padre, así que una clave pública extendida (xpub) puede generar todas las direcciones de recepción sin ninguna clave privada. Ideal para billeteras solo-lectura y comercios.
- Hijos endurecidos (índice 231 y superior, escritos con ' o h) necesitan la clave privada padre. Impiden que una clave privada hija filtrada más la xpub expongan al padre.
BIP44/49/84/86: rutas estándar
Las rutas tienen la forma m / purpose' / coin' / account' / change / index.
m/44'/0'/0'/0/0: primera dirección legacy (1…).m/49'/…: SegWit envuelto (3…).m/84'/…: SegWit nativo (bc1q…).m/86'/…: Taproot de una sola clave (bc1p…).
El tipo de moneda 0' es Bitcoin y 1' es testnet. Change 0 es para recibir y 1 para el cambio. BIP44 también define un límite de hueco de 20: las billeteras dejan de escanear tras 20 direcciones sin usar seguidas.
Donde falla
Una frase semilla no dice qué rutas o tipos de script se usaron. Restaurar en otra billetera puede mostrar saldo cero hasta que escanee la ruta correcta. Los descriptores de salida lo resuelven escribiendo la receta completa.
Nota de seguridad
Cualquiera con tus palabras semilla, y la frase de contraseña si se usa, tiene tus monedas. Nunca las escribas en un sitio web.