El incidente se conoció después de que el 30 de julio se transfirieran alrededor de 594 $BTC desde aproximadamente 500 direcciones Bitcoin con firma única, cuyo valor en ese momento era de unos 38 millones de dólares. Cuando la noticia apareció por primera vez, Bitcoin.com News señaló que las transferencias ocurrieron en un período de aproximadamente 25 minutos y aparentemente se dirigían a carteras con una vulnerabilidad técnica común.
Posteriormente, el análisis de la cadena de bloques permitió estimar la posible magnitud del robo. Los investigadores calcularon que en un período de aproximadamente 41 minutos podrían haberse visto afectadas entre 1,082 y 1,196 direcciones. Más tarde, un panel de monitoreo especial llamado Coldcard Sweep Watch estimó el monto total en 1,128.4717 $BTC, lo que, en un momento en que el Bitcoin cotizaba a unos 63,044 dólares, equivalía a aproximadamente 71.1 millones de dólares.

La mayor parte de los fondos se concentró en una sola dirección, que contenía cientos de bitcoins, y una parte significativa de estos fondos permanecía prácticamente inmóvil. Las direcciones afectadas tenían un detalle importante en común: sus frases semilla (seeds) de recuperación fueron creadas en carteras de hardware Coldcard, fabricadas por la empresa canadiense Coinkite.
La frase semilla es una lista de palabras que controla el acceso a una cartera de criptomonedas. Cualquiera que pueda recuperar u obtener esta frase semilla generalmente puede transferir fondos desde la cartera sin tener el dispositivo físico.
Coldcard detecta una vulnerabilidad en el sistema de generación de números aleatorios
Coinkite emitió una alerta urgente advirtiendo que algunas semillas generadas en dispositivos Coldcard podrían ser vulnerables. Los dispositivos Mk3 con la versión de firmware 4.0.1, lanzada aproximadamente en marzo de 2021, y versiones posteriores, se encontraban entre los que corrían mayor riesgo.
Un análisis posterior amplió las preocupaciones para incluir semillas creadas en algunos dispositivos Mk4, Mk5 y Q antes de que Coinkite lanzara parches de emergencia para el firmware. Se informa que los productos Tapsigner, Opendime y Satscard no se vieron afectados por esta vulnerabilidad, ya que utilizan un software diferente.
La vulnerabilidad estaba relacionada con el proceso de generación de datos aleatorios. La seguridad de las carteras depende de una alta calidad de la aleatoriedad para que sus semillas de recuperación no puedan ser adivinadas. Los investigadores estiman que en los dispositivos Mk3 más gravemente afectados, la semilla podría contener solo alrededor de 40 bits de aleatoriedad efectiva en lugar de los 128 bits previstos.
Esta diferencia es crucial. Una semilla de 128 bits generada correctamente se considera prácticamente imposible de adivinar por fuerza bruta. Una semilla de 40 bits ofrece significativamente menos opciones, lo que permitiría a un atacante con suficiente poder computacional probar posibles semillas fuera de línea y comparar las direcciones resultantes con la cadena de bloques pública de Bitcoin.
Algunos dispositivos más nuevos podrían haber proporcionado aproximadamente 72 bits de aleatoriedad efectiva, ya que el hardware seguro añadía otra capa de datos impredecibles. Esto dificultaría la recuperación de las semillas, aunque seguirían siendo mucho más vulnerables de lo que se suponía.
Un error de configuración que persistió durante 5 años
El problema comenzó con un error de configuración en la etapa de compilación, relacionado con dos funciones de software que realizaban tareas similares. Una función utilizaba el generador de números aleatorios verdadero (hardware) del dispositivo, mientras que la otra dependía de un proceso de software más débil heredado de MicroPython.
Coinkite tenía la intención de deshabilitar la opción de MicroPython. Sin embargo, la comprobación del software solo verificaba la existencia de una etiqueta de configuración definida, no si su valor se había establecido en cero. Como resultado, el firmware final podía elegir de manera inadvertida la función más débil.
Dado que ambas funciones tenían los mismos formatos, el software continuó compilándose y funcionando sin errores evidentes. El error se introdujo en el código durante la migración del software en 2021 y permaneció en el firmware público durante más de cinco años.
Actualizar el dispositivo ahora no refuerza una semilla generada con el software defectuoso. Los usuarios afectados deben crear una semilla completamente nueva utilizando el firmware corregido u otro dispositivo seguro, y luego transferir sus fondos a direcciones controladas por esta nueva semilla.

Los usuarios que, al crear su semilla, añadieron al menos 50 lanzamientos independientes de un dado, podrían haber proporcionado suficiente aleatoriedad para evitar esta vulnerabilidad. Una contraseña fuerte según el estándar BIP-39 también habría dificultado la recuperación, y las carteras que requieren firmas de múltiples dispositivos independientes podrían haber evitado la transferencia de fondos desde una única semilla comprometida.
Coinkite apunta a la IA, pero aún no hay pruebas
El CEO de Coinkite, Rodolfo Novak, se disculpó públicamente y declaró que la empresa asume toda la responsabilidad por el fallo del firmware. Informó que el equipo está trabajando en software corregido, informes técnicos y en brindar apoyo a los usuarios afectados.
Coinkite y Novak también propusieron una teoría sorprendente sobre cómo se descubrió la vulnerabilidad. Dado que el firmware de la empresa ha sido público durante muchos años, la empresa afirmó que cree que alguien podría haber utilizado IA para analizar versiones antiguas del código y detectar la ruta vulnerable de generación de números aleatorios.
"A todos los demás desarrolladores: creemos que esta es la cruda realidad de la nueva era de la IA. Auditar código con IA ahora permite encontrar errores ocultos a una velocidad que supera incluso a los expertos más experimentados de la industria", escribió Novak en su publicación de disculpas en X. "Si su firmware es de código abierto o alguna vez ha sido público, asuman que tanto atacantes como investigadores de seguridad ya lo están estudiando".
Los sistemas modernos de codificación basados en IA son capaces de procesar grandes repositorios de software e identificar conexiones sospechosas entre configuraciones, funciones y supuestos de seguridad. Un atacante podría pedirle a dicho sistema que busque específicamente generadores de números aleatorios débiles, funciones de respaldo o errores que afecten a claves criptográficas.

Posteriormente, investigadores independientes informaron haber utilizado modelos de IA para detectar o explicar el problema después de que se conociera el problema subyacente de aleatoriedad. Esto demostró cuán accesible se ha vuelto el análisis de código con IA, pero no probó que el atacante original haya utilizado IA.

Coinkite reconoció que su propia auditoría utilizando un modelo líder de IA no logró detectar la vulnerabilidad antes del robo. Este resultado muestra que los sistemas de IA no siempre detectan automáticamente todos los defectos graves. Su eficacia puede depender de las instrucciones recibidas, la cantidad de código proporcionado y de si la persona que realiza la auditoría comprende las señales de alerta.
Críticos argumentan que primero hubo un error humano
Algunos expertos en seguridad argumentan que el énfasis excesivo en la inteligencia artificial (IA) corre el riesgo de desviar la atención del error de ingeniería básico. Muchos consideran que el error de configuración era un tipo de error de software conocido, y que las revisiones tradicionales de código, los procedimientos de prueba o las auditorías centradas en la generación de semillas podrían haberlo detectado hace varios años.

Los puntos de vista opuestos no son necesariamente incompatibles. El error humano creó la vulnerabilidad y permitió que persistiera, mientras que la IA pudo haber reducido el costo de detectarla, comprenderla o explotarla. Los defensores necesitan encontrar todas las debilidades peligrosas, mientras que a un atacante le basta con encontrar solo una.
Este incidente también cuestiona los supuestos sobre la seguridad del código abierto. El código abierto permite a expertos independientes auditar el software, pero la mera disponibilidad no garantiza que alguien analice la parte correcta, detecte un defecto apenas perceptible y lo reporte antes de que un atacante actúe.
Para los usuarios de Coldcard, la prioridad inmediata es determinar cuándo y cómo se generó su semilla. Cualquiera cuya semilla esté afectada debe consultar las instrucciones a través de los canales oficiales de Coinkite, instalar el firmware corregido, generar una nueva semilla y transferir cuidadosamente los fondos, vigilando los intentos de phishing y los mensajes falsos de soporte.
A largo plazo, el enfoque estará en cuántos bitcoins fueron robados, si los investigadores podrán identificar al atacante y si la inteligencia artificial jugó un papel decisivo en el descubrimiento de la vulnerabilidad. Los fabricantes de carteras de hardware también se enfrentarán a la necesidad de reforzar las pruebas de entropía, auditar las configuraciones de compilación y revisar continuamente el código antiguo tanto con expertos humanos como con herramientas de IA que simulen ataques.
end-content






