¿Qué Es Exactamente La Frase Semilla De Tu Monedero Favorito y Es segura?
¿Te has preguntado si es posible que descifren la semilla de tu billetera? No estoy refiriéndome a que alguien pueda encontrar el lugar donde la guardas, sino encontrarla matemáticamente.
¿Podría un hacker, utilizar fuerza bruta para desencriptar tu semilla sabiendo tu dirección pública?
¿Podría alguien combinar las palabras de tal forma de encontrar alguna semilla de una de las tantas billeteras que existen?, cada vez hay más billeteras y eso incrementa la posibilidad de encontrar por azar alguna billetera con fondos.
Tu temor aumentaría si sabes que la semilla está creada a partir de la combinación de “solo” 2048 palabras, que puedes verlas en Github, ya que son parte del código abierto para la encriptación del protocolo BIP39, (Bitcoin Improvement Proposal), sistema creado en 2013, por el equipo de Satoshi Labs, y utilizado por la mayoría de la billeteras.
¿Qué es la criptografía?
La criptografía se ocupa de las técnicas de cifrado o codificado, destinadas a alterar las representaciones lingüísticas, y con el fin de hacerlas ininteligibles a receptores no autorizados. Estas técnicas se utilizan tanto en el arte, como en la ciencia y en la tecnología.
La criptografía simétrica es la forma más rudimentaria de encriptar y desencriptar registros, ya que utiliza una misma llave, y por eso no es usada en la industria blockchain, porque no es posible compartirla con terceros para realizar transacciones, porque perderías el control de los registros encriptados.
La criptografía asimétrica es la empleada en blockchain. El sentido de cifrado es unidireccional, es decir codifica un dato a partir de otro, por eso utiliza 2 claves (llaves). Una de las llaves es privada y la otra es pública, y son conocidas como direcciones en la blockchain. La dirección pública se crea a partir de la privada. La dirección pública es la que debemos dar a conocer si queremos hacer transacciones. La clave privada jamás debe ser compartida, porque es la que permite disponer de los fondos.
Bitcoin, como Cardano, utilizan dos tipos de algoritmos de hash: SHA-256, como función hash principal, y RIPEMD-160, para la creación de direcciones. La blockchain emplea el árbol de Merkle para los registros, que permite verificar de forma eficiente y segura la integridad y la inclusión de grandes cantidades de datos.
El árbol de Merkle es una estructura piramidal de hashes, en la que cada hash es el resultado de aplicar una función computacional sobre los hashes inferiores, para ir relacionándolos hasta llegar al nodo raíz, y así construir el árbol, o la cadena.
Las claves privadas están formadas por una secuencia de números y letras de 256 bits. por ejemplo, podría verse de esta manera:
213DF440BD38832300FB6173D3C332623A69C6DA73F67F55C86E9873D7973AA2
Son complejas para memorizar o almacenar y por eso se diseñó la semilla.
¿Cómo funciona la frase semilla?
Al crear la billetera, el sistema criptográfico genera de forma aleatoria una dirección privada, con su dirección pública y para ello, la combinación de palabras semilla, una frase mnemónica que surge del protocolo de encriptación.
Por eso, las semilla o frase mnemónica, brinda al usuario una forma amigable de interactuar con sus claves privadas. Consiste en una serie de palabras, usualmente 12, 15 o 24, fáciles y reconocibles para las personas que, al ser introducidas en un orden específico, permite restaurar las claves privadas de una billetera cripto.
Se le llama “semilla” justamente porque es el germen por el cual se puede derivar de forma determinística, las direcciones públicas y su clave privada correspondiente.
La semilla de 15 palabras puede verse de esta manera:
cradle ability retir trust eacoustic only actual chase stamp ecology frequent impact olive resource stable
Incluso pueden repetirse algunas palabras de ella, pero eso lo determina la criptografía, donde el orden dispuesto, en la generación de palabras, es esencial y único.
¿Pueden descifrar mi semilla?
Lo que muchas personas se preguntan es, cuáles son las probabilidades que esa combinación sea igual a otra billetera que se haya generado anteriormente, o que se genere posteriormente, o peor, que un hacker la descifre.
Para entender la matemática detrás de la combinatoria te daré un ejemplo sencillo. Supongamos que la semilla es de solo 2 palabras (en lugar de 12, 15 o 24), y la base estándar es de 3 (en lugar de 2048). La fórmula de combinaciones posibles es 3² = 9. Supongamos que las palabras son: abandon, fly, reflect, las posibilidades son sólo estas 9:
En BitcoinWiki explican, que una semilla que contuviera sólo 12 palabras, el número de combinaciones posibles para encontrar una billetera única sería 2048¹² = 2¹³² y la frase tendría 132 bits de seguridad. Sin embargo, algunos de los datos de una frase BIP39 no son aleatorios, por lo que la seguridad real de una frase semilla BIP39 de 12 palabras se reduce a 128 bits, o 2¹²⁸ combinaciones, pero la mayoría de los expertos la consideran suficientemente segura. Esa cantidad de combinaciones, en un número entero, se ve así:
340.282.366.920.938.000.000.000.000.000.000.000.000
Si tu semilla es de 24 palabras, la cantidad de números aleatorios posibles es de 2²⁵⁶ y se ve así:
115.792.089.237.316.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000
Por definición matemática, cuantas más palabras contenga la semilla, más segura es.
BitCrack, es un software especialmente diseñado para hackear llaves privadas, y los miembros participantes, luego de muchas pruebas, consideraron la búsqueda como inútil.
Calculemos cuánto tiempo se necesita para descifrar una billetera con una semilla de 12 palabras, en una máquina con un rendimiento de 9 millones de direcciones por segundo, ratio de procesamiento bastante elevado pero posible. Serán aproximadamente 2²³ direcciones por segundo. Así, la fuerza bruta se llevará a 2¹²⁸ / 2²³ = 2¹²⁸¯²³ = 2¹²⁵ por segundo, que equivale a procesar 40.564.819.207.303.300.000.000.000.000.000 combinaciones por segundo, que representan 1.286.301.978.922.610.000.000.000 años para procesar todas.
En un concurso, John Cantrell, desarrollador del protocolo de mensajería Lightning Network Juggernaut, pudo descifrar una billetera con una semilla de 12 palabras, donde, como dije, las combinaciones posibles son de 2¹²⁸, pero claro, hubo un truco, la dueña de la billetera le dio 8 de las palabras como “ayuda” y así se redujeron las combinaciones a 2⁴⁰ (~1,1 billones) de mnemotecnias posibles. Una gran ayuda, que deja en claro la fortaleza del protocolo criptográfico.
¿Puedo utilizar mi semilla en otra billetera?
Si bien el proceso es simple, se llama restaurar la billetera, que lo puedes hacer en cualquier dispositivo que soporte la aplicación de ella, debes tener en consideración algunos aspectos:
- Debes asegurarte que las dos wallets son compatibles entre ellas y que utilizan el mismo esquema de generación (principalmente en la cantidad de palabras).
- También debes asegurarte la compatibilidad entre las monedas que soporta cada wallet, ya que por ejemplo, podrías tener problemas entre una wallet que es compatible con muchas monedas y otra que sólo es compatible con Bitcoin.
Conclusión
Respondiendo a la pregunta por la que comenzaste a leer mi artículo, sí, la semilla de tu billetera es segura, y es casi imposible que la descifren.
Tu mayor preocupación debe centrarse en el resguardo de tu semilla: Are Your Digital Assets Secure? Best Practices to Help Mitigate Risk
Por último, te recuerdo que si tienes tus criptomonedas en un exchange custodial no eres dueño de tus fondos, porque no tienes tus llaves, no tienes tu semilla. Resguarda tus criptomonedas en una billetera no custodial.
Not your keys, not your cryptos.
Este artículo de mi autoría se publicó originalmente en AdaPulse.