Frase Mnemónica y Seed
Representa un número aleatorio grande como una secuencia de palabras
BIP 39: Mnemonic code for generating deterministic keys
Una frase mnemónica ("seed mnemónica", "frase semilla") representa un número aleatorio grande como una secuencia de palabras, lo que facilita que los humanos la almacenen.
Esas palabras se usan luego para crear una seed, que se usa para generar las claves extendidas en una cartera HD.
Una frase mnemónica suele tener 12 o 24 palabras. Cualquiera de las dos es perfectamente adecuada.
Creando
¿Cómo creas una frase mnemónica y una seed?
Hay tres pasos:
1. Generar Entropía
Empieza generando alguna entropía (la fuente de aleatoriedad). Es un número aleatorio de 128 bits (para 12 palabras) a 256 bits (para 24 palabras).
2. Entropía → Frase Mnemónica
Añade un checksum a la entropía (los primeros bits del SHA-256 de ella), divide el resultado en grupos de 11 bits, y asigna cada grupo de 11 bits (un número de 0 a 2047) a una palabra de la lista de 2048 palabras de BIP39.
SHA-256
3. Frase Mnemónica → Seed
La frase mnemónica pasa por la función PBKDF2 (con HMAC-SHA512, 2048 iteraciones) para producir una seed de 512 bits (64 bytes). Opcionalmente, puedes añadir una frase de acceso (passphrase) como "sal" extra, creando una seed completamente diferente.
La frase de acceso opcional funciona como una "25ª palabra": aunque alguien descubra tus 12/24 palabras, sin la frase de acceso no puede derivar la seed correcta.
Validación
¿Cómo se valida la frase mnemónica?
Como la frase mnemónica contiene un checksum incorporado (derivado de la entropía), la cartera puede detectar si escribiste una palabra incorrecta o en el orden equivocado: la frase no pasará la verificación del checksum.
Nunca compartas tu frase mnemónica. Cualquier persona con acceso a ella tiene acceso a todos los bitcoins de tu cartera.