Una frase semilla es una serie de palabras que se utilizan para recuperar una billetera de criptomonedas y acceder a los fondos asociados con ella. Gracias a esta resulta muy fácil respaldar la información de nuestro monedero y proteger así nuestro dinero en todo momento.
La frase semilla o seed phrase hace mención a un conjunto de entre 12 a 24 palabras, que tienen como finalidad ofrecernos una forma fácil y sencilla de respaldar nuestro monedero de criptomonedas. De esta forma, si por cualquier causa se llegase a perder el control sobre él, podríamos recuperarlo tan solo usando estas palabras en el orden que se nos dieron originalmente.
Es decir, en caso de averías, robos o pérdidas del smartphone o del ordenador, podemos usar la frase semilla y recuperar nuestra wallet desde otro dispositivo. Todo esto mientras accedemos a las direcciones asociadas a nuestro monedero y con ello, a los fondos que disponibles en él. Así, las frases semillas son una especie de codificación de las claves privadas de nuestra wallet, pero de una forma mucho más amigable y gestionable.
Generalmente podemos ver esta frase 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. Estas palabras comúnmente las muestra el monedero en inglés, aunque algunos monederos entregan palabras en otros idiomas, facilitando más la tarea. Por otro lado, estas palabras parecen no guardar ninguna relación especial entre sí o un significado, pero la verdad es que, criptográficamente, y teniendo un orden específico, si lo tiene.
NOTA DE SEGURIDAD
Hay que aclarar que la semilla permite la recuperación de los monederos y los fondos en caso de daño o pérdida del dispositivo, o el olvido de las claves de acceso que se tenían configuradas para dicho monedero. Pero si un usuario es víctima de robo de la semilla, posiblemente pierda todas las criptomonedas asociadas a esa semilla, no pudiendo recuperar nada. Quien tiene la semilla tiene el poder de controlar los fondos, y con ellos moverlos a otra dirección.
¿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 de esta. 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 del idioma inglés, aunque pueden ser de otro idioma) y crear con ellas una larga frase (generalmente de entre 12 a 24 palabras). Aquí mientras mayor sea el número de palabras, mayor será la entropía y la seguridad atribuible a la frase resultante.
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 le pide al usuario que las guarde en el mismo orden en el que se le han dado. Este punto es importante, porque de lo contrario, no podrá reconstruirse el monedero en caso de que lo necesitemos. Además el monedero pedirá luego que ingresemos dichas palabras en el mismo orden. Esto con el fin de verificarlas.
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 completa del monedero. Esa será nuestra fuente de entropía o “desorden” en el proceso de derivación de clave.
Adicionalmente, se establece un número de 2048 iteraciones en el proceso de generación. Con cada iteración, PBKDF2 genera una clave distinta y el proceso se acaba al realizar 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. Y es la que finalmente se usará 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 nuestra clave privada, de ahí la clave pública y de ahí la dirección.
BIP-00032 es un estándar. 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.
Implementación de la frase semilla en las wallets
Sin duda, una de las mejoras más significativas en los criptomonederos fue la implementación de las seed phrase, ya que estas 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
- Primeramente, al momento de configurar la wallet, se debe realizar una copia 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 de esta frase y guardarlas en lugares distintos y seguros. Esto garantizará que en cualquier caso o frente a cualquier situación, se podrá tener acceso a las wallets y a los fondos. Pueden seguirse estrategias de repartir palabras en diferentes lugares.
- 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 muy seguro, una caja de seguridad por ejemplo. Tenga en cuenta que si un tercero encuentra su copia de seguridad, puede tener acceso a sus fondos. Bit2Me recomienda que NUNCA se deben guardar copias de seguridad de las frases semillas en correos electrónicos, imágenes u otro medio digital si no han sido encriptadas. Ya que se corre el riesgo de que sean hackeados o pirateados y de que alguien más se pueda hacer con los fondos.
- Muchas wallets permiten añadir capas extras de seguridad, como la configuración de un PIN o contraseña para reforzar la seguridad. Pero tenga en cuenta que ésto no sustituye nunca a la frase semilla. Por tanto, si pierde esa contraseña extra, también perderá el acceso a sus direcciones y fondos.
- Si al momento de configurar su wallet, tiene la oportunidad de configurar su propia frase semilla, no lo haga. Por seguridad es mejor dejar que el software del monedero genere la frase semilla de forma aleatoria.
Y no olvides que, si deseas saber más sobre cómo proteger tus criptomonedas, te espera un completo post donde explicamos Cómo proteger tus bitcoins: descubre 7 formas. Allí podrás encontrase sencillos consejos para resguardar no solo tus bitcoins sino cualquier otra criptomoneda que tengas en tu poder.