MSTR Cat

Blockchain/Nivel II · Mecánica/2.1 Criptografía/Lección 7

Frases de semilla (BIP39)

Doce palabras, una suma de verificación y la semilla de 512 bits que controla todo

MaterialesLa lista de palabras en inglés de BIP39 (github.com/bitcoin/bips)Un cuaderno

Curiosidad

  1. ¿Por qué una secuencia aleatoria de bits se convierte en doce palabras en inglés en lugar de quedarse como hexadecimal?
  2. ¿Qué sucede con la billetera si se intercambia una palabra de la frase por otra de la misma lista?
  3. ¿Cómo es posible que las mismas doce palabras generen dos billeteras completamente diferentes?

Explorar

  1. BIP39, desarrollado en 2013 por ingenieros incluido el equipo detrás de la billetera hardware Trezor, convierte la entropía criptográfica bruta en una secuencia mnemónica legible para humanos. Copiar manualmente 32 o 64 caracteres hexadecimales conlleva errores; las palabras son más fáciles de escribir, leer y verificar. La norma define una correspondencia determinista entre secuencias binarias y palabras extraídas de un diccionario fijo, lo que permite a los usuarios recuperar toda su jerarquía de claves memorizando o anotando una lista corta.
  2. El proceso comienza con la entropía: una secuencia aleatoria de 128, 160, 192, 224 o 256 bits. A esta entropía se le agrega un checksum tomando los primeros N bits de su hash SHA-256, donde N es igual a la longitud de la entropía dividida entre 32. En el caso de una frase estándar de 12 palabras (entropía de 128 bits), esto añade 4 bits; en el caso de 24 palabras (entropía de 256 bits), añade 8 bits. Este checksum permite que el software del monedero detecte la mayoría de los errores de transcripción inmediatamente al importarlos.
  3. La cadena combinada de entropía y checksum se divide en segmentos de 11 bits, cada uno de los cuales hace referencia a una palabra de la lista en inglés de BIP39, que cuenta con 2.048 entradas únicas. La lista fue seleccionada de tal manera que ninguna dos palabras compartan las mismas cuatro primeras letras, lo que reduce la ambigüedad durante la transcripción manual. Dado que el segmento final incluye parte del checksum, las palabras elegidas al azar suelen fallar: solo aproximadamente 1 de cada 16 secuencias aleatorias de 12 palabras pasa la verificación del checksum (1 de cada 256 para 24 palabras).
  4. Para obtener la semilla real utilizada para la generación de claves, se introduce la frase mnemónica y una contraseña opcional en PBKDF2-HMAC-SHA512 con 2.048 iteraciones. La sal se construye a partir de la cadena literal ‘mnemonic’ seguida de la contraseña (o simplemente ‘mnemonic’ si no existe ninguna contraseña). Esta función de estiramiento produce una semilla determinista de 512 bits. Cuando se utiliza una contraseña, un atacante que posea las doce palabras aún no podrá obtener la semilla sin ella, siempre y cuando la contraseña sea lo suficientemente fuerte como para resistir intentos de adivinación.
  5. Este mecanismo crea un modelo de seguridad de doble capa. La mnemónica proporciona capacidad de recuperación y detección básica de errores, mientras que la frase secreta funciona como una capa de “billetera oculta”. Algunos usuarios mantienen una pequeña billetera de señuelo con palabras simples y sus fondos principales detrás de una frase secreta. Sin embargo, esto también representa un riesgo: si se olvida o se pierde la frase secreta, el acceso a los fondos se revoca de forma permanente, ya que no hay manera de recuperarlos únicamente con la mnemónica.
  6. No todas las billeteras siguen el estándar BIP39; Electrum utiliza su propio esquema, y SLIP-0039 divide los secretos en partes Shamir para una custodia multi-partes. No obstante, BIP39 sigue siendo el estándar dominante debido a su amplia compatibilidad con dispositivos hardware y aplicaciones de software. La semilla de 512 bits generada aquí sirve como entrada principal para la derivación jerárquica determinística de claves según BIP32, lo que significa que cada clave privada en una billetera puede rastrearse hasta esta combinación específica de frase y contraseña.

Datos clave

  • BIP39 convierte 128-256 bits de entropía más un checksum SHA-256 en 12-24 palabras de una lista de 2,048 palabras.
  • La lista de palabras en inglés está diseñada de tal manera que las primeras cuatro letras identifican de forma única cada palabra.
  • PBKDF2-HMAC-SHA512 con 2,048 iteraciones convierte el mnemónico y la contraseña en una semilla de 512 bits.
  • Una contraseña diferente aplicada al mismo mnemónico genera una billetera completamente distinta y válida.
  • Perder las palabras mnemónicas o la contraseña asociada conlleva una pérdida permanente del acceso a los fondos.
  • SLIP-0039, un estándar separado e incompatible, divide un secreto en partes de Shamir para la recuperación por umbral.

Ejercicio nueve, seis, tres, uno

9ReunirEnumera 9 billeteras o dispositivos de firma y anota si cada uno utiliza BIP39, su propio esquema o SLIP-39.
6AgruparAgrupa los 9 en 6 según la forma en que respaldan las claves: 12 palabras, 24 palabras, palabras más frase de contraseña, compartimentos de Shamir, configuración multisig u otra.
3DestilarReduce las 6 a 3 compensaciones entre la facilidad de recuperación y la resistencia al robo.
1CristalizarEscribe 1 oración que explique por qué la palabra final de una frase BIP39 es matemáticamente distinta de las once anteriores.

Verificación de hechos

Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.

Abrir en la academia interactiva →

EN PT ZH JA KO RU DE FR MS