¿Sería posible recuperar tus claves en Blockchain sin frustrarte en el intento?

María Teresa Nieto Galán    3 marzo, 2021

Probablemente habrás leído o escuchado de gente que invirtieron en Bitcoin hace años y ahora no pueden recuperarlos. Te preguntarás ¿por qué sucede esto? ¿es que acaso la gente no sabe acordarse de las contraseñas? ¿por qué no la recuperan dando al botón de “Olvidé mi contraseña”? Desafortunadamente, en el mundo de las criptomonedas y en el de la tecnología blockchain, recuperar claves no es tan sencillo como parece.

Echemos un vistazo a los conceptos básicos de blockchain. Estas redes utilizan primitivas criptográficas para demostrar que eres tú como individuo quien está realizando transacciones en una red. Estas técnicas no son propias de blockchain. Son las mismas que se utilizan cuando firmamos documentos digitalmente. En este caso, lo que firmamos son las transacciones y es parte de la criptografía asimétrica.

Criptografía asimétrica

Así que para entender bien qué es eso de «primitivas criptográficas», es necesario comprender en qué consiste el cifrado asimétrico. Cuando queremos ocultar el contenido de un mensaje utilizamos dos claves distintas. Seguro que alguna vez has oído hablar de claves públicas y privadas. Pues bien, con una de ellas, la clave pública, lo cifraremos. Con la otra, la clave privada, lo descifraremos. De ahí su nombre de “asimétrico”.

Podemos explicarlo muy fácilmente con un símil. Vamos a imaginarnos que tenemos un candado y una llave. El candado sería la clave pública y la llave, la privada. Un candado, solo puede ser abierto por una única llave. Si Alice quisiera enviarle a Bob un mensaje cifrado, lo metería en una caja y le pondría el candado correspondiente. Un candado que sólo Bob podría abrir, es decir, sólo Bob tiene la llave que abre ese candado. Ni siquiera Alce puede ver el contenido de la caja después de cerrarla con el candado. Sin embargo, cuando Bob recibe la caja utiliza su llave única y conseguiría abrirla y ver el contenido del mensaje.

En el mundo digital, en vez de cajas y candados utilizamos el cifrado y pares de claves pública y privada. Cuando queremos cifrar un mensaje utilizamos la clave pública. Aplicamos al mensaje un algoritmo que combina su contenido con la clave. El resultado es el mensaje cifrado, es decir, totalmente transformado para que no pueda ser interpretado.

Una vez cifrado, el mensaje no puede descifrarse usando la misma clave. El algoritmo no es reversible. No puede leerlo nadie, ni siquiera la persona que lo cifró. Sin embargo, descifrarlo es una operación sencilla conociendo la clave privada asociada a la clave pública con que se cifró. Esta clave sólo la puede poseer el destinatario y no puede compartirla con nadie.

¿Qué es en realidad una firma digital?

Seguimos desgranando los conceptos de criptografía. ¿Qué diferencia hay entre cifrar y firmar un mensaje? Cuando ciframos, utilizamos una clave pública para enviar un mensaje que sólo puede descifrarse con la clave privada correspondiente.

Sin embargo, la firma digital es un resumen del mensaje. Al firmarlo aplicamos una nueva fórmula matemática que esta vez combina el mensaje y la clave privada. El objetivo no es «ofuscar» el mensaje para que no pueda leerse. Lo que queremos es autenticarnos. Es decir, demostrar que el mensaje lo hemos mandado nosotros. Por eso, cómo sólo nosotros conocemos la clave privada, es la que utilizamos en esa función de firma. La magia ahora está en que cualquiera que reciba la firma puede verificar quien firmó. Lo que hará es comprobarla a partir del mensaje y la clave pública.

¿Cómo se utiliza la firma en blockchain?

Muy fácil, cada vez que un usuario realiza una transacción la firma con su clave privada. Cualquiera puede así verificar que esa transacción fue firmada por ese usuario. Ahora bien, ¿Qué le pasaría a un usuario si pierde la clave privada? ¿el usuario ya no podría firmar más transacciones? Pues, “elemental mi querido Watson”.

La red de blockchain es un registro descentralizado de todo el histórico de las transacciones realizadas por los usuarios. Para operar sólo necesito un par de claves que me permita firmar las transacciones que escribo a la red.

Así, para movilizar una cantidad de criptomonedas tengo que firmar una transacción para identificarme como el poseedor. Si pierdo la clave privada no puedo firmar. Si no puedo firmar, la red no puede reconocer como el poseedor. Y si la red no me reconoce, pierdo esa «posesión». De ahí el problema del que hablábamos al principio.

Si no tengo las claves puedo dar por perdidos todos mis bitcoins.

¿Por qué no puedo regenerar esas claves?

En nuestra vida digital estamos más que acostumbrados a gestionar usuarios y contraseñas. Es normal que, si nos olvidamos de una contraseña, el proveedor que me la suministró me permita recuperarla o restaurarla. ¿No existe algún mecanismo similar en blockchain? Si no existe, ¿por qué no se inventan?

La respuesta es sencilla, hablábamos de que el proveedor es el que me ayuda a recuperarla.

¿Quién es el proveedor en una red de blockchain?

Al ser un entorno descentralizado, nadie se encarga de dar esas credenciales. El usuario es el único responsable de recordar su par de claves. Sólo el tiene acceso a ellas en el momento de crearlas. Por eso debe guardarlas y recordarlas.

Si perdemos esas claves, lo normal es que la clave pública podamos tenerla como identificador de alguna operación. Así que para recuperarlas podríamos intentar averiguar la clave privada asociada a una clave pública.

Contraseñas

Cuando hablamos de contraseñas, existe alguna posibilidad de probar ciertas combinaciones o recurrir al hacking social para «adivinar» la contraseña que eligió un usuario. Si esa contraseña es medianamente segura (combinaciones de letras, números y símbolos sin significado), el proceso se complica.

Claves asimétricas

Si hablamos de claves asimétricas, tenemos que plantear ataques de fuerza bruta para intentar adivinar esa clave privada. Estos ataques son tremendamente costosos desde un punto de vista computacional. Necesitamos enormes recursos de computación sólo para adivinar una clave. Por eso decimos que el salto de magnitud que supone la computación cuántica sería una amenaza para romper estos algoritmos.

Lo cierto es que podremos utilizarla no sólo para romperlos, sino también para generar claves más seguras, por lo que podremos seguir fiándonos de las claves.

¿Cual es la solución?

Efectivamente, todo problema tiene una solución. Así que el ecosistema está trabajando ya para que la pérdida de las claves deje de ser un problema. Se trata de iniciativas y proyectos de investigación basados en la criptografía o en nuevas soluciones de identidad digital.

Social Recovery Wallets

Una de las soluciones que más repercusión está teniendo últimamente es la conocida como “Social Recovery Wallets”. Está apoyada por uno de los creadores de la red de Ethereum, Vitalik Buterin.

El funcionamiento de estos wallets también se basa en la criptografía y en el concepto de multifirma. Como sugiere el propio concepto, en lugar de manejar una única firma digital, tenemos varias.

Pregunta inmediata, ¿no complicamos entonces el problema? Si requiero varias claves, ¿no aumento el riesgo de perder una de ellas?

La realidad es que no todas las claves sirven para lo mismo. En este caso, la clave privada sigue siendo la única necesaria para autorizar las transacciones. Pero además, pone en juego otras tres o más firmas llamadas claves guardianas. Estas últimas las reparte el usuario a personas de confianza o instituciones donde puedan custodiarse.

¿Qué pasa cuando un usuario pierde su clave privada? Pues en este caso “todos estos ingredientes se cocinan” para permitirle recuperar su cuenta. Y por tanto, sus criptomonedas. Para ello, esta persona, acude a los poseedores de estas claves para pedir la recuperación de su cuenta. Pueden añadirse mecanismos adicionales (por ejemplo, sólo necesitar 2 de 3 simultáneamente), pero el resultado es el mismo.

El usuario pone en juego las claves guardianas y recupera su clave privada original.

Soluciones basadas en identidad digital

Pero las claves guardianas por sí solas no bastan. ¿Qué pasaría si las personas que tienen esas claves de recuperación se pusiesen de acuerdo? Pues sí, podrían robar las claves al usuario. Así que lo primero y más obvio es elegir guardianes que no se conozcan. De esta forma, garantizamos que no puedan ponerse de acuerdo sin la intervención del usuario.

Aún así, podemos complicar la solución. Por ejemplo, añadiendo lo que se conoce como “hash time locked contracts” (HTLC). Se trata de smart contracts que establecen ciertas condiciones de validación y un límite temporal para completar la transacción. En ese periodo el usuario de la cuenta a recuperar va a tener siempre la última palabra.

Todos estos mecanismos solucionan el problema de la gestión de claves. Pero su implementación complica la usabilidad de las soluciones. De hecho, el problema es similar si pensamos en identidades descentralizadas.

En este caso, el usuario no firma las transacciones para gestionar sus criptomonedas. Lo hace para gestionar sus credenciales de identidad o sus datos personales. El usuario debe demostrar que es el propietario de una determinada credencial. Esa credencial puede darle acceso a un sistema concreto o identificarle como usuario con un determinado rol. Son las credenciales que componen las identidades soberanas. Recientemente España publicaba el primer estándar mundial sobre estas identidades descentralizadas.

La aproximación a las identidades en base a credenciales parciales es una alternativa al problema de perdida de claves. El usuario puede presentar una credencial ante un custodio sin revelar toda su identidad. Se disminuye así aún más el riesgo de que los custodios reconstruyan incluso la identidad del usuario.

En definitiva, como todo problema, la solución no es única. Probablemente, dentro de un par de años, echaremos la vista atrás y la pérdida de bitcoins serán historias anecdóticas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *