El programador James O'Beirne declaró el 4 de agosto de 2026 que había puesto sobre aviso a Coldcard acerca de problemas de entropía mucho antes de que se materializara la vulnerabilidad que facilitó un robo de importantes proporciones. Según su relato, durante una revisión técnica realizada en mayo de 2025, detectó irregularidades en el proceso de generación de semillas de recuperación, pero sus observaciones fueron desestimadas por la compañía.
Un fallo que costó más de 100 millones de dólares
Las afirmaciones de O'Beirne surgen en medio de la mayor crisis de seguridad que ha enfrentado Coinkite, fabricante de los monederos físicos Coldcard. La falla, introducida en marzo de 2021, provocó que en ciertas versiones se empleara el generador pseudoaleatorio Yasmarang en lugar del generador físico del hardware, lo que reducía drásticamente la entropía de las semillas y permitía a los atacantes reconstruir claves privadas mediante fuerza bruta. El incidente ha causado pérdidas estimadas en más de 100 millones de dólares, con un saldo de al menos 2.000 BTC sustraídos.
La auditoría que fue ignorada
O'Beirne explicó que durante su revisión se propuso identificar el origen del generador de números aleatorios de Coldcard. En ese proceso, examinó libngu, una librería desarrollada por Coinkite que integra funciones criptográficas del firmware, incluyendo la gestión de la entropía para claves privadas. El programador recomendó sustituirla por una conexión directa con libsecp256k1, señalando que libngu apenas tenía seis estrellas en GitHub y estaba mantenida por un desarrollador anónimo, lo que le parecía sospechoso.
"Quería determinar de forma concluyente de dónde provenía el generador de números aleatorios de Coldcard y descubrí que se basaba en una biblioteca poco conocida llamada libngu, que tenía apenas seis estrellas en GitHub y era mantenida por un desarrollador pseudónimo. Sabía que enlazar libsecp256k1 desde Python era bastante sencillo, por lo que me confundió que se utilizara esa biblioteca. Informé al equipo de Coldcard que tenía dudas sobre si el generador real de números aleatorios estaba siendo utilizado y señalé que las constantes de Yasmarang estaban implementadas de forma deficiente. Les recomendé eliminar todo ese código y enlazar directamente con libsecp256k1", afirmó O'Beirne.
Sin embargo, la respuesta de Coldcard fue que si hubiera un problema, "ya lo sabríamos a estas alturas", y que los dispositivos comercializados usaban correctamente el generador de entropía del hardware. O'Beirne admitió que no insistió después de esa respuesta y calificó su pasividad como "un error".
Críticas previas en la comunidad
La advertencia de O'Beirne ha reavivado las críticas que ya existían en la comunidad. El usuario PanHodl compartió el 3 de agosto de 2026 una captura de un grupo oficial de Telegram de Coldcard de abril de 2021, donde un miembro cuestionaba el reemplazo del código criptográfico utilizado desde 2018 por la biblioteca libngu. "Alguien en el grupo de Telegram literalmente señaló el problema con la función aleatoria de Coldcard en 2021. Por supuesto, fue ignorado", resumió PanHodl. La imagen evidenciaba que ya había dudas sobre la sustitución de un código auditado por otro con menos historial de revisiones.
Medidas adoptadas y lecciones para el futuro
Tras confirmarse la vulnerabilidad, Coinkite lanzó actualizaciones de emergencia para todos los modelos afectados y aconsejó a los usuarios generar nuevas semillas en dispositivos actualizados y transferir sus fondos. La empresa reconoció el error de integración, pero sostuvo que desconocía la existencia del fallo hasta que comenzaron los ataques, y afirmó que ni las revisiones internas ni otras auditorías habían logrado detectarlo durante más de cinco años.
Este caso subraya un principio clave en la seguridad de Bitcoin: el código abierto, por sí solo, no es garantía de que los errores se detecten a tiempo. Para los fabricantes de monederos físicos, este incidente podría impulsar auditorías más exhaustivas sobre los mecanismos de generación de entropía y un mayor escrutinio de las bibliotecas utilizadas en funciones críticas.