No, tu frase semilla no está rota: qué pasó de verdad en Coldcard
Han pasado cinco días y el miedo se ha extendido más rápido que el fallo.
Estos días he leído a gente preguntando si tiene que vaciar su monedero de Trezor. Si las doce palabras que apuntó en un papel hace tres años "ya no valen". Si Bitcoin está roto. Una persona quería mover sus ahorros a un banco.
Nada de eso es lo que ha pasado.
Lo que pasó es que una empresa cometió un error de programación en un modelo de aparato durante un periodo concreto de tiempo. Cuatro condiciones. Si no cumples las cuatro, esto no va contigo.
Este texto está escrito para quien no sabe qué significa la palabra entropía y no tiene por qué saberlo. No vas a necesitar saber nada de informática. Vamos despacio, desde el principio, y al final vas a poder decidir en dos minutos si tienes que hacer algo o si puedes seguir con tu vida.
Empecemos por lo básico, porque casi todo el pánico de estos días nace de no tener claro lo que viene ahora.
- El fallo es de un fabricante, Coinkite, en un modelo, el Coldcard. No es un fallo de Bitcoin ni de las demás carteras.
- Si no tienes un Coldcard, no te afecta. Tu frase semilla está bien.
- Si lo tienes y creaste la frase antes de marzo de 2021, estás a salvo.
- Si la creaste después y la eligió el aparato, tienes que migrar a una frase nueva. Actualizar no repara la vieja.
- Si añadiste 50 tiradas de dados propias, o usas una contraseña adicional fuerte, no corres riesgo inmediato.
Tu bitcoin es un número. Solo eso
Cuando alguien dice que guarda bitcoins en un aparato, la imagen mental es una caja fuerte. Dentro hay monedas, y la caja las protege.
No funciona así. Dentro no hay nada.
Tus bitcoins están en la red de Bitcoin, no en el aparato. Lo que el aparato guarda es un número secreto. Ese número es la llave. Quien lo conoce puede mover ese dinero desde cualquier parte del mundo, y quien no lo conoce no puede hacer nada en absoluto.
Un monedero físico no es una caja fuerte. Es un llavero muy bien cerrado.
Las doce o veinticuatro palabras que apuntaste en un papel el día que estrenaste el aparato son ese mismo número, escrito de forma que un humano pueda copiarlo sin equivocarse. Se llama frase semilla, y es lo único que importa de verdad.
Aquí llega la pregunta que lo explica todo. Si tu bitcoin está protegido por un número, ¿qué impide que alguien pruebe números hasta acertar?
El número tiene que ser imposible de adivinar
La respuesta es que hay tantos números posibles que la palabra "muchos" se queda corta.
Andreas Antonopoulos lo resumió con una imagen que se hizo famosa: hay tantas llaves privadas posibles como átomos de hidrógeno en el universo. No como planetas. No como estrellas. Como átomos.
Un ordenador probando números al azar en ese espacio no encuentra nada. Ni mil ordenadores. Ni todos los del planeta funcionando hasta que se apague el Sol. Esa es la primera línea de defensa de Bitcoin, y es la que sostiene todo lo demás.
Pero fíjate bien en la trampa que esconde esa frase, porque es exactamente donde falló Coldcard. La defensa no es que el número sea grande. La defensa es que el número sea impredecible.
Un ejemplo de casa. Imagina un candado de bicicleta con seis ruedecitas: un millón de combinaciones. Suena seguro. Ahora imagina que el fabricante, por un fallo de fábrica, saca todos sus candados con una combinación que empieza por 19 y sigue con un año entre 1900 y 1999. Ya no hay un millón de opciones. Hay cien.
El candado sigue teniendo seis ruedas. Sigue pareciendo igual de robusto por fuera. Y lo abre cualquiera con una tarde libre.
Eso, y solo eso, es lo que le pasó a Coldcard.
El cable que nadie volvió a enchufar
Coldcard es un monedero físico que fabrica la empresa canadiense Coinkite. Tenía muy buena reputación y llevaba años entre los más recomendados por gente que sabe. Eso hace el caso más doloroso, no menos.
El aparato lleva dentro una pieza dedicada a fabricar azar de verdad. Mide ruido eléctrico diminuto del propio chip, algo que nadie puede predecir ni repetir. Es la pieza correcta, era buena y estaba bien hecha.
El problema es que dejó de usarse.
Arkad lo explicó en directo con una comparación que ya no necesita más añadidos: "Es como tener un router y no haberle conectado el cable. Estaba ahí, pero desde marzo de 2021 le desconectaron el cable y se olvidaron de volverlo a conectar."
En marzo de 2021 Coinkite reorganizó parte del programa interno del aparato. En ese cambio, la orden de "dame azar" dejó de llegar a la pieza buena y empezó a llegar a un sustituto de emergencia que venía de serie con las herramientas que usaban. Ese sustituto no mide ruido eléctrico: calcula. Y arranca sus cálculos a partir del número de serie del chip y un par de relojes internos, datos que ni son secretos ni son azarosos.
El detalle que convierte esto en una lección de ingeniería es tonto hasta doler. El programa comprobaba si cierta opción estaba escrita en el código, cuando debía comprobar si estaba activada. Estaba escrita, pero puesta a cero. Apagada.
Es como comprobar que el interruptor existe en la pared en vez de mirar si la bombilla está encendida. La comprobación dio el visto bueno y nadie recibió ningún aviso.
Desde ese día el aparato seguía diciéndole al usuario que le había generado una frase semilla con azar de máxima calidad. No era verdad. No mentía a propósito: es que ya no tenía la herramienta para hacerlo.
De un universo a un barrio
Una frase semilla de doce palabras debería nacer con 128 bits de fuerza. Es la cifra que hace imposible el ataque por fuerza bruta, hoy y dentro de cien años.
Lo que salió de los Coldcard afectados fue esto, según el aviso oficial de Coinkite:
| Modelo | Fuerza real | Traducción |
|---|---|---|
| Mk2 y Mk3, versiones 4.0.1 a 4.1.9 | unos 40 bits | un ordenador de casa con buena tarjeta gráfica lo recorre en un día |
| Mk4, Mk5 y Q, antes del parche | unos 72 bits | fuera del alcance de un aficionado, pero ya no es un muro |
| Lo que debería haber sido | 128 bits | inalcanzable |
Lunaticoin lo tradujo así en su podcast de urgencia: el espacio de búsqueda pasó de ser el universo entero a ser el sistema solar en los modelos modernos, y poco más que un barrio en los antiguos.
Hay un matiz que ha ido apareciendo estos días y que conviene entender. Los modelos nuevos se salvaron a medias por casualidad: llevaban una inyección extra de azar desde su chip seguro, puesta ahí como redundancia por si acaso. Esa redundancia accidental es la única razón por la que están en 72 bits y no en 40.
Nadie diseñó esa protección para este problema. Simplemente estaba ahí.
Por qué el ladrón no tuvo que entrar en ninguna casa
Este es el punto que más cuesta entender y el que más tranquiliza cuando se entiende.
La cadena de bloques de Bitcoin es pública. Cualquiera puede consultar todas las direcciones que tienen saldo. Así que el atacante se sentó en su casa, generó todas las frases semilla posibles del rango pequeño, calculó qué dirección le correspondía a cada una y las comparó con la lista pública. Cuando una coincidía con una dirección con dinero dentro, ya tenía la llave.
No entró en ninguna casa. No interceptó ninguna comunicación. No engañó a nadie. Hizo una lista y la cruzó con otra lista.
Por eso el barrido fue tan rápido: la parte lenta, buscar las llaves, ya estaba hecha desde antes.
Lo que se llevó, y por qué esto no ha terminado
El rastreo de Galaxy Research sobre la cadena de bloques, que cualquiera puede comprobar:
- 30 de julio. Primera oleada: 1.082 bitcoin vaciados de 1.196 direcciones en cuarenta y un minutos.
- 1 de agosto. Segunda y tercera oleada: el total sube a 1.367 bitcoin de 4.585 direcciones, alrededor de 88 millones de dólares.
- Días siguientes. Se detectan más barridos. Las cifras que circulan bailan entre 70 y 114 millones según el momento y la fuente, porque el recuento cambia mientras se escribe.
Y hay un patrón que ha aparecido con los días y que importa mucho más que la cifra total: el atacante empezó por los saldos grandes y ahora está bajando a los pequeños.
Al principio iba a por monederos con decenas de bitcoin. Ahora se le ve barriendo saldos de una décima parte de un bitcoin. Eso significa dos cosas. Que sigue trabajando. Y que quien se sintió a salvo el primer día porque tenía poco, ya no lo está.
Si estás afectado y has estado esperando a ver qué pasa, esto es lo que pasa.
Coinkite publicó el domingo un comunicado que no maquilla nada: "Dinero que costó años ahorrar, desaparecido. Para algunos, el daño es permanente." La empresa destruyó el inventario que le quedaba fabricado con el programa defectuoso, paró los envíos y recomendó públicamente a sus propios clientes que, si necesitaban un aparato ya, se fueran a Bitkey, Ledger, Trezor, Jade o BitBox.
Un fabricante mandando a sus usuarios a la competencia es tan raro como revelador.
Hay un último detalle que da escalofríos por otro motivo. El fallo llevaba cinco años a la vista, en código abierto que cualquiera podía leer. Lo revisaron los mejores equipos de seguridad del sector. Nadie lo vio. Coinkite sospecha que quien lo encontró se ayudó de inteligencia artificial para peinar el código, y reconoce que ellos mismos habían pasado un modelo puntero por su propio código semanas antes, sin resultado.
Que algo sea público no significa que alguien lo haya mirado.
Ahora la parte importante: por qué tú probablemente estás bien
Si has llegado hasta aquí con un monedero en el cajón y el pulso acelerado, respira. Vamos con las buenas noticias, que son casi todas.
Esto no es un fallo de Bitcoin. El protocolo hizo exactamente lo que debía. La criptografía no se rompió. El sistema de las doce palabras no falló. Falló una empresa escribiendo un programa.
Esto no es un fallo de los monederos físicos. El concepto sigue siendo el correcto: una llave que nunca toca internet es mucho más segura que una llave dentro del móvil. Falló una función concreta, de un fabricante concreto, durante un periodo concreto.
No hay una vulnerabilidad compartida entre marcas. Esto es lo que más gente confunde estos días, así que conviene decirlo despacio. Cada fabricante escribe su propio programa, usa chips distintos y toma decisiones de diseño distintas. Coldcard monta dos chips seguros de dos proveedores diferentes. Ledger usa un chip de la familia ST33. El Trezor Safe 3 lleva un chip con certificación EAL6+. El Jade de Blockstream ni siquiera usa un chip seguro físico y resuelve el problema por otro camino.
No son versiones del mismo producto. Son productos distintos que resuelven el mismo problema por caminos distintos. Y ese es justo el motivo por el que el sector entero sobrevive a un golpe así: cuando un modelo falla, los demás no arrastran el mismo defecto porque nunca compartieron el código donde estaba el defecto.
Estos días se han revisado a fondo los repositorios de los demás monederos de Bitcoin buscando exactamente este tipo de error. La generación de azar está bien en todos.
BitBox publicó su propia explicación y contiene la frase más útil de toda esta historia: "Si combinas buena aleatoriedad con mala aleatoriedad, el resultado sigue siendo buena aleatoriedad." Su aparato mezcla cinco fuentes independientes de azar. Basta con que una siga siendo impredecible para que el resultado lo sea.
Casi nadie pierde bitcoins por un fallo de hardware. Merece la pena decirlo alto. Hasta la semana pasada no había constancia pública de un solo robo masivo causado por una vulnerabilidad de un monedero físico. Los fallos anteriores conocidos, los de Trezor y los de Ledger, los encontraron investigadores que avisaron antes de que nadie los aprovechara, y casi todos exigían tener el aparato en un laboratorio, con láseres y microscopios.
La inmensa mayoría de la gente que pierde bitcoins los pierde por tres cosas mucho más aburridas. Guardó la frase semilla en una foto del móvil o en el correo y se la robaron. Cayó en un engaño y la escribió en una web falsa. O simplemente la perdió.
Esas siguen siendo las amenazas reales de tu vida diaria. No esta.
Cómo saber en dos minutos si esto te toca
Si no tienes un Coldcard, no te afecta. Punto final. Ni Trezor, ni Ledger, ni BitBox, ni Jade, ni SeedSigner, ni Passport, ni los monederos del móvil. Tampoco los otros productos de la propia Coinkite: los Tapsigner, los Opendime y los Satscard usan programas distintos y están limpios.
Si tienes un Coldcard, hazte tres preguntas.
1. ¿Cuándo creaste la frase? Todo lo anterior a marzo de 2021 está a salvo, porque el cable seguía enchufado. Si no lo recuerdas, mira en tu programa de monedero cuál fue la primera transacción que recibiste. Esa fecha te orienta.
2. ¿Quién eligió las palabras, el aparato o tú? Si pulsaste el botón de "genérame la frase", te toca. Si las sacaste tú con cincuenta tiradas de dados o más, tu azar es tuyo y el fallo no te alcanza. Esto lo confirma el propio aviso oficial: el aparato mezclaba tus tiradas con las suyas, y cincuenta tiradas honestas ya aportan por sí solas los 128 bits completos.
Una condición que ha quedado clara estos días: tienen que ser dados físicos de verdad, no una aplicación del móvil. Y nadie debe haber visto ni fotografiado la secuencia.
3. ¿Tienes contraseña adicional? Esa palabra o frase extra que se escribe después de las doce palabras funciona como un segundo cerrojo, y es independiente del fallo. Coinkite lo dice con claridad: si es fuerte y única, la poca aleatoriedad de la semilla no basta para llegar a tu dinero, porque el atacante tendría además que adivinar la contraseña.
Aquí conviene desmentir algo que se ha dicho estos días: no, no están robando monederos con contraseñas fuertes. Lo que sí caen son las contraseñas triviales, un nombre, una fecha, cuatro números. Si la tuya es corta, común o repetida de otro sitio, considérate afectado y actúa hoy.
Y aunque la tuya sea fuerte, Coinkite recomienda migrar igualmente cuando puedas. Tienes tiempo, no urgencia. No es lo mismo.
Un punto que se le escapa a mucha gente y que conviene grabar a fuego: el riesgo viaja con la frase, no con el aparato. Si generaste tu frase en un Coldcard afectado y luego la metiste en otra marca, sigues expuesto. Y al revés: actualizar el programa del Coldcard protege las frases futuras, pero no repara la que ya tenías. Ese es probablemente el malentendido más peligroso que circula estos días.
Si estás afectado, hay que crear una frase nueva y mover el dinero. No hay atajo.
Si te toca migrar, hazlo con cabeza
Coinkite ya publicó el arreglo para todos sus modelos: versión 4.2.0 para Mk2 y Mk3, 5.6.0 para Mk4 y Mk5, y 1.5.0Q para la Q. Si usas la rama Edge, la tuya es la 6.6.0X o la 6.6.0QX. Cuidado con eso: un número más alto no significa que esté arreglada, son ramas distintas.
Tres avisos que están costando dinero estos días.
No corras más de lo necesario. El propio aviso oficial lo dice con todas las letras: precipitar una migración puede crear un riesgo más inmediato que el problema del que huyes. Verifica el respaldo nuevo. Manda una transacción de prueba pequeña. Comprueba que llega. Solo entonces mueve el resto. Y guarda el respaldo viejo hasta que todo esté confirmado.
Cuidado con los estafadores. Ha empezado una oleada de correos y mensajes que imitan al fabricante y piden tu frase semilla "para verificar si estás afectado". Ninguna empresa legítima te va a pedir nunca tus palabras. Nadie. Jamás. Si alguien te las pide, es un ladrón, sin excepciones.
Ten cuidado también si usas multifirma. Repartir el control entre varios aparatos es la mejor defensa de todas, pero solo funciona si las llaves vienen de fabricantes distintos. Si tus dos o tres llaves salieron todas de Coldcard, no te protege. Y hay un detalle desagradable: al mover los fondos revelas el esquema, y si el atacante ya conoce esas llaves puede intentar adelantarte con una transacción rival de comisión más alta.
Como decía uno de los divulgadores que ha seguido el caso estos días, va a haber gente que pierda dinero por el pánico más que por el robo.
Lo que deja esta historia
La lección de fondo no es una versión de programa. La resumió Arkad en una frase que va a envejecer bien: "Los monederos físicos han de ser firmantes, no generadores de números aleatorios."
Cada vez que pulsas "créame la frase" estás confiando ciegamente en que un aparato opaco hace bien lo único que no puedes verificar a simple vista. Casi siempre lo hace. Durante cinco años, en un modelo muy respetado, no lo hizo.
La alternativa existe, es antigua y no cuesta dinero. Una moneda, un folio impreso y un rato de paciencia. Ciento veintiocho tiradas te dan doce palabras cuya aleatoriedad has visto nacer con tus propios ojos, sin confiar en nadie. Es el método que Lunaticoin publicó en 2020 y que entonces sonaba a paranoia excesiva. Esta semana varios de sus alumnos le escribieron para decirle que gracias a eso habían dormido tranquilos.
Y la otra protección de fondo sigue siendo la multifirma con aparatos de marcas distintas: la única defensa que no depende de que ningún fabricante acierte.
Nadie ha roto Bitcoin. Un fabricante desenchufó un cable y tardó cinco años en darse cuenta. Duele, hay gente que ha perdido los ahorros de una vida, y eso no lo arregla ningún artículo.
Pero si tu llave la elegiste tú, o la eligió un aparato que no era ese, tu llave sigue siendo una entre tantas como átomos de hidrógeno hay en el universo.
Y eso nadie lo adivina.
Fuentes
Aviso de seguridad y análisis técnico de Coinkite: advisory, informe de entropía y comunicado del 2 de agosto. Análisis independiente de Block. Rastreo en cadena de Galaxy Research. BitBox sobre por qué su diseño no está afectado. Versiones corregidas en coldcard.com/downloads. En español, Lunaticoin (31 de julio) y el directo de Semilla Bitcoin con Arkad (1 de agosto).