BIP-39 — El estándar detrás de la seed phrase
El problema
Las claves privadas de Bitcoin son números de 256 bits: cadenas larguísimas de ceros y unos (o su equivalente hexadecimal) que ningún humano puede memorizar ni transcribir sin errores. Antes de BIP-39, respaldar una wallet significaba manejar estos números directamente, un proceso frágil y propenso a fallos. BIP-39, propuesto en 2013 por Marek Palatinus, Pavol Rusnak, Aaron Voisine y Sean Bowe, resolvió esto traduciendo la aleatoriedad a un idioma que los humanos sí pueden manejar: palabras.
Cómo funciona: de la entropía a las palabras
El proceso tiene tres pasos. Primero, la wallet genera un número aleatorio (entropía) de 128 a 256 bits. Cuanta más entropía, más palabras y mayor seguridad: 128 bits producen 12 palabras; 256 bits producen 24. Segundo, se añade un checksum: los primeros bits del hash SHA-256 de la entropía, que actúan como dígito de control para detectar errores de transcripción. Tercero, la cadena resultante (entropía + checksum) se divide en grupos de 11 bits, y cada grupo de 11 bits se convierte en un índice que apunta a una palabra en la lista de 2.048 palabras del estándar.
Las palabras se eligieron con criterios estrictos: no comparten las primeras cuatro letras (para evitar confusiones), no tienen acentos ni caracteres especiales en la lista inglesa, y existen listas oficiales en varios idiomas (español, francés, italiano, japonés, entre otros), aunque la lista inglesa es la más universalmente soportada.
De las palabras a la semilla binaria
El segundo gran componente de BIP-39 es la conversión de las palabras en una semilla de 512 bits que alimenta el árbol de derivación de BIP-32 (HD wallets). Para ello se usa PBKDF2 con 2.048 iteraciones de HMAC-SHA512. La frase mnemotécnica actúa como contraseña y la cadena «mnemonic» + passphrase (si existe) actúa como sal. Este diseño tiene una consecuencia importante: la misma frase con distinta passphrase produce una semilla completamente diferente, y por tanto una wallet distinta.
El checksum: detección de errores
Cada frase BIP-39 incluye bits de checksum. Si al transcribir cometes un error en una palabra, el checksum no cuadrará y la wallet lo detectará. Esto no te protege contra todas las combinaciones posibles de error, pero sí contra la gran mayoría de errores de copia. Por eso tu wallet te pide que «confirmes el backup» volviendo a introducir las palabras: está verificando el checksum.
Lo que BIP-39 NO es
BIP-39 no es un método para convertir frases inventadas por humanos (brainwallets) en wallets. Las palabras deben provenir de entropía genuinamente aleatoria — generada por el dispositivo, no por tu cabeza. Usar frases de libros, canciones o datos personales como seed es extremadamente inseguro: la entropía humana es predecible y los atacantes lo saben.
Tampoco es el único estándar: Electrum Wallet usa su propio esquema de seed, y SLIP-39 (Shamir Backup) permite dividir la seed en múltiples fragmentos. Si usas uno de estos esquemas alternativos, tu seed no será recuperable en una wallet BIP-39 estándar.
¿Por qué importa?
BIP-39 es lo que hace posible que millones de personas respalden su soberanía financiera con 12 o 24 palabras escritas en un papel. Sin este estándar, la autocustodia sería un ejercicio técnico reservado a criptógrafos. Con él, cualquiera puede guardar, transportar y recuperar el acceso a su bitcoin con algo que cabe en una tarjeta. Es, quizá, el BIP más directamente impactante para el usuario final de todo el ecosistema.
Errores habituales
- Generar una seed a partir de palabras inventadas por ti (brainwallet) en lugar de entropía aleatoria del dispositivo
- Asumir que cualquier secuencia de 12 palabras de la lista es una seed válida (debe incluir el checksum correcto)
- No saber qué estándar usa tu wallet (si es Electrum o SLIP-39, no es compatible con BIP-39)
- Usar una lista de palabras en un idioma no soportado por tu wallet de recuperación
- Confundir la seed phrase (las palabras) con la semilla binaria (el número de 512 bits que se deriva de ellas)
Conceptos relacionados
Fuentes primarias
- BIP-39 (github.com/bitcoin/bips)
- Marek Palatinus, Pavol Rusnak et al. (2013)
- Trezor Academy: What is BIP39?