Race attack

Intermedio
Actualizado Aug 14, 2026

¿Qué es un race attack?

Un race attack es un tipo de doble gasto en el que un atacante crea dos transacciones en conflicto que gastan los mismos fondos al mismo tiempo y luego las transmite de una manera diseñada para engañar a un destinatario. 

El objetivo es hacer que un comerciante crea que ha recibido el pago, mientras que una segunda transacción en conflicto envía las mismas monedas de vuelta al atacante o a otra dirección.

Los race attacks se dirigen específicamente a destinatarios que aceptan una transacción sin confirmar como definitiva, a menudo llamada un pago de cero confirmaciones. 

Como la red aún no ha registrado de forma permanente qué transacción es válida, existe una breve ventana en la que se puede influir en el resultado. Esto hace que el ataque sea más relevante en situaciones de pago rápido, donde un vendedor entrega bienes o servicios de inmediato.

¿Cómo funciona un race attack?

En un escenario típico, el atacante envía una transacción a un comerciante y, casi al mismo tiempo, transmite una transacción competidora que gasta las mismas monedas para sí mismo. Ambas transacciones entran en el memory pool (mempool) de distintos nodos en toda la red. 

Como los nodos pueden recibir las dos transacciones en distintos órdenes, temporalmente no se ponen de acuerdo sobre cuál es legítima.

En última instancia, solo una transacción puede incluirse en un bloque. Si los mineros confirman la transacción que devuelve las monedas al atacante, el pago al comerciante se vuelve inválido.

El atacante puede mejorar sus probabilidades conectándose directamente al nodo del comerciante para entregar la transacción de pago, mientras transmite la transacción en conflicto de forma más amplia al resto de la red. Si el comerciante acepta el pago antes de cualquier confirmación, podría quedarse sin nada.

Cómo reducir el riesgo de un race attack

La forma más efectiva de reducir la exposición a un race attack es esperar una o más confirmaciones de bloque antes de tratar un pago como definitivo. Una vez que una transacción se incluye en un bloque y se construyen bloques adicionales encima de ella, revertirla se vuelve cada vez más difícil y costoso.
Los comerciantes que manejan montos más grandes suelen esperar varias confirmaciones para reducir la probabilidad de reversión. Vale la pena señalar que un race attack es diferente de un ataque del 51%, que requiere controlar la mayoría del poder de minería de una red y puede reescribir transacciones ya confirmadas. Un race attack no requiere ese nivel de recursos, pero por lo general solo tiene éxito contra la aceptación de cero confirmaciones.

En la práctica, esperar confirmaciones, monitorear transacciones en conflicto y evitar la aceptación instantánea de pagos sin confirmar puede reducir sustancialmente la probabilidad de que un race attack tenga éxito.