Por Bit2me Academy
La frase semilla o seed phrase es la denominación que recibe un conjunto de entre 12 a 24 palabras que tienen como objetivo respaldar el acceso a nuestro monedero de criptomonedas.
Esto significa que si por alguna razón llegásemos a perder el acceso a nuestra billetera, podríamos recuperarlo utilizando estas palabras en el orden que se establecieron originalmente en cualquier dispositivo o aplicación compatible recuperando así las direcciones asociadas a nuestro monedero y los fondos que disponibles en él.
CONTENIDO
- Not your keys not your coins
- ¿Cómo funciona la frase semilla o seed phrase?
- Tabla de relación entre entropía y frase mnemónicas del BIP-39
- Demostración de cómo funciona PBKDF2
- ¿Las frases semillas hacen más inseguros a los monederos de criptomonedas?
- Implementación de la frase semilla o seed phrase en las wallets
- Consejos para proteger la frase semilla (seed phrase)
- Contraseñas, 2FA y brainwallet
- Recomendamos
Not your keys not your coins
Si un usuario es víctima de robo de la frase semilla entonces, cualquier persona que las posea podrá acceder a la billetera asociada y usarla con pleno control.
Es decir, quien tiene la frase semilla tiene el poder de controlar los fondos y con ellos moverlos a otra dirección, de aquí surge la reconocida frase «not your keys not your coins».
La frase semilla entonces es una codificación nemotécnica de las claves privadas de nuestra wallet de una forma mucho más amigable y gestionable.
La frase semilla por lo general se muestra disponible cuando configuramos por primera vez un monedero en el que gestionamos claves privadas y que sigue el estándar definido por las Propuesta de Mejora de Bitcoin (BIP) BIP-39.
Por otro lado, estas palabras que parecen no guardar ninguna relación especial entre sí o algún significado particular, su composición y orden son establecidos criptográficamente.
¿Cómo funciona la frase semilla o seed phrase?
En primer lugar el desarrollador del monedero implementa la funcionalidad de frase semilla siguiendo el estándar BIP-39 o algún derivado.
El BIP-39, está centrado en ofrecernos un método de generación de claves privadas usando una serie de palabras mnemotécnicas que ayuden a respaldar nuestro monedero y al mismo tiempo garanticen la construcción de claves privadas y públicas seguras.
El BIP-39 toma palabras de forma aleatoria, generalmente en inglés -aunque pueden ser en cualquier idioma- para crear con ellas una frase de 12 a 24 palabras.
Mientras mayor el número de palabras, mayor será la entropía y la seguridad atribuible a la frase resultante.
Tabla de relación entre entropía y frase mnemónicas del BIP-39
Por supuesto, estas palabras son elegidas de largos diccionarios, con una buena entropía (aleatoriedad), para que así se garantice la mejor seguridad posible.
Una vez que los algoritmos del monedero han creado esta serie de palabras de acuerdo a la selección del usuario o su configuración interna, se solicita al usuario que las guarde en el mismo orden en el que se les han presentado.
En este punto se activa la etapa de generación de la clave privada de nuestro monedero.
Este proceso es posible gracias al uso de una función criptográfica de nombre PBKDF2. Esta función, es un estándar criptográfico para la derivación de claves seguras a ataques de fuerza de bruta.
Un punto importante, teniendo en cuenta que al ser palabras «humanas» es factible que un ataque de este tipo pueda obtener la frase y con ello nuestra clave privada.
Esta función PBKDF2 es alimentada por toda la frase semilla o seed phrase completa del monedero. Esa será nuestra fuente de entropía o «desorden» en el proceso de derivación de clave.
Demostración de cómo funciona PBKDF2
Adicionalmente, se establece un número de 2048 iteraciones en el proceso de generación, en donde cada iteración PBKDF2 genera una clave distinta hasta alcanzar las 2048 iteraciones programadas.
Junto a esta función también se usa la función HMAC-SHA512 como la función pseudoaleatoria. Todo esto da como resultado final una clave con una longitud de 512 bits o 64 bytes.
Esta clave final es conocida como frase binaria o seed binaria, la cual luego se utiliza para generar claves privadas o incluso monedero HD (deterministas usando BIP-0032).
En pocas palabras, nuestra seed o semilla binaria es la que nos permitirá en última instancia la generación de la clave privada, de ahí la clave pública y de ahí la dirección.
Es decir, si usamos las mismas palabras en diferentes monederos que soporten BIP-0032, y sean de una misma criptomoneda, obtendremos siempre la misma seed binaria, y de allí podemos derivar la clave privada y el resto de claves públicas que nos pertenecen.
¿Las frases semillas hacen más inseguros a los monederos de criptomonedas?
Existe un mito de que las seed phrase o frases semillas hacen inseguros los monedero de criptomonedas al debilitar intencionalmente el proceso de generación de la clave privada, al introducir una serie de palabras bien conocidas y que podrían o no ser realmente aleatorias.
Esto es completamente falso y la mejor prueba es que hasta el momento no se ha podido violentar este proceso de ninguna manera.
Implementación de la frase semilla o seed phrase en las wallets
Sin dudas, una de las mejoras más significativas en los criptomonederos fue la implementación de las seed phrase, ya que éstas son mucho más fáciles de gestionar y memorizar que las claves privadas.
Por ejemplo, en las wallet HD se suelen implementar las frases semilla generando una en el momento de crear el monedero. Esto con el objetivo de hacer que la recuperación del monedero sea de una forma rápida y sencilla.
Consejos para proteger la frase semilla (seed phrase)
Primeramente, al momento de configurar la wallet, se debe realizar una copia idéntica y precisa de la frase semilla, sin errores de escritura y en el orden específico en el que se muestra.
Luego es recomendable hacer varias copias de seguridad y guardarlas en lugares distintos y seguros para garantizar que frente a cualquier situación, se podrá recuperar el acceso a las wallets y a los fondos.
Cuando se habla de guardar las copias de seguridad en un lugar seguro, se hace referencia a escribirlas en papel y guardarlas en un lugar como una caja de seguridad por ejemplo.
Contraseñas, 2FA y brainwallet
Si alguien encuentra su copia de seguridad, podrá tener acceso a tus fondos, es por esta razón que no se recomienda guardar nunca copias de seguridad de las frases semillas en correos electrónicos, imágenes u otros medios digital si no han sido a su vez debidamente encriptados.
Muchas wallets incluso permiten añadir capas extras de seguridad, como la configuración de una contraseña o el uso de 2FA (Two Factor Authentication), pero esto nunca sustituye a la frase semilla.
Por último, si al momento de configurar tu wallet, si tienes la oportunidad de configurar tu propia frase semilla, una técnica conocida como brainwallet, no lo hagas. Por seguridad es mejor dejar que el software del monedero genere la frase semilla de forma aleatoria.