Digi-ID: Protocolo abierto de autenticación con DigiByte Blockchain
diciembre 6, 2018
¿Cómo funciona una red descentralizada?
diciembre 18, 2018

¿Qué es UTXO?

UTXO significa salida de transacción (TX) no utilizada (Unspent Transaction Output).

Básicamente, es la cantidad de cambio de criptomoneda restante que recibe de cada transacción. Sin embargo, para explicar con más detalle, primero debemos desglosar cómo funciona una transacción criptográfica típica. Bitcoin es la blockchain UTXO más reconocida.

Para explicar mejor el tema, vamos a usar DigiByte para nuestro ejemplo. DigiByte es la blockchain UTXO más larga, segura y descentralizada hasta la fecha.

Un ejemplo de transacción UTXO

Cuando miras tu billetera de DigiByte, ves un balance. Para este ejemplo, pongámoslo en 10000 DigiBytes. Si bien solo observa un saldo, sus fondos están compuestos por varios UTXO. Puede tener cuatro UTXO con un valor de 2500 DigiBytes cada uno, dos UTXO con un valor de 5000, o un conjunto de UTXO con un valor de 3700, 1800, 4000 y 500 DigiBytes. Las cantidades específicas no importan, pero deben sumar a su saldo total, en este caso, 10000.

Continuando con el ejemplo, supongamos que está comprando un auto nuevo. Trabajas duro; te lo mereces. Reventando el estereotipo de Lambo, usted decide un Porche que cuesta 3500 DigiBytes. Bueno, su billetera solo contiene UTXOs de 1500, 1700, 2800 y 4000 DigiBytes cada uno. No tienes uno valorado precisamente en 3500 DigiBytes.

Es imposible dividir los UTXO, por lo que no hay forma de pagar exactamente los 3500 DigiBytes que debe.

En su lugar, se gasta los 4000 DigiBytes UTXO, por lo cual la red acuña dos nuevos UTXO: uno valorado en 3500 DigiBytes y otro que vale 500 DigiBytes. El concesionario de automóviles recibe los 3500 DigiBytes UTXO mientras que usted recibe los 500 DigiBytes UTXO como cambio.

También puede gastar los 1700 y 2800 UTXOs de DigiBytes y recibir 1000 DigiBytes como su cambio. Una transacción puede usar cualquier combinación de UTXOs; Sin embargo, no tienes control sobre cuáles.

Al igual que puede dividir un UTXO en instancias separadas, también puede combinarlos en transacciones más grandes, creando menos de ellos en la red.

¿Qué pasa con las tarifas de transacción?

Las tarifas de transacción también se incluyen en las transacciones y se restan del UTXO que recibe como cambio. La ecuación se ve algo como esto:

Nuevo UTXO = (Suma de UTXO en la transacción) – (Importe de la transacción) – (Tarifa de transacción)

Continuando con nuestro ejemplo más reciente con una tarifa de transacción de DigiBytes:

Nuevo UTXO = (1700 + 1800) – (3500) – (100) = 900 DigiBytes

Importancia de UTXO y problemas potenciales

La implementación de UTXOs simplifica enormemente los métodos de contabilidad de la cadena de bloques. En lugar de tener que rastrear y almacenar cada transacción, en orden, tenemos que rastrear las monedas no gastadas, también conocidas como UTXO.

Cada moneda en el ecosistema de DigiBytes solo puede gastarse una vez. Por lo tanto, cada DigiByte en una cartera en este momento que no se ha gastado ha sido por:

  • Un minero lo recibió como recompensa minera.
  • Fue acuñado durante una transacción. (Recuerden nuestro ejemplo de antes)

Los UTXO son críticos para prevenir los ataques de doble gasto y evitan que gastes monedas que no existen. Los nodos de la red registran y mantienen una base de datos que contiene cada UTXO (es decir, moneda no gastada) disponible para gastar. Si intenta enviar una transacción con una moneda que no está en esa base de datos, los nodos la rechazarán.

Problemas potenciales de almacenamiento

Los nodos almacenan la base de datos UTXO en la RAM, por lo que es importante mantener el conjunto de datos en un tamaño manejable. A medida que crece, el costo de ejecutar un nodo completo crece junto con él. Si la ejecución de un nodo completo se vuelve demasiado costosa, podríamos ver una mayor centralización en la red de DigiByte entre los pocos ricos que pueden permitirse ejecutarlos.

En el caso de Bitcoin, este riesgo de centralización es uno de los principales argumentos contra el aumento del tamaño del bloque de la red Bitcoin. El desarrollador de Bitcoin, Gavin Andresen, lo describe mejor en su artículo  UTXO uh-oh:

“Un bloque de un megabyte es el espacio para aproximadamente 100 millones de transacciones de 500 bytes por año. “Si cada uno de ellos aumentara el conjunto de UTXO en 500 bytes, aumentaría el conjunto de UTXO de 50 gigabytes por año”.

Un tamaño de bloque de un megabyte establece un límite superior en la medida en que la base de datos UTXO podría crecer cada año. Él continúa:

“Permitir más transacciones sin otros cambios probablemente aceleraría el crecimiento del conjunto UTXO, lo que lo haría más caro y más rápido para ejecutar un nodo de validación total”.

Solo para no molestar las palabras de Andresen:  su artículo es en realidad a favor de aumentar el tamaño del bloque. Argumenta que el impacto en el tamaño del conjunto UTXO no es tan drástico como otros creen. Y, teniendo en cuenta la complejidad de las soluciones de escalado de segundo nivel, debemos implementar bloques más grandes en el corto plazo antes de que esas soluciones se implementen a largo plazo.

Soluciones

Afortunadamente, hay algunas soluciones a los posibles problemas de almacenamiento. En primer lugar, los nodos no tienen que almacenar toda la base de datos UTXO en la RAM. Pueden optar por almacenar parte de ella en un disco de estado sólido (SSD) menos costoso o en un disco duro giratorio. Aunque estos tipos de almacenamiento conducen a tiempos de validación más lentos para cada nodo, no debería haber un problema siempre y cuando aún estén por debajo del tiempo promedio de bloque de diez minutos.

Además, los desarrolladores de DigiByte están mejorando continuamente los mecanismos de transacción para optimizar la base de datos UTXO.

Finalmente, Segregated Witness (Segwit) y otras soluciones de escalamiento similares frenan indirectamente el crecimiento de la base de datos UTXO. DigiByte fue la primera blockchain UTXO en implementar esta solución.

“Segwit mejora la situación aquí al hacer que los datos de firma, que no afectan el tamaño del conjunto UTXO, cuestan un 75% menos que los datos que sí afectan el tamaño del conjunto UTXO. Se espera que esto aliente a los usuarios a favorecer el uso de transacciones que minimicen el impacto en el conjunto UTXO para minimizar las tarifas, y alentar a los desarrolladores a diseñar contratos inteligentes y nuevas características de manera que también minimicen el impacto en el conjunto UTXO. ”

Adaptación del texto original

¿Qué es UTXO? | Explicación para principiantes sobre salidas de transacciones

por Steven Buchko

https://coincentral.com/utxo-beginners-explainer/

Calvo
Calvo
Mercadólogo y Publicista, entusiasta de Blockchain y DigiByte. Miembro del equipo DigiByte Hispano.

Comments are closed.