El viernes 17 de junio quedará grabado en la retina y cerebro de muchos. A las 03:34 horas UTC Los peores miedos de los que invirtieron en la compra de tokens del DAO se hicieron realidad, el contrato inteligente que vive en la cadena de bloques de Ethereum fue atacado sin piedad; más de 3.5 millones de ethers han sido extraídos del DAO, y existe un alto grado de incertidumbre sobre la resolución final del problema.

Primero lo primero, ¿Cómo fue atacado el DAO y cuantos ethers han sido robados? la respuesta es bastante técnica, pero básicamente el/los atacantes hicieron uso de una vulnerabilidad recientemente descubierta en el código fuente del contrato del DAO. Sin embargo, al momento de su descubrimiento no parecía posible que un ataque fuese exitoso, ya que el fallo requería que hubiese fondos en la cartera de Rewards (donde el DAO recibiría las ganancias de sus inversiones). El atacante ha podido circunvenir esta limitante ya que descubrió que la vulnerabilidad también existía en la función splitDAO (usada para separarse del DAO y obtener los ether de vuelta), mediante una serie de llamadas recursivas a una de las funciones integradas en el contrato, el malhechor fue capaz de ejecutar el robo más sofisticado de los últimos tiempos. 

Esto dio como resultado la creación de un DAO hijo (controlado por el atacante) que contiene 3.6 millones de ether. Este DAO contiene todas la mismas propiedades y vulnerabilidades que el original, esto significa que el ether en este contrato no podrá ser movido por al menos otros 28 días más. Es muy probable que el atacante se haya beneficiado económicamente de su obra al posicionar órdenes de venta (shorts) de ether en distintos mercados –lo cual está siendo investigado activamente por los responsables de estas plataformas–.

Al momento de escribirse este articulo aún existen fuertes debates dentro de la comunidad sobre cómo recuperar el dinero robado, algunos argumentan que un Contrato Inteligente es auto determinante –no requiere de jurisdicción externa que pueda interpretar su ejecución–, por lo que el atacante no está cometiendo ningún delito, sino haciendo un uso válido de las funciones que contenía el código. Otros argumentan que la cantidad robada puede tener desastrosas consecuencias en el mercado y en el futuro mismo de Ethereum ya que en unos meses la red cambiará a un algoritmo Proof-of-Stake. Un ente malicioso controlando el 4% del total de ethers disponibles puede resultar peligroso en este contexto. Es importante resaltar que en ningún momento la red Ethereum sufrí inconveniente alguno, y que el ataque fue perpetrado contra el DAO directamente, la red se encuentra funcionando normalmente.

Poco después del comienzo del ataque, un grupo de desarrolladores y miembros de la fundación Ethereum empezaron a delinear medidas de contingencia. Vitalik Buterin creador y fundador de Ethereum reveló una propuesta de Soft fork para la red, esto introduciría un cambio menos drástico en el código de Ethereum que imposibilitaría el retiro de fondos de la cuenta del atacante luego de los 27 días de espera. Esto es una solución temporal que le dará más tiempo a la comunidad de reaccionar y enfrentar el problema. Sólo los mineros pueden decidir si aceptar o no esta actualización, algunos pools de minería ya están ofreciendo la posibilidad a sus usuarios de ejercer su opinión.

Buterin también propuso una medida –catalogada como extrema por algunos– conocida como Hard fork, esto implica realizar cambios directos en el software utilizado por los mineros y usuarios de la red para retornar los fondos robados. El fundador de Ethereum hizo hincapié en que no se revertirá ninguna transacción, sino que simplemente los fondos de la dirección del atacante serán forzosamente transferidos hacia una nueva dirección, en donde los poseedores de tokens DAO podrán recuperar sus ether.

Una de las polémicas más debatidas entre los miembros de la comunidad se refiere a las implicaciones legales y filosóficas –referente a la premisa de inmutabilidad y libertad de la red– de este robo. El conocido experto en criptomonedas Andreas M. Antonopoulos cree que el remedio planteado por la fundación Ethereum podría resultar peor que la enfermedad, Andreas dijo:

La cura propuesta por Vitalik Buterin ha causado consternación porque muchos lo ven como una intervención directa sobre el funcionamiento de un contrato inteligente, esto causa una contradicción sobre el concepto mismo de este (el contrato es ley y autoejecutable). Esto podría sentar un muy mal precedente para el futuro.

El abogado Brian Klein –experto en temas de cripto leyes– dijo que las soluciones planteadas por la fundación tienen la intención de retornar el dinero a sus legítimos dueños, y evitar la posible intervención de agencias regulatorias gubernamentales (una posibilidad debido a las grandes cantidades de dinero en juego). Una cosa es cierta, programar contratos inteligentes no es tarea fácil, y requiere de un extenso proceso de auditoría.

La mesa está servida, y en los próximos días continuará el debate, ¿Aceptará la comunidad un Soft Fork/Hard Fork?