-
La primera falla podría haber tumbado a los nodos de la red por maleabilidad.
-
Un bug de doble gasto habría permitido gastar monedas de BTC dos veces.
Sergio Lerner, cofundador de Rootstock, contó durante una entrevista exclusiva a CriptoNoticias que en 2012 encontró dos fallas en el código de Bitcoin que, de no haber sido detectadas a tiempo, podrían haber comprometido el funcionamiento de toda la red. La primera podía inundar de mensajes falsos a todos los nodos de la red hasta tumbarlos al mismo tiempo. La segunda hacía posible gastar los mismos bitcoin dos veces.
Lerner ubicó ambos episodios dentro de una revisión de seguridad más amplia que realizó sobre Bitcoin en 2012. Al describir ese trabajo, afirmó: «Cuando yo me puse a mirar la seguridad de Bitcoin en 2012 encontré muchas vulnerabilidades, algunas críticas«. Según su relato, la falla en el sistema de alertas fue apenas «una de las más llamativas» de ese conjunto, lo que indica que hubo otros hallazgos de esa revisión que no se detallan en esta entrevista.
La entrevista con Lerner también cubre temas sobre el desarrollo de Rootstock (RSK), la primera sidechain (cadena lateral) de Bitcoin compatible con la máquina virtual de Ethereum (EVM), de la cual es cofundador. Lerner también es conocido por sus investigaciones sobre el patrón Patoshi, un análisis de los primeros bloques minados por Satoshi Nakamoto, y por auditorías tempranas de seguridad del protocolo de Bitcoin.

La falla en el sistema de alertas de Satoshi
De acuerdo con Lerner, en 2012 revisó con detenimiento la seguridad de Bitcoin y detectó un bug que afectaba al sistema de alertas que Satoshi Nakamoto había incorporado en las primeras versiones del software, un mecanismo que permitía enviar avisos a toda la red sobre el lanzamiento de nuevas versiones.
Lerner explicó que descubrió allí lo que definió como «el primer bug de maleabilidad de firmas» detectado en Bitcoin, aunque aclaró que después aparecieron otras fallas del mismo tipo. La maleabilidad de firmas es una propiedad por la cual una firma digital válida puede modificarse levemente sin dejar de ser válida, lo que altera el identificador de una transacción sin cambiar su contenido de fondo. Conforme a la explicación de Lerner, esa propiedad permitía a un atacante alterar la firma de una alerta y hacer que cada nodo la registrara como si fuera un mensaje distinto.
Ese mecanismo de ataque dependía directamente de la maleabilidad de firmas. Si un atacante modificaba levemente la firma de una alerta, el mensaje resultante ya no era reconocido como una copia de otro que ya circulaba, sino que cada nodo lo trataba como un aviso legítimo y distinto.
De ese modo, el atacante podría generar, a partir de una sola alerta original, una cantidad prácticamente ilimitada de variantes, todas válidas para la red. Lerner describió la consecuencia como un ataque de flooding (inundación): «permitía a un atacante hacer un flooding, llenar toda la memoria de todas las computadoras, llenarlas de alertas, cambiando las alertas levemente en su firma». Cada nodo, al recibir una variante nueva, la almacenaba y la reenviaba a sus pares (los demás nodos con los que se conecta directamente), que a su vez hacían lo mismo, por lo que una sola alerta maleada terminaba multiplicándose de nodo en nodo hasta saturar la memoria de toda la red.
Según Lerner, esa saturación no solo tumbaba los nodos de forma simultánea, sino que les impedía volver a funcionar después. La razón, según su relato, es que el flujo de variantes maleadas no se detenía una vez lanzado el ataque: cuando un nodo intentaba reiniciarse y volvía a conectarse con sus pares, estos le retransmitían de inmediato las mismas alertas alteradas que todavía tenían almacenadas, y su memoria volvía a llenarse antes de terminar de sincronizar.
No se podían levantar después porque si uno los trataba de levantar, los nodos a los que se conectaba lo bombardeaban a uno con alertas y volvían a llenar la memoria.
Sergio Lerner, cofundador de Rootstock.
Lerner definió ese episodio como «un escenario catastrófico» que evitó al reportarlo en 2012 y además situó el hallazgo en un momento particular de la red, cuando Bitcoin recién comenzaba a ganar visibilidad y correr un nodo implicaba, según su descripción, una decisión de confianza en un sistema todavía joven.

El bug de doble gasto que no llegó a producción
Lerner relató un segundo episodio ocurrido también en 2012, esta vez ligado al proceso de corrección de una falla anterior que el desarrollador argentino no especificó. Según contó, un core developer (desarrollador principal) del proyecto intentó reparar una vulnerabilidad previa y, al hacerlo, introdujo por error una segunda falla.
En el arreglo de la vulnerabilidad pusieron otra vulnerabilidad por error y ahí yo lo agarré antes de que saliera a producción.
Sergio Lerner, cofundador de Rootstock.
La nueva falla, según Lerner, habilitaba lo que se conoce como doble gasto (double spend), la posibilidad de utilizar la misma unidad de Bitcoin en más de una transacción, algo que el diseño del protocolo busca impedir por definición. Según contó, llegó a detectarla justo antes de que el parche defectuoso saliera a producción, es decir, antes de que la corrección errónea llegara a implementarse en el software que corren los nodos de la red.
A diferencia del episodio relativo a las alertas, Lerner no pudo reconstruir el mecanismo técnico de esta segunda falla. «No me acuerdo, pero fue una falla que se introdujo tratando de arreglar otra falla».
Finalmente, Lerner vinculó ambos hallazgos con el inicio de su relación con los desarrolladores principales de Bitcoin de esa época. Según su relato, la primera vulnerabilidad reportada generó desconfianza inicial porque no tenía trayectoria previa dentro del proyecto, y fue recién tras detectar el segundo error, antes de su lanzamiento, cuando ese grupo comenzó a dialogar con él «más o menos de par en par».








