Artículos

Razones por las que ‘blockchain’ no es tan segura como parece

El término ‘seguridad’ no es tan fácil de definir en el universo de las cadenas de bloques. Todo depende de para qué y quién las use, pero al fin y al cabo, todos los sistemas presentan algún reto de seguridad ante la creatividad y el ingenio de los ciberdelincuentes

El objetivo de utilizar una cadena de bloques (o blockchain) es permitir que las personas, en particular las que no confían entre sí, compartan datos valiosos de forma segura y a prueba de manipulaciones. Esto se debe a que el sistema de la cadena de bloques almacena los datos mediante matemáticas complejas e innovadoras reglas de software. Ambas logran que los datos sean extremadamente difíciles de manipular para los piratas informáticos. Pero incluso la seguridad de los mejores sistemas blockchain puede tener fallos cuando los humanos (que son hábiles timadores) entran en contacto con las sofisticadas reglas de matemáticas y software. Aquí es donde las cosas se pueden complicar.

Para entender por qué, hay que empezar por el principio. Lo primero que hay que explicar es qué es lo que hace que una cadena de bloques sea, en teoría, “segura”. Bitcoin es un buen ejemplo. En la cadena de bloques de Bitcoin, los datos compartidos son el historial de todas las transacciones realizadas de Bitcoin; en otras palabras, los datos crean un libro de contabilidad. Una red de ordenadores, llamados “nodos”, almacenan varias copias de este libro mayor. Cada vez que alguien envía una transacción al libro mayor, los nodos se aseguran de que la transacción sea válida. Es decir, se aseguran de que el usuario que ha gastado un bitcoin de verdad disponía de ese bitcoin para gastar. Un subconjunto de nodos compite entre sí para empaquetar transacciones válidas en forma de “bloques”, los cuales agradan a una cadena que se ha formado con las transacciones anteriores. Los propietarios de estos nodos se llaman mineros. De todos ellos, solo los que logran añadir con éxito nuevos bloques a la cadena, ganan bitcoins como recompensa.

En teoría, hay dos elementos que logran que este sistema sea imposible de manipular

1) Cada bloque va asociado a una huella digital criptográfica única

2) El “protocolo de consenso” logra que todos los nodos de la red lleguen a un acuerdo sobre la veracidad del historial compartido

Para generar esta huella digital única, llamada hash, hace falta mucho trabajo computacional y mucha energía. Por lo tanto, el hash es una prueba de que el minero que agregó el bloque a la cadena de bloques tuvo que realizar el trabajo computacional necesario para obtener su recompensa en forma de bitcoin (por esta razón, se dice que el protocolo de consenso de Bitcoin es una “prueba de trabajo”). También sirve como una especie de sello, ya que para alterar el bloque habría generar un nuevo hash. A pesar de este laborioso proceso, verificar que el hash coincide con su respectivo bloque es fácil. Así que una vez que los nodos lo han verificado, actualizan sus respectivas copias de la cadena de bloques para incorporar la información actualizada del nuevo bloque. A esto se le conoce como protocolo de consenso.

El elemento de seguridad final es que los hash también actúan como enlaces en la cadena de bloques: cada bloque incluye el hash exclusivo del bloque anterior. Por lo tanto, si desea cambiar un registro de la cadena de forma retroactiva, habrá que calcular un nuevo hash, no solo para el bloque en el que se trabaja sino también para cada bloque subsiguiente. Y este proceso debe realizarse en un tiempo récord, ya que tiene que debe completarse antes de que los otros nodos agreguen nuevos bloques a la cadena. Entonces, a menos que alguien tenga una potencia computacional superior a la de la suma del resto de nodos (y aun así, el éxito no está garantizado), los bloques que intente añadir entrarán en conflicto con los existentes. Cuando esto pasa, el resto de nodos rechaza  los cambios automáticamente. Esto es lo que hace que la cadena de bloques sea imposible de manipular, o “inmutable”.

Maneras creativas de hacer trampas

La teoría debería funcionar, pero llevarla a la práctica es más complicado. El simple hecho de que un sistema como Bitcoin funcione no significa que sea igual de seguro que la teoría. Incluso cuando los desarrolladores usan herramientas criptográficas que han sido probadas y son verdaderas, es fácil tener un accidente y combinarlas de formas no seguras, advierte la directora de la Iniciativa de Moneda Digital del MIT (EE. UU.) Neha Narula. Bitcoin es la que lleva más tiempo en funcionamiento y por eso es la que más ha demostrado ser efectiva.

Las personas también han encontrado estrategias imaginativas para hacer trampas. El investigador de la Universidad de Cornell (EE. UU.) Emin Gün Sirer y sus compañeros han demostrado que se puede alterar una cadena de bloques incluso aunque se tenga menos de la mitad de la potencia minera que el resto de mineros. Los detalles son algo técnicos, pero básicamente dicen que un “minero egoísta” puede obtener una ventaja injusta al engañar a otros nodos para que pierdan el tiempo en resolver rompecabezas criptográficos que ya tienen solución.

Otra posibilidad es el “ataque de eclipse”, que se basa en controlar la comunicación del sistema. Los nodos de la cadena de bloques deben permanecer en comunicación constante para poder comparar datos. Un atacante que se haga con el control de las comunicaciones de un nodo podría engañarlo para que acepte datos falsos que, en apariencia, proceden de la red. También podría manipularlo para que desperdicie recursos o confirme transacciones falsas.

Finalmente, Sirer cree que no importa que una cadena de bloques sea imposible de manipular, porque “la cadena de bloques no existe en el vacío” sino que es parte de un conjunto. Los ataques a criptomonedas que han saltado recientemente a los medios suelen provenir de fallos en los puntos en los que las cadenas de bloques conectan con el mundo real, por ejemplo, en software de clientes y aplicaciones de terceros.

Los hackers pueden, por ejemplo, entrar en las carteras calientes (un término que se refiere a las aplicaciones de billetera conectadas a internet que los usuarios utilizan para almacenar las claves criptográficas privadas. Cualquier persona que tenga criptomonedas necesita una cartera caliente para gastar sus divisas). Las carteras calientes dominadas por casas de cambio digitales de criptomonedas se han convertido en uno de los objetivos principales para los hackers. Muchas de estas empresas afirman que la mayor parte del dinero de sus usuarios se almacena en carteras “frías” (aplicaciones de almacenamiento que no están conectadas a internet), pero como mostró el robo de más de 400 millones de euros en criptomonedas de la casa de cambio japonesa Coincheck, parece que este no siempre es el caso.

Quizás los puntos de contacto más complicados entre las cadenas de bloques y el mundo real sean los “contratos inteligentes”. Se trata programas informáticos almacenados en ciertos tipos de cadenas de bloques que permiten automatizar las transacciones. En 2016, los ciberdelincuentes de aprovecharon de una peculiaridad imprevista de un contrato inteligente escrito en la cadena de bloques de Ethereum para robar 3.600 millones de estas criptomonedas de la Organización Autónoma Descentralizada (DAO), un nuevo tipo de fondo de inversión basado en la cadena de bloques. La suma de aquellas criptodivisas robadas está valorada en unos 65 millones de euros.

Dado que el código de DAO estaba en la cadena de bloques, la comunidad Ethereum tuvo que impulsar una polémica actualización de software llamada ‘bifurcación dura’ para recuperar el dinero. La actualización básicamente consistió en crear una nueva versión de la historia en la que nunca se robó el dinero. Los investigadores aún están desarrollando métodos para garantizar que los contratos inteligentes funcionen correctamente.

La cuestión de la centralización

Una supuesta garantía de seguridad de una cadena de bloques se basa en su “descentralización”. Si las copias de la cadena de bloques se mantienen en una gran red de nodos y se distribuye ampliamente, no hay ningún punto débil para atacar. Y es difícil que cualquiera acumule la suficiente potencia informática para alterar la red. Pero el trabajo reciente de Sirer y sus compañeros muestra que ni Bitcoin ni Ethereum están tan descentralizados parece. El equipo descubrió que los cuatro mineros principales de bitcoins acumulaban más del 53 % de la capacidad minera media semanal del sistema. De la misma forma, en Ethereum, el 61 % de la capacidad pertenecía a solo tres mineros.

Algunos dicen que otros protocolos de consenso alternativos, tal vez los que no dependen de la minería, podrían ser más seguros. Pero esta hipótesis no ha sido probada a gran escala, y los nuevos protocolos probablemente tengan sus propios problemas de seguridad.

Otros valoran las cadenas de bloques que requieren permiso para unirse, a diferencia del caso de Bitcoin, donde cualquiera que descargue el software puede unirse a la red. Tales sistemas son una blasfemia para la máxima antijerárquica de las criptomonedas. No obstante, es un enfoque que atrae tanto a las instituciones financieras como a otras que quieren explotar las ventajas de una base de datos criptográfica compartida.

Pero los sistemas con permisos plantean sus propias preguntas. ¿Quién tiene la autoridad para otorgar el permiso? ¿Cómo se asegurará el sistema de que quienes validen el acceso sean quienes dicen ser? Un sistema autorizado puede hacer que sus propietarios se sientan más seguros, pero en realidad esto solo les da más control. Y esto significa que quien tenga el control podría hacer cambios, a pesar de lo que otros participantes de la red piensen. Los verdaderos creyentes de la tecnología ven esto como una violación de la idea central de la cadena de bloques.

Así que, al final, la palabra “seguro” termina siendo muy difícil de definir en el contexto de la cadena de bloques. ¿Seguro de quién? ¿Seguro para qué? “Depende de su punto de vista”, concluye Narula.

Fuente