Descripción General
El doble gasto es el problema fundamental que Bitcoin fue diseñado para resolver: cómo evitar que una moneda digital sea copiada y gastada más de una vez sin depender de un intermediario de confianza. En los sistemas digitales tradicionales, una autoridad central (como un banco) mantiene un libro mayor para prevenir el gasto duplicado. Bitcoin reemplaza esto con un mecanismo de consenso descentralizado basado en prueba de trabajo.
Cómo Podría Intentarse el Doble Gasto
Alice tiene 1 BTC en un UTXO
Intento de doble gasto:
┌──────────────────────────────────────────┐
│ │
│ TX-A: Alice → Bob (1 BTC por bienes) │──► Transmitir
│ │
│ TX-B: Alice → Alice (1 BTC de vuelta) │──► Transmitir
│ │
│ Ambas referencian el mismo UTXO │
│ Solo UNA puede confirmarse │
└──────────────────────────────────────────┘
Tipos de Ataques de Doble Gasto
Ataque de carrera: El atacante envía dos transacciones conflictivas en rápida sucesión, esperando que el comerciante vea una mientras los mineros confirman la otra. Esto afecta principalmente a los comerciantes que aceptan transacciones de cero confirmaciones.
Ataque Finney: Un minero pre-mina un bloque que contiene una transacción que envía monedas de vuelta a sí mismo, luego gasta esas mismas monedas en un comerciante. El minero inmediatamente libera el bloque pre-minado para anular la transacción del comerciante.
Ataque del 51%: Un atacante con hash power mayoritario mina una cadena secreta que excluye la transacción de la víctima, luego la libera para sobrescribir la cadena pública una vez que es más larga. Esta es la forma más poderosa de doble gasto pero requiere recursos enormes.
Cómo Bitcoin Previene el Doble Gasto
- Propagación de transacciones: Cuando los nodos reciben una transacción, rechazan cualquier transacción posterior que intente gastar el mismo UTXO
- Minería: Los mineros incluyen solo una de las transacciones en conflicto en su bloque
- Confirmaciones: Cada confirmación adicional hace exponencialmente más difícil revertir una transacción
- Reglas de consenso: Todos los nodos verifican de forma independiente que ningún UTXO se gaste dos veces
Mejores Prácticas para Comerciantes
- Para pagos pequeños, las transacciones de cero confirmaciones conllevan un riesgo mínimo
- Para cantidades moderadas, esperar 1-3 confirmaciones
- Para transacciones grandes, la recomendación tradicional es esperar 6 confirmaciones
- Los pagos de Lightning Network logran una finalidad casi instantánea para transacciones cotidianas
Conceptos Erróneos Comunes
- Bitcoin no ha sido doblemente gastado con éxito en la red principal en condiciones normales. Los dobles gastos reportados típicamente involucran transacciones de cero confirmaciones o exchanges que acreditaron depósitos prematuramente.
- RBF (Replace-By-Fee) a veces se confunde con el doble gasto, pero es una característica deliberada para aumentar las comisiones de transacciones no confirmadas, no un ataque.