¿Qué es y cómo funciona doble gasto?

Entre los ataques a la blockchain de Bitcoin encontramos el ataque de doble gasto. Este ataque se basa, en pocas palabras, en utilizar las mismas monedas para realizar varios pagos. Ya que es un ataque muy común y muchos otros se derivan de este los desarrolladores han creado mecanismos de defensa para evitarlos. Por eso hoy te contaremos todo acerca de qué es doble gasto.

El ataque del doble gasto surgió a partir de la implementación de la descentralización de las criptomonedas. La verdadera definición de doble gasto es el riesgo que corren las monedas digitales de ser duplicadas y utilizadas en más de una transacción.

Las criptomonedas, al ser descentralizadas corren el riesgo de ser clonadas e introducidas en la red de forma ilegal si no cuentan con las medidas de seguridad necesarias. Ocurre como en el caso del dinero fiat, puede ser falsificado y usado en más de una compra.

Origen del ataque

Aunque la criptomoneda Bitcoin es la que todos conocemos como la primera moneda digital, no es del todo cierto. Bitcoin fue la primera moneda lanzada con éxito, pero no la primera creada. A principios de los años 80´s el desarrollador David Chaum creó la primera moneda digital. Esta se llamó E-Cash y fue la que introdujo el concepto de dinero digital en el mundo. En esta criptomoneda su creador incluyó un sistema que evitaría los ataques de doble gasto.

El sistema se basaba en un mecanismo de criptografía llamado firmas ciegas o también conocido como firmas opacas. Este sistema, básicamente evitaba que el emisor supiera de dónde provenía el dinero. Este sistema contaba con un núcleo central que controlaba el flujo de monedas y evitaba el doble gasto.

No obstante, este servidor que debía salvar el proyecto fue su punto débil. Al ser un servidor centralizado puso en riesgo toda la red ante un ataque. Si un atacante lograba hacerse con el servidor exponía al resto de usuarios de la plataforma.

Con la propuesta de Satoshi Nakamoto se reemplazó este sistema centralizado por el sistema de consenso. Este nuevo sistema se basaba en numerosos nodos conectados a la misma red. Estos nodos se encargan de validar y confirmar las transacciones dentro de la red. Todo esto a cambio de una recompensa que los incentiva a continuar trabajando honestamente.

De esta forma si un nodo decide atacar la red mediante un ataque de doble gasto, el resto de nodos se lo impedirían, ya que necesita el poder de hash del resto. A medida que la red vaya creciendo más difícil será realizar este ataque y cada día crece más.

¿Cómo funciona un ataque de doble gasto?

Un ataque de doble gasto se lleva a cabo cuando un usuario tiene la intención de utilizar dos veces la misma criptomoneda. Esto es posible cuando un usuario realiza dos transacciones a la vez para comprar a dos usuarios distintos y los mineros comienzan a validar las transacciones.

El ataque se efectúa cuando uno de los bloques se transmite a más nodos de manera rápida mientras que el otro bloque no y solo uno es confirmado. A raíz de esto se genera un ataque de doble gasto. Cuando este ataque se efectúa un vendedor cobrará su venta y el otro perderá su dinero.

Para entenderlo mejor veremos un ejemplo de cómo sería un ataque de doble gasto en la vida real:

Imaginemos que nuestro vecino quiere comprar dos almacenes, pero no tiene la cantidad de dinero suficiente. Decide hablar con dos vendedores de almacenes distintos y a ambos les dice que comprará el almacén, pero el pago se hará mediante cheque bancario. Extiende ambos cheques a la vez y los vendedores se dirigen al banco a cobrarlo. Inevitablemente un vendedor llegará antes que el otro y se llevará el dinero que hay en el banco. El siguiente vendedor encontrará una cuenta sin fondos. En esto consiste un ataque de doble gasto o race attack.

¿Cómo evitar este ataque?

Las criptomonedas han generado formas de evitar el ataque de doble gasto y los derivados de este. Bitcoin, por ejemplo realiza una validación y registro de todas las transacciones realizadas. Otro método para evitarlos es realizar una verificación para comprobar la autenticidad de cada operación mediante la aplicación de un instrumento conocido como Prueba de Trabajo (PoW).

Gracias a la blockchain la seguridad aumenta, ya que esta mantiene un registro ordenado donde cada bloque añadido queda registrado y vinculado mediante técnicas criptográficas con el bloque anterior. De esta forma se garantiza la inmutabilidad de la red.

Mediante este mismo funcionamiento se confirman las transacciones realizadas. Mientras mayor cantidad de confirmaciones se hagan en una transacción más difícil es realizar el ataque de doble gasto.

A medida que pasa el tiempo la red crece cada vez más, se vuelve más fuerte y se hace más complicado el proceso de minería. Esto significa que cada vez se requiere un mayor poder computacional para llevar a cabo dichos ataques.