Saltar al contenido

Los ataques de repetición, explicados: cómo una sola firma puede gastar tus monedas en dos cadenas

Un lector nos preguntó qué implican los ataques de repetición para el fork BLAKE2b. Nadie se lleva tus claves, pero una transacción firmada en una cadena puede copiarse a la otra, y la protección del fork es opcional y va en un solo sentido.

Corto plazo

Neutral / lateral

próximas 1 a 4 semanas

Bitcoin se consolida por debajo de 80.000 $ desde finales de agosto mientras cada retroceso aguanta sobre la línea de 75.600 $; la visión a corto plazo se mantiene en Neutral / lateral, y un cierre diario bajo esa línea abriría la zona de 70.000 $ como próximo objetivo de corto plazo.

Medio plazo

Fuertemente alcista

próximos 1 a 6 meses

El avance hace una pausa bajo la banda de 81.000 $ a 84.000 $ que puso techo a mayo y marca el nivel de ruptura de enero; la estructura de la recuperación está intacta y la visión a medio plazo se mantiene Fuertemente alcista.

Largo plazo

Fuertemente alcista

próximos 1 a 3 años

La perspectiva de largo plazo se mantiene Fuertemente alcista; el ruido de gobernanza en torno a los forks no ha tocado la tesis plurianual, y ocurra o no antes una caída a la zona de 70.000 $, no cambia.

  • Un ataque de repetición copia en la otra cadena una transacción que tú firmaste. Ninguna clave robada: tu propia firma se difunde dos veces.
  • La cadena BLAKE2b ofrece un formato de firma opcional que bloquea la repetición en un solo sentido. Las firmas corrientes se siguen copiando.

Nuestros lectores nos envían preguntas, y la semana pasada uno de ellos preguntó por los ataques de repetición y por lo que significarían para la cadena BLAKE2b. Es un tema técnico, pero afecta a cualquiera que conserve monedas durante un fork, así que merece la pena desmontarlo en términos sencillos. Empecemos por lo que deja tras de sí una separación. Supongamos que Bitcoin se divide realmente en dos cadenas. Antes de la división tienes un bitcoin; después, ambas cadenas arrastran el mismo historial hasta el punto del fork, de modo que la salida no gastada que era tuya ahora lo es en cada lado. Eso por sí solo no causa ningún problema. El problema empieza si las dos redes siguen aceptando las mismas transacciones. Decides vender tu moneda en la primera cadena, firmas una transacción y la difundes, y desde el momento en que es pública cualquiera puede tomar esa transacción exacta y volver a difundirla en la otra red. Si allí también es válida, allí también se confirma. Eso es un ataque de repetición, y lo importante es entender lo que no es: nadie ha tomado tu clave privada y nadie puede cambiar el destino del dinero. Lo que se ejecuta en la segunda cadena es la transacción que tú mismo firmaste, byte a byte. Creías estar moviendo monedas en una sola rama y las has movido en las dos.

Por eso un hard fork puede incorporar protección contra la repetición, y la idea es sencilla: lograr que una transacción firmada para una cadena sea técnicamente inválida en la otra. Bitcoin Cash lo hizo así en 2017 con un resumen de firma propio del fork, SIGHASH_FORKID, que cambia el mensaje al que se compromete una firma y que la nueva cadena pasó a exigir a todas las transacciones una vez activado el fork. Las transacciones construidas para una red fallaban por tanto en la otra, y la separación funcionaba en ambos sentidos. El segundo método corresponde al tenedor y no al protocolo, y consiste en separar tus monedas: primero creas una transacción que solo puede ser válida en una de las dos cadenas. A partir de ahí los historiales divergen, las salidas no gastadas dejan de ser las mismas en cada lado y las transacciones posteriores ya no pueden copiarse sin más de una red a la otra.

Lo que nos devuelve a la cadena BLAKE2b, activada en el bloque 961.640 el 30 de agosto. Sí cuenta con un mecanismo de ese tipo, un formato de firma opcional llamado SIGHASH_UNIFIED, especificado en la pull request 357 de Knots, cuyo mensaje firmado difiere de los tres resúmenes de firma en uso hoy, de manera que una firma que lo activa no se verificará en una cadena que no lo implemente. La documentación del propio proyecto es inusualmente franca sobre los límites: describe esa protección como accesoria al nuevo mensaje, en un solo sentido y firma por firma, y afirma con claridad que las firmas corrientes siguen siendo válidas y se siguen repitiendo. Esa frase lo resume todo: la protección solo actúa si el firmante la pide, solo para el gasto en el que se usó y solo en una dirección. Quien firme como firman los monederos hoy no obtiene nada de ella. Conviene recordar además que este fork cambió el algoritmo de prueba de trabajo y no los formatos de dirección, clave o firma, que es justamente por lo que una misma autorización puede seguir significando algo en las dos redes.

La cuestión, entonces, no es que un ataque de repetición permita a alguien piratear tus bitcoins, porque no lo permite. El riesgo real es que, alrededor de un fork, una sola autorización criptográfica pueda gastar sin querer tus monedas en dos redes distintas. La versión práctica es fácil de imaginar. Aparece un nuevo fork y después te encuentras con un bitcoin en Bitcoin y un saldo equivalente de la moneda del fork. Alguien ofrece entonces públicamente comprarte esas monedas del fork por unos pocos dólares y, como te parecen casi sin valor, por qué no. Si tus monedas nunca se separaron y firmas esa transferencia de la manera corriente, la misma transacción puede copiarse a Bitcoin, donde gasta exactamente la misma salida anterior al fork. Lo que sale de tu monedero no es entonces la moneda del fork. Son tus bitcoins. La documentación del propio fork da la defensa, y es la separación descrita arriba: antes de gastar en la otra cadena, envíate tus monedas a ti mismo en la cadena BLAKE2b usando el formato opcional y espera a que ese pago se confirme.

En el mercado, Bitcoin ha conservado el terreno ganado la semana pasada. Tras la subida del 3 de septiembre hasta un máximo intradía de 82.283 $, su primer contacto con la banda de 81.000 $ a 84.000 $, volvió a cerrar por encima de 80.000 $ el 6 de septiembre, en 80.339 $, y cotiza cerca de 79.200 $ mientras publicamos. La línea de 75.600 $ no se ha puesto a prueba desde entonces, y nuestras tres vistas de horizonte no cambian.

Esta publicación es análisis de mercado y no una recomendación de compra o venta.

Qué cambiaría la visión

  • Que los monederos activen ese formato opcional por defecto, lo que convertiría una precaución manual en una protección que se obtiene sin pedirla.
  • Un mercado real para la moneda del fork, que es lo que haría concreta y no solo teórica la exposición.
  • Un futuro fork con protección contra la repetición obligatoria y en ambos sentidos, que eliminaría la exposición en lugar de dejarla en manos del firmante.

Fuentes