Explicación del exploit de Coldcard para Bitcoin: cómo un fallo de firmware redujo la entropía de las claves y permitió el robo de 130 millones de dólares
Puntos clave
- •Un error de configuración de compilación provocó que las carteras Coldcard usaran un generador de números pseudoaleatorios de software en lugar del chip de aleatoriedad de hardware previsto, reduciendo la entropía de 128 bits a aproximadamente 40 bits en los dispositivos Mk2 y Mk3.
- •Galaxy Research ha confirmado el robo de al menos 1.596 BTC en tres oleadas de ataque, con una cuarta oleada sospechosa que podría elevar las pérdidas totales a aproximadamente 2.055 BTC o unos 130 millones de dólares.
- •La vulnerabilidad no fue detectada durante aproximadamente ocho años a pesar de que el código abierto de Coldcard estaba disponible públicamente para revisión comunitaria.
- •Coinkite ha publicado firmware corregido para todos los modelos afectados, pero el parche no puede reparar las semillas existentes, lo que significa que los usuarios deben generar nuevas carteras y transferir manualmente todos los fondos.
- •Coinkite sospecha que los atacantes descubrieron la falla utilizando análisis de código asistido por IA, y señaló que su propia revisión reciente con IA del mismo código no identificó el problema.

Un fallo de firmware provocó que las carteras físicas Coldcard generaran semillas a partir de un generador de números pseudoaleatorios de software en lugar del chip de aleatoriedad de hardware dedicado diseñado para esa tarea. La falla redujo efectivamente el espacio de búsqueda de 128 bits a aproximadamente 40 bits en los modelos de dispositivos más antiguos, lo que permitió a los atacantes calcular las claves privadas y vaciar carteras que nunca debieron ser accesibles.
Las monedas se encontraban en dispositivos Coldcard —carteras físicas fabricadas por la empresa canadiense Coinkite que están diseñadas para permanecer sin conexión a internet. Las carteras Coldcard han sido ampliamente recomendadas en los círculos de seguridad de Bitcoin específicamente por su diseño air-gapped y su arquitectura transparente, lo que hace que esta falla sea especialmente significativa para los usuarios que eligieron el dispositivo precisamente por su reputación de seguridad. No hubo enlaces de phishing, malware ni dispositivos robados. Los atacantes simplemente dedujeron las claves privadas.
Galaxy Research ha rastreado más de 1.596 BTC robados en tres oleadas confirmadas, con una cuarta oleada sospechosa que elevaría el total a aproximadamente 2.055 BTC —unos 130 millones de dólares a precios actuales. Un único barrido movió 70 millones de dólares en 41 minutos. Coinkite afirma que al menos 15 atacantes distintos han participado. La gran mayoría de los robos a gran escala de criptomonedas han dependido de la ingeniería social, vulneraciones de exchanges o exploits de contratos inteligentes; una vulnerabilidad que permitió a los atacantes calcular claves únicamente a partir de los metadatos del dispositivo representa una superficie de amenaza fundamentalmente distinta.
La empresa publicó un informe técnico de antecedentes el 1 de agosto explicando qué salió mal. Es un documento inusualmente franco; la versión resumida es que la cartera estuvo efectivamente tirando dados cargados durante ocho años sin que nadie se diera cuenta.
Cero sigue siendo algo
En 2021, Coinkite migró la criptografía de Coldcard a libsecp256k1, la misma biblioteca que utiliza Bitcoin Core. La integración fue donde comenzó el problema.
La migración redirigió silenciosamente la generación de semillas alejándola del generador de números aleatorios de hardware propio de Coldcard y hacia la alternativa de software de MicroPython —un pequeño algoritmo llamado Yasmarang, diseñado para dispositivos que carecen por completo de un chip de aleatoriedad.
🚨LAS PÉRDIDAS POR EL HACK DE COLDCARD SUPERAN LOS $100M
Con alta confianza, 1.596 BTC han sido robados de ~7300 direcciones en 3 oleadas confirmadas + otros 14 incidentes menores.
Si sumamos los casos sospechosos (pero no confirmados), el total se dispara a $130m (2k BTC).
Más en el hilo a continuación 👇 pic.twitter.com/RAl3ib67qa
— Galaxy Research (@glxyresearch) 3 de agosto de 2026
Coldcard sí tiene un chip de aleatoriedad. Simplemente dejó de ser invocado.
La razón es casi demasiado pequeña para creerla. Una protección de compilación usaba #ifndef, que verifica si una configuración existe en lugar de si está activada. Coinkite había definido esa configuración como cero, es decir, "desactivada". Como cero sigue contando como definida, la verificación de seguridad pasó y la compilación se completó. Ambas versiones de la función tenían firmas idénticas, por lo que nada parecía estar mal. Los errores de configuración de compilación de este tipo —donde una directiva de preprocesador selecciona silenciosamente la ruta de código equivocada— son una clase reconocida de defecto en el desarrollo en C y C++, pero son notoriamente difíciles de detectar mediante pruebas porque el binario compilado se comporta con normalidad en todos los aspectos observables.
"La mayor parte de la aleatoriedad en el COLDCARD provenía de un PRNG que no sabía que estaba realmente en el código fuente", escribió Coinkite, refiriéndose a un generador de números pseudoaleatorios —software que produce números que parecen aleatorios pero siguen una receta fija a partir de un valor inicial. Si se proporciona el mismo valor inicial a la receta, el resultado es idéntico, cada vez.
En los dispositivos Mk2 y Mk3 con firmware de la versión 4.0.1 a la 4.1.9, ese valor inicial se derivaba del número de serie del chip y de su reloj. Coinkite estima que el espacio de búsqueda resultante era de aproximadamente 40 bits. Los modelos más nuevos mezclaban una pequeña cantidad de entropía del elemento seguro, elevando el espacio de búsqueda a aproximadamente 72 bits.
Ninguna de las dos cifras alcanza los 128, el objetivo previsto.
La diferencia importa más de lo que parece. Los bits son exponentes. Un espacio de búsqueda de 128 bits contiene más combinaciones que átomos hay en el universo observable, lo que hace que la búsqueda por fuerza bruta sea efectivamente imposible. Cuarenta bits equivalen aproximadamente a un billón de posibilidades —una cifra que un portátil estándar puede procesar. Cada bit perdido reduce a la mitad el trabajo necesario del atacante.
El equipo de ingeniería de Block, que publicó su propio análisis, situó el espacio de búsqueda efectivo del elemento seguro de los dispositivos más nuevos en 2^32 candidatos, con un promedio de aproximadamente 2^31 intentos. Su evaluación para las placas más antiguas es más directa: dado un ID de dispositivo conocido, el estado del temporizador y el historial de llamadas, la generación de la cartera es determinista. Y determinista es lo contrario de aleatorio —la propiedad esencial para la criptografía.
No "débil." Predecible.
Coinkite sospecha que la vulnerabilidad fue descubierta mediante análisis de código automatizado. "Tenemos que asumir que alguien usó IA para revisar versiones anteriores de nuestro firmware y se topó con este problema", escribió la empresa, añadiendo que había ejecutado recientemente uno de los mejores modelos de IA disponibles sobre el mismo código sin encontrar nada. "Tanto los atacantes como los defensores tienen las mismas herramientas de IA, pero hoy no nos ayudó a nosotros y solo ayudó a los malos."
Se ha publicado firmware corregido para todos los modelos afectados. No repara las semillas existentes; esas carteras deben ser regeneradas y los fondos transferidos. Decrypt ha explicado cómo cambia el almacenamiento air-gapped después de un exploit como este y rastreado las pérdidas superando los 114 millones de dólares.
Qué es realmente la entropía
La entropía mide cuánto desconoce un atacante —en otras palabras, incertidumbre medida en bits. Un bit equivale a un lanzamiento de moneda: dos resultados, y quien adivina acierta la mitad de las veces. Diez bits equivalen a 1.024 resultados. Cada bit adicional duplica la carga de trabajo de quien intenta adivinar.
Una cartera de Bitcoin es fundamentalmente un número muy grande mantenido en secreto. La dirección a la que la gente envía monedas se deriva matemáticamente de él, y la derivación funciona en un solo sentido —se puede ir de la clave a la dirección, pero nunca a la inversa.
La seguridad de cada cartera depende, por lo tanto, de una sola pregunta: ¿cuántos números tendría que probar un atacante? Si el número se eligió con 128 bits de entropía, la respuesta es "más de lo que la física permite." Si se eligió con 40 bits, la respuesta es "dame un poco de tiempo."
Esta es la misma propiedad que hace que la amenaza de la computación cuántica merezca debate —una máquina cuántica atacaría el enlace matemático entre clave y dirección. El fallo de Coldcard nunca requirió algo tan sofisticado. Hizo que las claves fueran adivinables antes de que esa matemática entrara en juego.
La terminología aquí se vuelve resbaladiza. Un generador pseudoaleatorio produce resultados que pasan las pruebas estadísticas de aleatoriedad —nada que una hoja de cálculo detectaría. Sin embargo, ese resultado sigue estando completamente determinado por su valor de semilla. Parece aleatorio pero no lo es.
La aleatoriedad estadística y la imprevisibilidad criptográfica son propiedades diferentes. El resultado de Coldcard habría superado la primera prueba con facilidad mientras reprobaba la segunda por completo.
La verdadera aleatoriedad debe provenir de ruido físico: fluctuaciones eléctricas en un circuito, variación térmica, desintegración radiactiva. Eso es precisamente lo que el chip de hardware en Coldcard estaba diseñado para proporcionar. Ese es el chip que la directiva de compilación desconectó.
Entonces Luke Dashjr mencionó los dados
Mientras los usuarios se apresuraban a regenerar sus semillas, muchos recurrieron a la solución obvia de baja tecnología. Las carteras Coldcard permiten a los usuarios tirar dados físicos e introducir los resultados como entropía. Las propias directrices de Coinkite consideran que las semillas creadas con al menos 50 tiradas de dados independientes y privadas no están en riesgo por el fallo. La empresa incluso vende una bolsa de "100 pequeños y adorables dados" para facilitar el proceso.
El 31 de julio, el desarrollador de Bitcoin Core Luke Dashjr publicó una advertencia: "Bastante gente sugiriendo/usando dados para mitigar la vulnerabilidad de Coldcard. Tengan en cuenta que los dados comunes no están diseñados para ser criptográficamente seguros. Si van a hacer esto, probablemente deberían comprar dados de casino de precisión. E incluso entonces, tengan otra fuente de entropía."
El Bitcoin Twitter no lo tomó con calma.
"jaja ahora ni siquiera puedes tirar dados," escribió un usuario. "La autocustodia está acabada…" Otro preguntó si debería contratar a alguien con Parkinson para tirarlos.
¿Debería contratar a alguien con Parkinson para tirar los dados? — Murern (@Bitcoin_Murern) 31 de julio de 2026
La respuesta más útil desde el punto de vista técnico vino con aritmética. El desarrollador Justin Sharp calculó exactamente cuánto cuesta un dado sesgado en entropía:
"Exagerado. Un d6 perfecto da 2,585 bits por tirada. Un dado visiblemente sesgado, por ejemplo, con una cara que sale el 20% de las veces en lugar del 16,7%, todavía da unos 2,55 bits. En 99 tiradas esa es la diferencia entre ~256 bits y ~252 bits de entropía."
Cuatro bits de 256. Esa es toda la penalización por un dado visiblemente injusto.
Dashjr no se equivoca al decir que los dados baratos tienen un sesgo medible —los puntos moldeados por inyección eliminan cantidades ligeramente distintas de plástico de cada cara, que es precisamente la razón por la que los casinos usan dados de precisión con relleno nivelado. Tiene razón en la física y se equivoca en lo que está en juego. Perder cuatro bits de 256 deja 252. El fallo de Coldcard dejó a los usuarios en 40.
Hay un argumento más profundo enterrado en su consejo, y no se trata de tolerancia de fabricación. Se trata de no confiar en una sola fuente de entropía. El fallo de Coldcard no fue que su aleatoriedad estuviera ligeramente sesgada —fue que un componente dejó silenciosamente de contribuir y nada lo detectó.
Qué hacer al respecto
Si generó una semilla en un Coldcard afectado sin tiradas de dados o una frase de paso BIP-39 fuerte, esa semilla debe considerarse comprometida.
Los pasos recomendados: actualizar el firmware, generar una nueva semilla, verificar la huella digital, enviar una transacción de prueba y luego transferir todos los fondos. El aviso de Coinkite explica el proceso modelo por modelo. Las semillas exportadas arrastran el defecto consigo —importar una semilla comprometida en una aplicación de cartera diferente no resuelve nada.
Para todos los demás, la conclusión no es que las carteras físicas estén rotas ni que los dados sean una trampa. Es que "aleatorio" es una afirmación, y las afirmaciones necesitan verificación. El código fuente de Coldcard fue público todo el tiempo. El generador de números aleatorios de hardware previsto estaba presente en el binario. Los revisores confirmaron que existía pero nunca confirmaron que el generador de semillas realmente lo invocara. El modelo de código abierto que Coldcard adoptó se basa precisamente en que este tipo de escrutinio comunitario detecte los fallos antes que los atacantes. Ocho años de auditorías examinaron el código correcto. Nadie verificó si se ejecutaba.