¿Qué es un análisis de frecuencia mnemotécnica y por qué solo necesito 4 letras de mis palabras clave?

Cryptosteel solo permite almacenar las primeras 4 letras de cada palabra de mi semilla mnemotécnica, las preguntas frecuentes me dicen por qué:

[...] solo necesitas ensamblar las primeras 4 letras de cada palabra. Esas 4 letras son únicas y suficientes para recuperar la sentencia y la billetera bitcoin completa. Hicimos un análisis de frecuencia y determinamos el conjunto mínimo de letras que se necesitan para crear el Cryptosteel.

¿Qué es un análisis de frecuencia mnemotécnico? ¿Por qué solo necesito las primeras 4 letras?

Solo estoy usando una semilla mnemotécnica en la billetera de Android Greenbits de GreenAddress. Sin embargo, usa fases de 24 o 27 palabras y no 12. Traté de recuperar mi semilla solo de las primeras 4 letras, pero la billetera se queja de que algunas de ellas no son palabras reales .

Supongo que GreenAddress está usando algo diferente a las semillas BIP39 y la regla de las primeras 4 letras no se aplica a todas las semillas, ¿es correcto?

Respuestas (2)

Hay varias preguntas que se hacen aquí.

En primer lugar, algunos antecedentes. BIP39 es un estándar que incluye listas de palabras.

El inglés se puede encontrar en https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

¿Qué es un análisis de frecuencia mnemotécnico?

Esta es una forma elegante de decir que calcularon la cantidad mínima de letras que necesitan almacenar para identificar de manera única qué palabra de la lista de palabras querías decir .

Haré un análisis de una pequeña lista de palabras (estas palabras están en BIP39) aquí mismo como ejemplo.

Imagina que esta es mi lista de palabras:

abandon, ability, crane, crash.

Solo tiene 4 palabras en toda la lista, por lo que el análisis es bastante simple.

Ahora, las palabras más largas son "abandonar" y "habilidad" con 7 cada una.

Al darme cuenta de esto, podría decir en este punto que, siempre que sepa hasta las primeras 7 letras de cualquier palabra en la lista de palabras, puedo decirle qué palabra es en la lista. Sin embargo, esto no es muy impresionante, ya que te estoy devolviendo las mismas palabras que me diste a mí.

Alternativamente, podría comenzar desde el extremo inferior y ver que simplemente sabiendo si la primera letra es ao c, ya puedo decirle en qué mitad de la lista de palabras está su palabra.

La segunda carta no me brinda información adicional, ya que será abo cr: estas son las únicas opciones.

La tercera letra me permite distinguir entre abandono y habilidad , pero no me dice nada acerca de las palabras que comienzan con cra.

La cuarta letra, sin embargo, me permite diferenciar de manera completa y única cada palabra en mi lista de palabras.

frecuencias de 1 letra

  • un = 2
  • c = 2

frecuencias de 2 letras

  • ab = 2
  • cr = 2

frecuencias de 3 letras

  • aba = 1
  • abi = 1
  • cra = 2

frecuencias de 4 letras

  • aban = 1
  • capacidad = 1
  • grúa = 1
  • cras = 1

Xkcd relacionado: https://what-if.xkcd.com/34/

¿Por qué solo necesito las primeras 4 letras?

Porque el análisis que cryptosteel hizo en la lista de palabras BIP39 completa (no solo en mi lista de juguete de 4 palabras) también tuvo el mismo resultado: no se necesitaron más de 4 letras para recuperar una palabra única de la lista.

Solo estoy usando una semilla mnemotécnica en la billetera de Android Greenbits de GreenAddress. Sin embargo, usa fases de 24 o 27 palabras y no 12. Traté de recuperar mi semilla solo de las primeras 4 letras, pero la billetera se queja de que algunas de ellas no son palabras reales. Supongo que GreenAddress está usando algo diferente a las semillas BIP39 y la regla de las primeras 4 letras no se aplica a todas las semillas, ¿es correcto?

Es correcto que la regla de las "primeras 4 letras" no se aplica a todas las semillas. Es específico de la lista de palabras utilizada en BIP39, por lo que se aplicaría a las semillas que usan la misma lista de palabras y probablemente a las semillas que usan una lista muy similar, pero no a listas totalmente diferentes. Además, no todas las listas de palabras de BIP39 están en inglés, por lo que la regla de las "primeras 4 letras" puede no aplicarse a otros idiomas en BIP39 (podría ser interesante investigar).

Sin tener conocimiento previo de los detalles de GreenAddress, no ha proporcionado suficiente información para que sepamos qué está haciendo GreenAddress con su semilla.

No podemos saber solo por la longitud de la frase de la palabra (12, 24 o 27) si GreenAddress implementa BIP39. Sus preguntas frecuentes mencionan BIP32 (carteras HD) pero no BIP39 (la lista de palabras específica para la semilla), por lo que tampoco es concluyente.

Suponiendo que admitan BIP39 , el mensaje de error que está viendo sigue siendo razonable. Simplemente significaría que el software está programado para aceptar solo una coincidencia del 100% con una palabra de la lista de palabras, no coincidencias parciales, incluso si esa coincidencia parcial fuera única.

Algunas billeteras completarán automáticamente la palabra BIP39 mientras escribe para solucionar este problema (o aceptan la versión de 4 letras de la palabra), pero siempre puede hacer la búsqueda a mano para cualquier billetera compatible con BIP39 que no lo haga fácil. para ti.

Por ejemplo, si su cryptosteel tiene las letras envealmacenadas, puede consultar la lista de palabras que vinculé arriba para encontrar la palabra envelope.

Para agregar a la respuesta anterior, he analizado la lista de palabras BIP39 para español, por ejemplo, y 4 letras no son suficientes para identificar de manera única cada palabra, hay palabras diferentes que sus 4 primeras letras son iguales.