Ataques de doble gasto: Por qué no puedes simplemente mirar el campo "Enviado" para las transacciones de la cadena de bloques

Intermedio
Double-Spend Attacks: Why You Can't Just Look at "Sent" for Blockchain Transactions
Muchos usuarios asumen que una vez que una transacción de cadena de bloques se "envía", los fondos han llegado con seguridad. Pero la realidad no es tan sencilla. Para los exchanges, comerciantes y usuarios comunes por igual, lo que realmente importa no es solo si una transacción ha sido transmitida, sino si ha sido confirmada por un bloque, si el número de confirmaciones es suficiente y si la cadena subyacente presenta el riesgo de ser reorganizada. Comprender estos conceptos es la base para prevenir ataques de "gasto doble".
 
Este artículo se centra principalmente en redes de prueba de trabajo, donde la profundidad de confirmación y la prueba de trabajo acumulada son fundamentales para el riesgo de reorganización. Otros sistemas de consenso utilizan mecanismos de finalidad diferentes.

¿Qué es un ataque de doble gasto?

Un "ataque de doble gasto" es esencialmente un intento de un atacante de gastar el mismo activo digital dos veces.
 
Para usar el ejemplo más intuitivo: un atacante posee solo 1 BTC pero inicia simultáneamente dos transacciones conflictivas. Una paga a un comerciante o plataforma por un depósito, compra o servicio; la otra envía los mismos 1 BTC de vuelta a una dirección del monedero controlada por el atacante. Dado que ambas transacciones utilizan los mismos fondos, solo una puede ser válida finalmente en la cadena. Si el comerciante o plataforma confía demasiado pronto en una transacción que "aún no está confirmada de forma estable", el atacante puede explotar posteriormente una reorganización de la cadena o una sustitución por una cadena más larga, haciendo que el registro de depósito previamente visto se vuelva inválido — mientras que los activos ya han sido liberados al atacante.
 
Por lo tanto, un ataque de doble gasto no se trata de "duplicar activos", sino que explota la confirmación insuficiente de transacciones, la producción competidora de bloques o la reorganización de la cadena para hacer que el mismo activo se utilice dos veces dentro de un proceso empresarial.

¿Por qué ocurren los ataques de doble gasto?

Aunque la cadena de bloques enfatiza que las transacciones son irreversibles, esta "irreversibilidad" generalmente no se aplica inmediatamente cuando se envía una transacción. Se acerca gradualmente a la irreversibilidad después de ser empaquetada, propagada y confirmada.
 
Una transacción en la cadena generalmente pasa por varios estados:
 
Estado Descripción
Creado El monedero crea la transacción
Transmisión La transacción se transmite a la red de cadena de bloques
Pendiente Esperando que los mineros o validadores empaqueten y confirmen
Confirmado La transacción ha ingresado a un bloque y comienza a acumular confirmaciones
Fallido / Suprimido / Reemplazado La transacción falló, o fue reemplazada o descartada
El riesgo suele aparecer durante la etapa Pendiente y durante la etapa Confirmada pero con demasiadas pocas confirmaciones. En estos puntos, la transacción "parece existir" pero aún no es lo suficientemente estable. Si la red sufre una bifurcación, o si un atacante controla una cantidad significativa de potencia de hash y construye una cadena más larga, el bloque que contiene la transacción original puede ser descartado, y el registro de la transacción puede "desaparecer".
 
Esto es lo que se conoce como una "reorganización de cadena". Una reorganización de cadena no implica simplemente eliminar un registro; significa que toda la red reconoce finalmente una cadena diferente, lo que hace que algunos bloques de la cadena original se vuelvan inválidos. Si una transacción de depósito existe únicamente en la rama descartada, el registro de depósito que la plataforma vio anteriormente puede perder su validez.

¿Por qué son tan importantes las confirmaciones?

El número de confirmaciones determina cuán difícil es revertir una transacción.
 
Cuando una transacción ingresa por primera vez a un bloque, normalmente tiene solo 1 confirmación. Con cada nuevo bloque generado, el número de confirmaciones aumenta: 2 confirmaciones, 3 confirmaciones, 6 confirmaciones, incluso 12 confirmaciones. Cuanto mayor sea el número de confirmaciones, más bloques deberían revertirse para anular la transacción, y mayor será el costo del ataque.
 
Por eso, los exchanges generalmente no acreditan a los usuarios inmediatamente entre 0 y 1 confirmaciones. El riesgo es mayor en esta etapa, especialmente para cadenas de bloques con menor poder de hash o historial de ataques del 51% o reorganizaciones de cadena, donde se necesitan umbrales de confirmación más altos.

📌 Caso destacado: Ataque de poder de hash del 51% y incidente de doble gasto de ETC en 2019

Los ataques de doble gasto no son una amenaza teórica. En enero de 2019, Ethereum Classic (ETC) sufrió un importante ataque del 51% que involucró transacciones de doble gasto.
 
Proceso típico de ataque:
 
Paso Acción
1 El atacante primero obtuvo dominio significativo de potencia de hash en la red ETC, lo que les permitió minar privadamente una cadena más larga
2 El atacante depositó ETC en un exchange
3 Después de que el exchange verificó que la transacción de depósito alcanzó el recuento de confirmaciones requerido, acreditó la cuenta del atacante.
4 El atacante vendió rápidamente el ETC en el exchange, lo convirtió en USDT, BTC u otros activos y retiró los fondos.
5 Mientras tanto, el atacante continuó minando en privado una cadena más larga que no incluía la transacción de depósito
6 Cuando esta cadena más larga se publicó en la red, la red aceptó la nueva cadena principal, y la cadena de depósito que el exchange había visto fue revertida.
Resultado de este patrón de ataque: El depósito que había sido "confirmado" en los registros del exchange desapareció, pero el atacante ya había retirado los activos convertidos, completando el doble gasto.
 
Este caso ilustra un hecho clave: incluso si una transacción ya está en la cadena de bloques, si la seguridad subyacente de la red es insuficiente o si el atacante tiene la capacidad de reorganizar bloques, la transacción aún puede revertirse. La "finalidad" de una transacción en la cadena de bloques no es absolutamente instantánea; se fortalece gradualmente a medida que aumentan las confirmaciones.

🛡️ Cómo evitar ataques de doble gasto durante las transacciones

Prevenir ataques de doble gasto no se trata de confiar en "la captura de pantalla de la otra parte" o en "que el hash de la transacción exista", sino de establecer mecanismos adecuados de confirmación y control de riesgos.

Primero, no trates "Broadcast" como "Recibido"

Un usuario que ve "enviado" en su monedero, o la otra parte que proporciona un hash de transacción, no significa que los fondos estén seguros. La transmisión solo indica que la transacción ha entrado en la etapa de propagación de la red; no significa que haya sido confirmada por un bloque. No se pueden realizar acciones como acreditar depósitos, liberar monedas, enviar productos o proporcionar servicios basándose en el estado Pendiente.

En segundo lugar, debes verificar el estado de confirmación en la cadena

Para evaluar si una transacción es confiable, verifica al menos:
  • Si la transacción ha sido incluida en un bloque
  • ¿Cuál es el recuento de confirmaciones actual?
  • Si la transacción presenta riesgos de reemplazo anormal, transacciones conflictivas o eliminación
Para escenarios de alto riesgo, no solo mire "si la transacción existe", sino "si la confirmación es estable".

Tercero, establezca recuentos de confirmación razonables según el nivel de riesgo de la cadena

Diferentes cadenas de bloques tienen distintos niveles de seguridad. Las cadenas principales con alta potencia de hash difieren considerablemente de las cadenas de capitalización pequeña y baja potencia de hash en el costo de sufrir un ataque del 51% o una reorganización de la cadena. Para cadenas de mayor riesgo, las plataformas deben elevar los umbrales de confirmación de depósitos; para transacciones grandes, también se deben establecer requisitos de confirmación más altos: no se trata de un enfoque único para todos.

Cuarto, aplica el monitoreo de control de riesgos al comportamiento de depósito anormal

Los siguientes comportamientos deben activar una revisión adicional:
 
Comportamiento anormal Explicación de riesgo
Múltiples depósitos grandes seguidos de ventas rápidas y retiros dentro de un corto período Ruta típica de un ataque de doble gasto
Depósitos frecuentes utilizando monedas con seguridad históricamente débil Las cadenas con bajo poder de hash tienen bajos costos de ataque
Solicitando la retirada inmediata de activos justo después de alcanzar el número mínimo de confirmaciones Puede explotar vulnerabilidades de confirmación insuficiente
Transacciones con retrasos anormales, señales de conflicto o estado inestable en los Exploradores de cadena de bloques Reorganización de cadena posible en curso
Estos comportamientos a menudo coinciden estrechamente con los patrones operativos de los ataques de doble gasto.

Quinto, no confíes en capturas de pantalla de pagos ni en estados de una sola página

Las capturas de pantalla son las más fáciles de falsificar y las más fáciles de engañar. Ya sea para pagos a comerciantes, operaciones over-the-counter o revisiones de depósitos, siempre confíe en los Exploradores de cadena de bloques y la verificación del sistema de control de riesgos, no en registros de chat, capturas de pantalla de pagos ni declaraciones verbales.

Sexto, entiende que la "irreversibilidad" no es "instantánea"

Una vez que una transacción de cadena de bloques alcanza suficientes confirmaciones, generalmente es muy difícil revertirla. Pero cuando las confirmaciones son insuficientes, las transacciones aún pueden cambiar debido a bifurcaciones, congestión, reemplazo o reorganización de la cadena. La creencia errónea más común en la educación sobre seguridad es interpretar "las transacciones de cadena de bloques son irreversibles" como "una vez enviadas, son absolutamente seguras". Esta es precisamente la brecha cognitiva que permite que los ataques de doble gasto tengan éxito.

💎 Consejos de seguridad para usuarios comunes y plataformas

Para los usuarios comunes, lo más importante es no entregar bienes, activos digitales o servicios antes de la confirmación. Especialmente en operaciones sobre el counter, transferencias punto a punto y pagos con extraños: confiar únicamente en capturas de pantalla sin verificar las confirmaciones conlleva un riesgo extremadamente alto.
 
Para comerciantes y plataformas, la protección verdaderamente efectiva no es la "experiencia manual", sino mecanismos estandarizados:
  • Umbral de confirmación claro
  • Niveles de riesgo diferenciados por cadena
  • Identificación de rutas de retiro anormales
  • Tiempo extendido de revisión para depósitos de activos de alto riesgo
  • Vigilancia reforzada para monedas con historial de reorganizaciones o ataques del 51%

Conclusión

La esencia de un ataque de doble gasto no es "un hacker duplicando una moneda", sino un atacante explotando transacciones confirmadas inestablemente para crear la ilusión de "ya pagado" dentro de un proceso empresarial. El incidente de ETC en 2019 ya demostró que, siempre que la cadena subyacente tenga la posibilidad de reorganización, las transacciones insuficientemente confirmadas no deben considerarse finalmente recibidas.
 
El principio básico de las transacciones seguras se reduce a una frase:
 
Mire las confirmaciones, no las capturas de pantalla; mire la finalidad, no el estado superficial.
Cuanto mayor sea el número de confirmaciones, menor será la ventana para un ataque de gasto doble exitoso.

Disclaimer: The information on this page may come from third parties and does not necessarily reflect KuCoin’s views. It is provided for general reference only and should not be interpreted as financial or investment advice.

Virtual asset investments may involve risk. Please carefully assess the product risks and your own risk tolerance. For more information, please refer to our Terms of Use and Risk Disclosure.