En este momento estás viendo ¿Cómo evita una cadena de bloques el doble gasto en Bitcoins?

Una de las principales preocupaciones de cualquier desarrollador de criptomonedas es el problema del doble gasto. Esto se refiere a la frecuencia con la que un individuo gasta un saldo de esa criptomoneda más de una vez, creando efectivamente una diferencia entre el registro de gastos y la cantidad de esa criptomoneda disponible, así como la forma en que se distribuye.

La cuestión del doble gasto no monetario es un problema; Si paga por un sándwich con un billete de $ 10 y pasa ese billete a la sandwichera, no puede gastar los mismos $ 10 en otra parte. Sin embargo, una transacción que utiliza una moneda digital como bitcoin, ocurre completamente digitalmente. Esto significa que los detalles de la transacción se pueden copiar y retransmitir para que un solo propietario pueda gastar el mismo BTC una y otra vez. A continuación, examinaremos cómo los desarrolladores de criptomonedas se aseguran de que no ocurra el doble gasto.

Conclusiones clave

  • Un problema técnico que surge con la noción de moneda digital es la capacidad de una persona para replicar el dinero digital y gastarlo simultáneamente en dos o más lugares.
  • Este problema de «doble gasto» se evita en las criptomonedas basadas en blockchain como Bitcoin mediante el uso de un mecanismo de consenso llamado prueba de trabajo (PoW).
  • Este PoW está hecho por una red descentralizada de «mineros» que no solo asegura la lealtad de transacciones anteriores en el libro mayor de blockchain, sino que también detecta y previene el doble gasto.

Entender la Blockchain

La cadena de bloques que aborda la moneda digital como bitcoin no puede evitar el doble gasto por sí sola. En cambio, todas las diversas transacciones relacionadas con la criptomoneda relevante se colocan en la cadena de bloques, donde se verifican y protegen por separado a través de un proceso de verificación. Para bitcoin y muchas otras criptomonedas, las transacciones declaradas de esta manera son irreversibles; se publican y se mantienen de forma permanente.

Bitcoin fue la primera moneda digital importante en resolver el problema del doble gasto. Lo ha hecho mediante la implementación de este mecanismo de garantía y el mantenimiento de un sistema de contabilidad universal común. De esta manera, la cadena de bloques de bitcoin mantiene registros de transacciones con marca de tiempo que se remontan al establecimiento de la criptomoneda en 2009.

En términos de Bitcoin, un «bloque» es un archivo de datos registrados de forma permanente. Todas las transacciones recientes se escriben en bloques, como un libro mayor de acciones negociado en bolsa. La información de los bloques se agrega al libro mayor cada pocos minutos; cada nodo de la red mantiene una copia del libro mayor de blockchain. Los usuarios pueden navegar por la cadena de bloques de bitcoin y revisar las transacciones en términos puramente cuantitativos. Los datos sobre la identidad del comprador y el vendedor en cualquier transacción están protegidos con encriptación de alto nivel, que también protege el libro mayor de interferencias de fuentes externas. Cuando se actualiza el libro mayor de blockchain, también se crean todas las carteras de bitcoin.

Lidiar con el doble gasto

Imagina que tienes 1 BTC e intenta gastarlo dos veces en dos transacciones separadas. Puede intentar hacer esto enviando el mismo BTC a dos direcciones de billetera bitcoin separadas. Estas dos transacciones luego ingresarán al grupo de transacciones no declaradas. La primera transacción se aprobaría a través del mecanismo de garantía y luego se verificaría en el bloque siguiente. Sin embargo, la segunda transacción sería identificada como inválida por el proceso de declaración y no sería verificada. Si ambas transacciones se extraen del grupo para su confirmación al mismo tiempo, la transacción con la mayor cantidad de confirmaciones se incluirá en la cadena de bloques y la otra se descartará.

Si bien esto aborda efectivamente el problema del doble gasto, no está exento de problemas. Por ejemplo, ninguna parte del destinatario previsto de la segunda transacción (fallida) en la transacción en sí fallaría, pero aún así esa persona no recibiría el bitcoin esperado. Muchos traders esperan al menos 6 confirmaciones de una transacción (lo que significa que posteriormente se agregaron seis bloques de transacciones a la cadena de bloques después de la transacción en cuestión). En este punto, el trader puede asumir con seguridad que la transacción es válida.

Aún existen otras vulnerabilidades en este sistema que podrían conducir a ataques de doble gasto. Por ejemplo, si un atacante puede controlar de alguna manera al menos el 51% de la energía de la red, puede duplicar el gasto. Si un atacante pudiera tomar el control de esta potencia informática de alguna manera, podría revertir las transacciones y crear una cadena de bloques privada separada. Sin embargo, el rápido crecimiento de bitcoin está casi asegurado de que este tipo de ataque sea imposible.

Prueba de prueba de trabajo y ‘minería’

Ahora, pongámonos un poco más técnicos. La forma en que los usuarios perciben la interferencia, como un intento de doble gasto en la práctica, es a través de hashes, largas cadenas de números que crean una prueba de trabajo (PoW). Agregue un conjunto de datos separado a través de una función hash (bitcoin usa SHA-256) y solo generará un hash. Sin embargo, debido al «efecto cometa», un pequeño cambio en cualquiera de los datos originales resultará en un hash completamente irreconocible. Cualquiera que sea el tamaño del conjunto de datos original, el hash generado por una función en particular tendrá la misma longitud. El hash es una función unidireccional: no se puede usar para recuperar los datos originales, sino para verificar que los datos generados por el hash sean compatibles con los datos originales.

Sería trivial generar cualquier computadora nueva para un conjunto de transacciones bitcoin, por lo que para convertir el proceso en «trabajo», la red bitcoin establece un cierto nivel de «dificultad». Esta configuración se ajusta para que se «corte» un nuevo bloque, que se agrega a la cadena de bloques mediante la generación de un hash válido, aproximadamente cada 10 minutos. El establecimiento de la dificultad se logra estableciendo un «objetivo» para el hash: el objetivo es más bajo, el conjunto de hashes es más pequeño y uno es más difícil de generar. En la práctica, esto significa un hash que comienza con una cadena larga de ceros: el hash para el bloque # 429818, por ejemplo, es 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Ese bloque contiene 2,012 transacciones que contienen poco más de 1,000 bitcoins, así como el encabezado del bloque anterior. Si un usuario cambia el monto de una transacción por 0.0001 bitcoins, el hash resultante no se reconocerá y la red rechazará el fraude.

Dado que un conjunto de datos en particular solo puede generar un hash, ¿cómo se aseguran los mineros de generar un hash por debajo del objetivo? Cambian la entrada agregando un número entero, llamado nonce («número de una sola vez»). Cuando se encuentra un hash válido, se transmite a la red y el bloque se agrega a la cadena de bloques.

La minería es un proceso competitivo, pero hay más loterías que carreras. En promedio, uno generará una prueba aceptable de trabajo cada diez minutos, pero nadie puede adivinarlo. Los mineros se integran para aumentar sus posibilidades de minar bloques, generar tarifas de transacción y, por un tiempo limitado, recompensas de bitcoins recién creados.

La prueba de trabajo hace que sea extremadamente difícil cambiar cualquier aspecto de la cadena de bloques, ya que dicho cambio requeriría volver a extraer cada bloque posterior. También dificulta que un usuario o grupo de usuarios monopolice la potencia informática de la red, ya que la maquinaria y la potencia necesarias para realizar las funciones hash son caras.