Los monederos físicos son considerados una de las formas más seguras de guardar criptomonedas porque mantienen las claves privadas fuera de internet. Sin embargo, ese aislamiento sirve de poco cuando la clave fue creada mediante un proceso predecible.
Eso es lo que ocurrió con determinados dispositivos ColdCard. Un error de integración en su firmware hizo que la generación de semillas utilizara un sistema pseudoaleatorio de MicroPython en lugar del generador físico de números aleatorios previsto por el fabricante.
El resultado fue una reducción crítica de la incertidumbre que protege las claves. Los atacantes no necesitaron robar los dispositivos, infectarlos ni conocer sus frases de recuperación: pudieron calcular posibles semillas desde fuera y comprobar cuáles correspondían a direcciones con fondos.
Cerca de 89 millones de dólares en tres oleadas
Hasta el 2 de agosto, investigadores habían relacionado tres oleadas de transferencias con el fallo. En conjunto, se habían movido unos 1.367 bitcoin, valorados entonces en cerca de 89 millones de dólares, desde 4.585 direcciones. La primera operación retiró aproximadamente 1.083 bitcoin de 1.196 direcciones en 41 minutos.
No está claro que todas las oleadas fueran realizadas por la misma persona. Galaxy Research considera que cada grupo de transferencias muestra la actuación de un operador coordinado, pero la cadena de bloques no permite demostrar que el responsable fuera el mismo en los tres casos.
El 3 de agosto apareció una posible cuarta oleada. El patrón observado podría elevar el total hasta unos 1.816 bitcoin procedentes de más de 5.200 direcciones, aunque esa estimación se publicó mientras varias transacciones todavía estaban pendientes y se basaba en patrones detectados en la red, no en denuncias confirmadas de todas las víctimas.
⚠️ALERTA DE SEGURIDAD $BTC
Coldcard sufrió un grave fallo de firmware (desde 2021) que permitió drenar entre 594 y +1.000 $BTC (+70 millones USD) de cientos de billeteras sin tocar los dispositivos.
El bug afectaba la generación de semillas (no eran realmente aleatorias). pic.twitter.com/4dTWxSQjN3
— Juliet 🐺 (@Trader_Juliet) August 2, 2026
El error estaba en el origen de las claves
Un monedero genera primero una frase semilla, normalmente formada por 12 o 24 palabras. De ella derivan las claves privadas y las direcciones utilizadas para recibir bitcoin.
En condiciones normales, la cantidad de combinaciones posibles es tan grande que adivinar una semilla mediante fuerza bruta resulta inviable.
El problema apareció en marzo de 2021, cuando ColdCard trasladó algunas operaciones criptográficas a una biblioteca llamada libNgU. La generación de semillas pasó a utilizar ngu.random.bytes, pero esa función terminó conectándose con un generador de software determinista en lugar de hacerlo con el generador físico del dispositivo.
Ese sistema se inicializaba con información como el identificador del microcontrolador y registros asociados al reloj. Son valores que pueden parecer variables, pero no constituyen por sí solos una fuente criptográfica suficientemente impredecible.
Coinkite estima que los modelos Mk2 y Mk3 afectados tenían un espacio efectivo de búsqueda cercano a 40 bits. En Mk4, Q y Mk5 se añadía información procedente de elementos seguros, elevando su estimación hasta unos 72 bits.
Block presentó una interpretación más severa para los modelos recientes: aunque se introducía entropía adicional, el proceso retenía solo cuatro bytes, equivalentes a 32 bits, para modificar el generador. Eso limitaría a unos 4.300 millones el número de corrientes distinguibles una vez conocidos o acotados otros estados internos.
Esto no significa que cualquier persona pudiera probar automáticamente todas las semillas en unos minutos. El coste práctico dependía también del identificador del dispositivo, el momento de arranque, las llamadas anteriores al generador y otros datos. Block aclaró que no había realizado una prueba completa capaz de demostrar el tiempo necesario para recuperar cada monedero.
Actualizar el dispositivo no repara la semilla
Coinkite publicó firmware de emergencia para todos los modelos afectados. La actualización corrige la generación de nuevas semillas, pero no añade aleatoriedad a una frase creada anteriormente.
Los usuarios afectados deben instalar la versión corregida, generar una semilla completamente nueva y trasladar los fondos después de verificar una dirección de recepción. Una contraseña BIP-39 fuerte o al menos 50 tiradas privadas e independientes de dados utilizadas durante la creación pueden haber añadido una barrera adicional, pero el fabricante recomienda migrar igualmente.

Coinkite también detuvo los envíos y destruyó el inventario que conservaba con firmware vulnerable. La empresa reconoció que el episodio destruyó ahorros y dañó la confianza construida durante años.
El código era abierto, pero nadie siguió todo el recorrido
El código de ColdCard estaba disponible públicamente. Las revisiones habían comprobado que el generador físico existía dentro del firmware, pero no verificaron de extremo a extremo qué implementación terminaba utilizando realmente la función encargada de crear la semilla.
Coinkite especuló con que el atacante pudo encontrar el error utilizando inteligencia artificial para revisar versiones antiguas del código. No presentó pruebas que respalden esa posibilidad, por lo que continúa siendo solo una hipótesis del fabricante.
El incidente no demuestra que todos los monederos físicos sean inseguros. Demuestra algo más incómodo: mantener una clave completamente desconectada no sirve si el azar utilizado para crearla nunca fue suficientemente impredecible.