En el mundo en constante evolución de las monedas digitales, es fundamental comprender los fundamentos técnicos de la seguridad de las billeteras. El último informe, «Un análisis en profundidad del protocolo BIP39», ofrece una visión completa de cómo se generan y transforman las frases mnemotécnicas en claves privadas, asegurando los activos digitales con una precisión incomparable.
Explorando estándares mnemotécnicos y técnicas de generación
Los diccionarios mnemotécnicos ahora estandarizados incluyen chino simplificado, chino tradicional, inglés, japonés, francés, italiano, coreano y español. Se pueden generar mnemónicos en los idiomas anteriores, pero la mayoría de las prácticas de billetera convencionales todavía solo usan inglés.
Generalmente, la cantidad de palabras mnemotécnicas en una billetera es 12 o 24, pero este estándar también puede generar 15, 18, 21 palabras mnemotécnicas o incluso menos de 12 palabras. Al desarrollar una billetera, generalmente se usan 24 palabras por razones de seguridad y 12 palabras por compatibilidad con otras billeteras convencionales o facilidad de uso. Si tiene menos de 12 palabras, la probabilidad de colisión es demasiado alta y el riesgo es demasiado alto. No se recomienda su uso.
Generación de frases mnemotécnicas
- Genere un número aleatorio de 128-256 bits, pero el número de dígitos de este número aleatorio debe ser múltiplo de 32.
- Realice SHA256 en el número aleatorio y luego tome los primeros X bits como dígito de control. El número específico depende de la cantidad de dígitos para generar números aleatorios. (X = número de dígitos aleatorios / 32).
- Agregue el dígito de validación después del número aleatorio.
- Divida el número aleatorio con dígitos de validación agregados en grupos de 11 dígitos y divídalos en varios grupos.
- Luego, por cada 11 dígitos, puede obtener un número con un valor que oscila entre 0 y 2047. Según estos números, puede consultar el diccionario mnemotécnico para obtener la palabra mnemotécnica.
Número de dígitos aleatorios | Número de dígitos de control | Número aleatorio más dígitos de control | Número de mnemónicos |
128 | 4 | 132 | 12 |
160 | 5 | 165 | 15 |
192 | 6 | 198 | 18 |
224 | 7 | 231 | 21 |
256 | 8 | 264 | 24 |

Generar clave privada a partir de una frase mnemotécnica
1.Codificación canónica de mnemónicos y ventas utilizando NFKD. (La sal es “mnemotécnica” + contraseña)
2.Utilice el algoritmo PBKDF2 para obtener una semilla de 512 bits. PBKDF2 utiliza HMAC-SHA512 como algoritmo hash y realiza 2048 cálculos.
3.Los primeros 256 bits son nuestra clave privada. En cuanto a la función de los últimos 256 bits, no necesitamos saberla por el momento. Sólo lo usaremos cuando usemos BIP32.
Cosas a las que prestar atención durante el desarrollo
Durante el desarrollo, si usa Convertidor de código mnemotécnico para generar mnemónico y luego utilizar el mnemónico para generar una clave privada, es posible que el mnemónico no se verifique. Pero con una frase mnemotécnica de 24 palabras, la verificación no fallará. ¿Por qué es esto? Generalmente, se utilizan matrices de bytes o matrices de caracteres en desarrollo para almacenar datos relacionados, pero el espacio mínimo ocupado por un byte es un byte (8 bits), excepto los 24 dígitos de control de la frase mnemotécnica. Puede ocupar 8 bits, pero otras palabras mnemotécnicas ocupan menos de 8 bits. Muchas bibliotecas de terceros almacenan 1 byte de dígitos de control, pero de hecho faltan los datos recuperados de las palabras mnemotécnicas. Luego, la verificación se realiza en función de la comparación de bytes en lugar de comparar cada bit, por lo que habrá un problema de falla de verificación.
Verifique la exactitud de la frase mnemotécnica.
1.Vaya al diccionario para buscar palabras y ver si la palabra ingresada por el usuario está en el diccionario.
2. Saque los índices de todas las palabras y conviértalos en datos binarios compuestos de bits en orden y luego empalme y combine.
3.Divida los datos binarios en números aleatorios y dígitos de control, realice SHA256 en los números aleatorios y compare los resultados de los dígitos de control para ver si son correctos.

Algunas características de la mnemónica
1.Dado que se utiliza el algoritmo PBKDF2 de HMAC-SHA512, el mnemotécnico no se puede deducir de la semilla de 512 bits a la inversa.
2. Las palabras mnemotécnicas y los números aleatorios de 128 bits se pueden convertir entre sí, pero no tienen ningún significado práctico.
- Cuando la frase mnemotécnica genera una clave privada, puede agregar su propia contraseña para reducir la tasa de colisiones y mejorar la seguridad, pero la mayoría de las billeteras nacionales no admiten esta función.