ver más

El robo de 1816 bitcoins y el pecado según Von Neumann

Una falla en Coldcard redujo drásticamente las combinaciones posibles y expuso fondos por unos US$116 millones. El problema: la falta de verdadera aleatoriedad.


A fines de los '80 cursaba sexto año de secundaria en el colegio Otto Krause, para recibirme de técnico en computación. Las computadoras personales eran una rareza, y en las clases de computación —así se llamaban— íbamos descubriendo un mundo nuevo frente a monitores que se parecían más a las letras verdes que caen en Matrix que a una pantalla de hoy llena de gráficos y colores.

Como buenos nerds, nuestros intereses seguían la regla de Pareto: 80% tecnología, 20% para todo lo demás. No existía internet; mantenerse informado era leer revistas especializadas. Un día cualquiera un compañero llevó una PC Magazine, una revista aspiracional escrita por otros nerds en Estados Unidos. Por alguna razón terminó en mis manos, y leí un artículo sobre la imposibilidad de las computadoras de generar números aleatorios. Era tan interesante que hoy, casi cuarenta años después, todavía lo recuerdo. De esas ideas que quedan grabadas para siempre.

A fines de los 80 cursaba sexto año de secundaria en el colegio Otto Krause, para recibirme de técnico en computación.

El azar no era azar

En ese momento, al final de mi adolescencia, yo quería probar que el artículo estaba equivocado. Eso me llevó a investigar. En el camino conocí distintos métodos, empezando por el de la función RND del sistema operativo DOS. RND, en sí, es muy mala creando números aleatorios. ¿Y no era cualquier intento de crear aleatoriedad en una computadora igual de malo? No. La cantidad de entropía —una forma nerd de llamar al caos o la aleatoriedad— puede variar. Cuanta más entropía, más azar.

Pero conviene recordar la frase lapidaria de John von Neumann: "cualquiera que considere métodos aritméticos para producir dígitos aleatorios está, por supuesto, en un estado de pecado". No me preocupaba tanto el pecado clásico, pero Von Neumann hablaba del pecado intelectual, y así terminó de convencerme: se puede mejorar, pero determinismo y aleatoriedad no se llevan bien. Una máquina que sigue reglas no puede crear azar de verdad.

De una revista de los '80 a un robo de 116 millones

Podría haber quedado como una curiosidad de adolescencia. Pero hace unas semanas esa idea volvió, y con consecuencias millonarias. Se conoció un robo a billeteras de hardware, que son el santo grial de la seguridad para hacer autocustodia de bitcoin. Y no cualquiera: la víctima fue la Coldcard, el dispositivo que los propios bitcoiners recomendaban para guardar sus fondos. Cuando alguien estrena una billetera de hardware, lo primero que hace el aparato es generar una combinación aleatoria de 24 palabras tomadas de un diccionario de 2048.

Para dar una referencia, la cantidad de combinaciones posibles es este número:

115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936

Pero ya sabemos que la aleatoriedad es un problema para las computadoras.

Las computadoras personales eran una rareza, y en las clases de computación —así se llamaban— íbamos descubriendo un mundo nuevo.

Una falla millonaria

Nadie robó esos bitcoins adivinando entre 10 combinaciones. Los robó porque, en los modelos de Coldcard con problemas, el aparato que debía elegir al azar solo era capaz de elegir entre un billón, un número muy inferior al posible. Un error en el firmware, arrastrado durante cinco años, hacía que el dispositivo saltara su chip dedicado de aleatoriedad y cayera en un generador muy pobre. El azar diseñado para ser inabarcable quedó reducido a un billón de opciones. Y un billón se recorre en meses con una notebook. ¿Qué falló? La entropía. El azar no era tan azar. Von Neumann tenía razón, y la factura llegó casi cuarenta años después: alrededor de 116 millones de dólares vaciados de billeteras que nunca se conectaron a internet.

Lo que no se calcula, se mide

Acá está la moraleja, que es más profunda que un bug. Si el determinismo no puede fabricar azar —y no puede—, entonces el azar de verdad no se calcula: se sale a buscar al mundo físico. Los buenos generadores de aleatoriedad no inventan números con una fórmula; cosechan el desorden del mundo real —el ruido térmico de un circuito, fenómenos cuánticos, lo impredecible de la materia— y de ahí extraen su caos. Eso es, exactamente, lo que la Coldcard debía hacer y no hizo. Y esto abre una puerta que no esperaba encontrar cuando leía aquella revista. Si el azar genuino no vive en el cálculo sino en la física, cabe preguntarse hasta dónde llega. ¿Hay lugar para lo verdaderamente impredecible en el mundo? ¿Y para la decisión? ¿Para eso que llamamos libre albedrío? Pero esa es una pregunta tan grande que se merece su propia nota. Por ahora quedémonos con esta, que ya es bastante: el hardware más confiable del mundo del bitcoin fue derrotado por lo único que una máquina nunca supo hacer bien: la simple tarea de tirar los dados.

Para quien quiera profundizar: la frase de John von Neumann sobre el "estado de pecado" está en "Various Techniques Used in Connection with Random Digits" (1951), presentado en un simposio sobre el método Montecarlo; en ese mismo texto señala que los procesos físicos son "el ideal de la aleatoriedad". El estándar que define las 24 palabras y el diccionario de 2048 es BIP-39, una de las propuestas de mejora de Bitcoin. El detalle técnico de la falla en las Coldcard está en el aviso de seguridad de Coinkite, su fabricante (2026), y las cifras de fondos robados, en los conteos de Galaxy Research.

* Juan Pablo da Rocha

X @YanpolCripto