Saltar al contenido
sedebitcoin, inicio

Nivel intermedio · 8 min de lectura

El doble gasto y las confirmaciones

Por qué no se puede gastar dos veces el mismo bitcoin, qué protege cada confirmación y cuántas esperar, con la fórmula del libro blanco de Satoshi.

Por @Block2140

El doble gasto es el problema que Bitcoin vino a resolver: impedir que alguien gaste dos veces la misma moneda digital. En esta lección verás cómo se intenta, por qué no funciona contra quien espera confirmaciones y por qué la regla de las seis confirmaciones no es un número mágico.

El intento más simple

Imagina que Ana tiene una moneda de 0,01 BTC. Firma una transacción que se la paga a Bruno y, casi a la vez, otra que gasta la misma moneda pagándosela a sí misma. Las dos transacciones son válidas por separado, pero no pueden entrar las dos en la cadena: gastan la misma UTXO.

Los nodos aceptan en su mempool la primera que les llega y rechazan la otra como conflictiva. Distintos nodos pueden haber visto primero una u otra, así que durante unos minutos no está claro cuál ganará. Lo decide el minero que encuentre el siguiente bloque: incluirá una de las dos y la otra quedará invalidada para siempre.

Recorre el ejemplo en el diorama.

Diorama: el intento de doble gasto

1. Una moneda, dos gastos

Ana firma dos transacciones que gastan la misma moneda: una paga a Bruno y otra se la devuelve a ella misma. Las dos son válidas por separado, pero solo una puede entrar en la cadena.

2. La mempool

Las dos llegan a la red. Cada nodo acepta la primera que ve y rechaza la otra como conflictiva. Mientras no hay bloque, el resultado está en el aire.

3. El bloque decide

El minero que encuentra el siguiente bloque incluye una de las dos. La otra queda invalidada para siempre. Por eso un pago sin confirmar no es firme.

4. La carrera

Para deshacer un pago ya confirmado, Ana tendría que minar en secreto una cadena alternativa y adelantar a toda la red honesta. Con cada confirmación, su probabilidad cae en picado.

Pruébalo: las cuentas del libro blanco

Confirmaciones0123456810
Éxito del atacante100 %20,5 %5,1 %1,3 %0,35 %0,091 %0,024 %0,0017 %0,00012 %

Con un 10 % del hashrate, hacen falta 5 confirmaciones para que la probabilidad de deshacer un pago baje del 0,1 %. Cálculo de la sección 11 del libro blanco de Bitcoin.

La lección para quien cobra

Mientras una transacción no tiene ninguna confirmación, puede ser sustituida. Es más, muchas transacciones se envían marcadas como reemplazables (RBF) precisamente para poder subir su comisión, y lo mismo sirve para desviarla. Por eso un comercio que entrega algo valioso a cambio de una transacción sin confirmar está asumiendo un riesgo. Para un café puede ser aceptable; para un coche, no.

Deshacer un pago ya confirmado

Una vez la transacción de Bruno entra en un bloque, Ana solo puede deshacerla reescribiendo la cadena: tendría que minar en secreto una versión alternativa del bloque, con su transacción alternativa, y además adelantar a toda la red honesta, porque los nodos siguen la cadena válida con más trabajo acumulado.

Si Ana controla una parte pequeña del hashrate, la carrera está perdida: la red honesta encuentra bloques más deprisa. Cada confirmación adicional que Bruno espera es un bloque más que Ana tendría que remontar.

Sigue leyendo con tu cuenta gratuita

El resto de la lección, el test y tu progreso, gratis y sin contraseñas.

Crear cuenta gratis