Una de las principales virtudes de la tecnología blockchain es la seguridad. Los datos que contienen las cadenas de bloques se almacenan empleando sofisticadas matemáticas y reglas de software realmente innovadoras que son extremadamente difíciles de manipular por atacantes. Sin embargo, en el lugar donde estas reglas entran en contacto con los seres humanos es donde se encuentra la zona más frágil de dichas reglas.
Las razones por las que blockchain es tan segura
Para entender por qué ocurre esto, lo mejor es comprender primero qué es lo que consigue que blockchain sea una tecnología tan segura. Para ello, podemos partir del ejemplo de Bitcoin.
Dentro de la cadena de bloques de Bitcoin, los datos que se comparten son una especie de libro de contabilidad pues se trata del historial de cada transacción de la criptomoneda que sea realizado desde el inicio de su existencia. Hay copias de este libro en cada uno de los nodos de la red de ordenadores formada por los propietarios de Bitcoins.
Cada vez que alguien realiza una transacción (lo que significa que se «anota» en el libro), los nodos comprueban que se trata de una transacción válida. Esto básicamente significa que quien gastó una Bitcoin lo hizo porque tenía una Bitcoin para hacerlo.
Un subconjunto de los nodos compite para empaquetar transacciones válidas dentro de bloques y añadirlos a una cadena de transacciones anteriores. Los propietarios de estos nodos son llamados mineros y los que añaden con éxito nuevos bloques a la cadena ganan Bitcoins como recompensa.
Lo que hace a este sistema a prueba de manipulaciones son, en principio, dos cosas: la huella criptográfica única que se asigna a cada bloque, denominada hash, y un «protocolo de consenso», que es el proceso por el cual los nodos de la red acuerdan una historia compartida.
Cada hash requiere mucho tiempo de cálculo y, por lo tanto, mucha energía para generarse por primera vez. Por lo tanto, sirve como prueba de que el minero que añadió el bloque a la cadena hizo el trabajo necesario como para recibir a cambio una recompensa en Bitcoins (de ahí que se diga que Bitcoin usa un protocolo de «prueba de trabajo»). También sirve como una especie de sello o certificado, ya que para alterar un bloque hay que generar un nuevo hash.
Verificar si el hash coincide o no con el bloque asignado es más fácil. Una vez que los nodos participantes verifican el hash, actualizan sus respectivas copias de la cadena con el nuevo bloque (continuando con el símil de antes: añaden una nueva entrada a su copia del libro de contabilidad). Esto es el protocolo de consenso.
El otro elemento de seguridad es que los hashes también sirven como enlaces en la cadena de bloques. Cada bloque incluye el hash único del bloque anterior, por lo que si se desea modificar lo que contiene, no solo es necesario calcular un nuevo hash para él, sino también para el bloque que le sigue. Y esto hay que hacerlo más rápido de lo que otros nodos pueden añadir nuevos bloques a la cadena.
Para poder «engañar al sistema», es necesario contar con computadoras que sean más potentes que todas las de los nodos combinadas. E incluso esto no sería garantía de éxito. Por lo tanto, en el momento en que se altere un bloque, este entrará en conflicto con los existentes y los nodos rechazarán de manera automática las alteraciones realizadas.
La creatividad: nuestra fortaleza y nuestra debilidad
Esto es lo que dice la teoría. Ahora bien, la práctica es otra historia. No es que estemos hablando de que se trate de un sistema que pueda ser engañado de una manera sencilla, pero ya sabemos que en cuestión de hacer trampas, los humanos podemos ponernos muy creativos.
Por ejemplo, Emin Gün Sirer y sus colegas de la Universidad de Cornell han demostrado que hay una manera de alterar una cadena de bloques, incluso si se tiene menos de la mitad de la potencia minera de los otros nodos. Los detalles son algo técnicos, pero básicamente un «minero egoísta» puede obtener una ventaja injusta engañando a otros nodos para que pierdan el tiempo en criptorompezabezas que ya han sido resueltos.
También está lo que se denomina como «ataque de eclipse»: dado que los nodos de la red deben permanecer en comunicación constante para poder comparar datos, un atacante puede arreglárselas para tomar el control de la conexión de un nodo y engañarlo para que acepte datos falsos que parecen venir del resto de la red. Así, puede conseguir que malgaste recursos o confirme transacciones falsas.
Y a veces, ni siquiera es necesaria la creatividad: según explica Neha Narula, directora de la iniciativa de moneda digital del MIT, incluso cuando los desarrolladores utilizan herramientas criptográficas de probada eficacia, es fácil juntarlas accidentalmente de maneras que no son seguras.
El problema, irresoluble por el momento, es que, como dice Sirer, por muy a prueba de manipulaciones que sea un protocolo, «no existe en el vacío». Los hackeos de criptomonedas que suelen aparecer en los titulares de los medios suelen ser fallos en lugares donde los sistemas de las cadenas de bloques se conectan con el mundo «real»; por ejemplo, en clientes de software y aplicaciones de terceros.
Un lugar de ataque que se ha convertido en uno de los objetivos principales de los delincuentes son las «billeteras calientes». Una billetera «caliente» es una aplicación conectada a Internet para almacenar las claves criptográficas privadas que necesita tener cualquier propietario de criptomonedas para poder gastarlas. Muchas casas de cambio afirman que la mayor parte del dinero de sus usuarios se guardan en billeteras de hardware «frías»; es decir, dispositivos de almacenamiento desconectados de Internet. Pero esto en realidad no es siempre así, como se demostró en el robo de enero de este año de más de 500 millones de dólares en criptomonedas de la casa de cambio Coincheck, con sede en Japón.
Pero los puntos de contacto más complicados de gestionar entre blockchain y el mundo «real» quizá sean los «contratos inteligentes», programas informáticos almacenados en ciertos tipos de cadenas de bloques que pueden automatizar las transacciones. En 2016, se consiguió explotar un fallo muy raro a la par que imprevisto en un contrato inteligente escrito en la cadena de bloques de Ethereum. Así, se robaron 3,6 millones de Eter, con un valor en torno a 80 millones de dólares en ese momento.
Los Eter pertenecían a la Organización Autónoma Descentralizada (DAO), un nuevo tipo de fondo de inversión basado en la cadena de bloques. Y dado que el código DAO vivía en la cadena de bloques, la comunidad Ethereum tuvo que impulsar una controvertida actualización de software para recuperar el dinero, creando esencialmente una nueva versión del «libro de contabilidad» en la que el dinero nunca fue robado. Los investigadores todavía están desarrollando métodos para asegurar que los contratos inteligentes no funcionen mal.
Asumámoslo: no hay nada 100% seguro en esta vida
Otra de las principales medidas de seguridad de blockchain reside en la descentralización del sistema. Sin embargo, hasta esta puede ponerse en duda: el trabajo reciente de Sirer y sus colegas demuestra que ni Bitcoin ni Ethereum están tan descentralizados como se podría pensar. Descubrieron que las 4 operaciones mineras más importantes tenían más del 53% de la capacidad minera semanal promedio del sistema. En la misma medida, 3 mineros de Ethereum representaron el 61%.
Dicho todo esto, cabe preguntarse entonces si la tecnología blockchain es tan segura como dicen. Y la respuesta no es sencilla. Finalmente, el término «seguridad» es muy difícil de definir en el contexto de la cadena bloques. Según Narula, «depende de tu perspectiva».
Lo que está claro es que no es una tecnología inexpugnable. Respecto a otras, su grado de seguridad es más alto y es bastante posible que sea el grado más elevado que hayamos conseguido hasta el momento. Pero sigue siendo falible, pues al fin y al cabo es una tecnología elaborada por seres humanos y los seres humanos somos eso: falibles.