Ethereum (ETH) podría haber caído desde 2019 – Pequeños secretos en torno a una gran vulnerabilidad

El día en que Ethereum podría haber caído – Los desarrolladores de Ethereum acaban de arrojar luz sobre un fallo presente desde 2019 que podría haber tenido consecuencias dramáticas en la red. Afortunadamente, éste pudo ser arreglado recientemente sin llegar a ser explotado.

Un fallo que podría haber hecho caer a Ethereum

El 18 de mayo, los desarrolladores de la red Ethereum abordaron un tema que se ha mantenido en secreto hasta ahora. De hecho, el informe publicado en el sitio web de la Fundación Ethereum explica que existía un vector de ataque en la red Ethereum, que podía inutilizar la cadena.

En octubre de 2019, 2 investigadores de ciberseguridad, Hubert Ritzdorf y Matthias Egli ya habían publicado un escalofriante artículo. Este presentaba un método de ataque bastante inquietante. Afortunadamente, una vez revelado esto, los desarrolladores de los distintos clientes de Ethereum se pusieron al día para solucionar el problema en cuestión.

De hecho, fue un ataque DoS (o ataque de denegación de servicio). Esto podría haber paralizado la red de Ethereum, dando lugar a tiempos de bloqueo en el rango de minutos. Lo más impresionante: se podría haber llevado a cabo, con sólo unas decenas de miles de dólares.

Al final, hubo que esperar hasta abril de 2021 y el despliegue de Hardfork Berlín para que el vector de ataque quedara invalidado, lo que redujo la eficacia del ataque en un factor de 50.

La raíz del problema

Tenemos que volver a ver cómo funciona Ethereum para entender bien el famoso problema. En realidad, el estado de Ethereum es similar a un árbol de Patricia-Merkle, donde a medida que la red crece, el número de ramas y hojas del árbol aumenta.

Así, cuando se realiza una ordenación para encontrar una cuenta, se realizan 8-9 operaciones de resolución. Estas operaciones dan lugar a operaciones en cadena y al consumo de gas.

En resumen, el ataque imaginado por los dos investigadores pretendía “desencadenar búsquedas de ordenación aleatorias”.

Dependiendo de la función de Solidity utilizada, esto dio lugar a tiempos de bloqueo que oscilaban entre 38 y 90 segundos, dependiendo de si los nodos eran Geth o Parity. Como recordatorio, el tiempo medio de bloqueo en Ethereum es de unos 13 segundos.

Además, este ataque se vuelve más y más efectivo a medida que crece el estado de Ethereum, lo que ocurre cuando observamos el número de nuevas direcciones creadas cada día. Una primera solución fue implementar un sistema de instantáneas dentro de los nodos de la red en octubre de 2019, lo que permitió reducir el número de operaciones por el nodo.

Para mitigar definitivamente este vector de ataque, los desarrolladores propusieron finalmente las EIPs 2929 y 2930, destinadas a aumentar el coste del gas de algunas operaciones. Estos dos EIPs se integraron en la red principal durante el hard fork de Berlín.

No es la primera vez que nos encontramos con este tipo de situaciones. De hecho, en septiembre de 2020 también se había descubierto un fallo en la red Lightning de Bitcoin. Afortunadamente, en ambos casos, los vectores de ataque no fueron explotados antes de ser corregidos.

Deja una respuesta

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