Saltar al contenido

Doble gasto en criptomonedas: ¿Cómo funciona y por qué es un problema?

23 de abril de 2023

El doble gasto en criptomonedas es el principal problema que resuelve el algoritmo de Prueba de trabajo. Gracias a que se logró eliminar el doble gasto, apareció Bitcoin.

Tienes BTC y hay 10.000 mineros en la red. Envías BTC y los mineros comienzan a actualizar gradualmente el estado de la red, arreglando el hecho de la transacción. Al final, todos están de acuerdo con lo que enviaste y lo escriben en un bloque. No se los puede engañar.

La red Bitcoin está protegida del doble gasto

Blockchain es una cadena continua. Es imposible deslizar datos falsos en él o sobrescribir eventos pasados.

Al aplicar hashing, la red Bitcoin asegura que del anterior se deriva un nuevo bloque (similar al ADN de un familiar y descendiente).

Si algún minero quiere aprobar su versión del bloque, a pesar de que todos los demás acordaron una versión diferente, puede hacerlo, pero se enfrentará a 2 decepciones:

  • El minero perderá BTC de la recompensa del bloque, se desperdiciará la electricidad (se quedará la recompensa que recibió, pero en una sucursal abandonada con la que nadie está de acuerdo; y en la sucursal real, se aprobará otro bloque y la recompensa ir a un minero honesto).
  • Todavía no podrá perpetuar una sola transacción y desincronizar la cadena de bloques de esta manera, porque solo hay 1 rama original de la red Bitcoin en la que todos convergen.
criptomonedas
Criptomonedas

Por qué un ataque todavía es posible

Es posible atacar la cadena de bloques solo en un corto período de tiempo (menos de 1 hora a menudo). Y esto no afectará a quienes no realizaron transacciones durante la pérdida del consenso. Así lo ha comprobado en la práctica el llamado ataque del 51%.

Es imposible capturar la cadena de bloques de Bitcoin para siempre y hacer lo que quieras allí. Para hacer esto, necesita miles de millones de dólares en potencia informática. Gracias a la apertura de la red, se detectará una falsificación y la tarifa bajará tanto que la compra de equipos no cubrirá el beneficio potencial de la piratería.

En el ejemplo teórico de esta imagen, vemos cómo un grupo de mineros malintencionados pudo reclamar bloques falsos por 5 bloques (lo que, en el caso de la red Bitcoin, requiere una suerte increíble y es simplemente imposible, o increíblemente caro).

Durante este período, podría, por ejemplo, enviar sus Bitcoins a un intercambio que requiere de 1 a 5 confirmaciones de red, venderlos y obtener otras monedas o dinero fiduciario.

Luego, cuando se cierre la ventana de ataque, la serie de bloques se marcará como abandonada y la mayoría de los mineros continuarán extrayendo la rama honesta original.

Para el pirata informático, resultará que tenía 1 BTC, los trajo al intercambio, los vendió y luego, cuando la red restauró el consenso, todavía tenía 1 BTC en la red original, pero logró vender 1 BTC falso. De ahí el nombre del ataque: doble gasto.

Ejemplos históricos de doble gasto

bitcoin

Si bien muchas fuentes afirman que no ha habido ataques exitosos de doble gasto en la red de Bitcoin, sí lo han hecho.

El 12 de marzo de 2013, el macbook-air del usuario del foro de Bitcointalk envió alrededor de 211 BTC como depósito a la dirección del sistema de pago OKPAY. Luego descubrió que en la versión antigua del cliente Bitcoin (antes de la 0.8), esta transacción no estaba confirmada, y la repitió con un comando a través de la API. Como resultado, también se incluyó en el bloque 225446.

Con el tiempo, la red, por supuesto, se detuvo en la sucursal real: una de las transacciones fue rechazada y terminó en un bloque abandonado. Pero esta vez fue suficiente para que el sistema OKPAY acreditara por error ambos depósitos al usuario de macbook-air.

El problema era que algunos de los clientes se actualizaban a 0.8, mientras que otros se quedaban en el desactualizado. Como resultado, los mineros y el propio usuario, aún sin ser malhechores, implementaron un ataque de doble gasto en el servicio. Los desarrolladores tomaron esto en cuenta y advirtieron a los servicios que las transacciones no deberían aceptarse inmediatamente después de 1 confirmación, y más aún cuando no hubo ninguna confirmación.

Etéreo clásico

Fue atacado tres veces en 2020 mediante el alquiler de potencia informática del servicio NiceHash.

En julio-agosto, la tasa de hash de ETC se redujo significativamente y el atacante se aprovechó de esto. Al alquilar una GPU con una tasa de hash de más del 51 % de toda la red Ethereum Classic, fue posible crear un gasto doble por valor de más de 1 millón de ETC, o $9 millones en ese momento.

El costo de alquilar un hashrate era considerable y ascendía a cientos de miles de dólares. El beneficio final no se conoce exactamente, porque muchos intercambios incluyeron las direcciones en la lista negra y el pirata informático tuvo que vender rápidamente el ETC clonado.

ZEN

El 3 de junio de 2018, con una potencia de cómputo que superaba el nivel promedio en la red, el atacante creó varios bloques y obtuvo 23 mil ZEN por doble gasto, engañando al sistema de depósito del exchange (aproximadamente $600 mil en ese momento).

Cómo protegerse de un ataque de doble gasto

Incluso si no quiso hacer nada malo, la red cancelará el bloqueo de doble gasto y su transacción puede estar en él. Por lo tanto, la necesidad de esperar tantas confirmaciones como sea posible se aplica a todos los participantes de la red.

Si está enviando o recibiendo una gran cantidad, asegúrese de esperar de 3 a 7 confirmaciones en la red Bitcoin o 250 en la red Ethereum (alrededor de 1 hora desde la primera confirmación).

Recuerde que el doble gasto es un evento a corto plazo y es imposible dañar seriamente la cadena de bloques u obtener acceso a los fondos de otras personas con ella. Incluso con el poder del 100 % de todos los dispositivos de minería del mundo, sus claves privadas no se pueden desentrañar de ninguna manera. El hacker hace un «doble gasto» usando sus propias monedas.

Ajustes