Los Modelos Contables en Blockchain: UTxO, eUTxO y de Cuentas

image

La blockchain es básicamente un libro contable distribuido, en el que se registran transacciones.

Bitcoin y Ethereum albergan las dos criptomonedas actualmente más valiosas y populares. Utilizan dos modelos de libro mayor bastante diferentes, conocidos como modelo UTxO y modelo de Cuentas, respectivamente.

El equipo de desarrolladores de Cardano ha evolucionado el modelo UTxO.

El Modelo UTxO

El modelo UTxO es el saldo no gastado de una transacción anterior, que puede gastarse en el futuro.

Las cadenas de UTxO no tienen cuentas, en su lugar, las monedas se almacenan como una lista de UTxOs, y las transacciones se crean consumiendo UTxOs existentes y produciendo otros nuevos en su lugar.

El saldo es la suma de UTxOs controlados por una billetera. Los UTxOs se asemejan al dinero en efectivo en el sentido de que utilizan “cambio”, y son indivisibles (los UTxOs se utilizan enteros), vale decir que si tienes que pagar $50 y tienes un billete de $100 (UTxO), debes entregarlo completo y recibir el cambio en un billete de $50 (nuevo UTxO).

El Modelo de Cuentas

Ethereum eligió el modelo de Cuentas explícitamente para facilitar contratos inteligentes más expresivos. Por otro lado, Bitcoin eligió UTxO también por buenas razones, incluido que su modelo semántico se mantiene simple en un entorno informático complejo concurrente y distribuido.

Ethereum se basa en el estado global de la cadena de bloques, (Ethereum Virtual Machine, EVM), con un modelo de registro contable de transacciones distinto, el modelo de Cuentas.

El modelo de Cuentas se asemeja al funcionamiento de un banco. Los usuarios tienen cuentas que guardan su saldo de monedas. Es posible gastar saldos parciales. El concepto de “cambio” no se aplica.

Si bien la implementación de Ethereum es más sencilla, las complicaciones inherentes al manejo del estado global (EVM) dan como resultado mayor posibilidad de transacciones fallidas, o recursos desperdiciados, entre otros problemas.

Modelo eUTxO de Cardano

Cardano desarrolló el modelo extended UTXO (eUTxO), una evolución del modelo UTxO de Bitcoin que admite una forma sustancialmente más expresiva de scripts de validación, que permiten la programación de sus transacciones.

Cardano basa sus transacciones en un entorno local, con el modelo eUTxO (extended Unspent Transaction Output) con la capacidad de interactuar con contratos inteligentes que se ejecutan en la cadena.

El modelo de Cardano elude los problemas del modelo de Cuentas, ya que permite el determinismo de recursos y las transacciones individuales indivisibles, al limitar el alcance de las transacciones de contratos inteligentes a su entorno local inmediato. Sin embargo estas ventajas no están exentas de costos, ya que la construcción de transacciones es una carga por adelantado, debiendo ser incluidas individualmente en cada desarrollo que se ejecute en Cardano. A diferencia de Ethereum es una construcción que debe enfrentar cada desarrollador.

Las transacciones consumen salidas no gastadas de transacciones anteriores y producen nuevas salidas que pueden usarse como entradas para transacciones futuras.

Understanding the Extended UTXO model

El modelo eUTxO amplía el modelo UTxO de dos formas:

  1. Generaliza el concepto de ‘dirección’ usando la analogía de la cerradura y la llave. En lugar de restringir los bloqueos a las claves públicas y las claves a las firmas, las direcciones en el modelo eUTxO pueden contener una lógica arbitraria en forma de scripts. Por ejemplo, cuando un nodo valida una transacción, el nodo determina si la transacción puede o no usar una determinada salida como entrada. La transacción buscará la secuencia de comandos proporcionada por la dirección de la salida y ejecutará la secuencia de comandos si la transacción puede usar la salida como entrada.
  2. La segunda diferencia entre UTxO y eUTxO es que las salidas pueden transportar datos (casi) arbitrarios además de una dirección y un valor. Esto hace que los scripts sean mucho más poderosos al permitirles transportar información de estado.

Ventajas del modelo eUTxO

Este modelo ofrece una mejor escalabilidad y privacidad, así como una lógica de transacción más simplificada, ya que cada UTxO solo se puede consumir una vez y en conjunto, lo que hace que la verificación de transacciones sea mucho más sencilla.

También ofrece mayor seguridad, previsibilidad de costes de ejecución de contratos inteligentes (sin sorpresas desagradables) y una paralelización más potente.

El éxito o el fracaso de la validación de transacciones depende solo de la transacción en sí y sus entradas, y no de nada más en la cadena de bloques. Como consecuencia, la validez de una transacción se puede verificar fuera de la cadena, antes de que la transacción se envíe a la cadena de bloques. Una transacción aún puede fallar si alguna otra transacción consume simultáneamente una entrada que la transacción espera, pero si todas las entradas aún están presentes, se garantiza que la transacción tendrá éxito.

Esto contrasta con un modelo basado en cuentas (como el que usa Ethereum), en el que una transacción puede fallar en la ejecución del script a mitad de camino. Esto nunca puede pasar en eUTxO.

Desventajas del modelo eUTxO

El modelo eUTxO es más complejo para programar para los desarrolladores, ya que ellos deben codificar la integridad del modelo de transacciones en el propio desarrollo, antes de la validación de las transacciones en la red.

Documento: The Extended UTxO Model

Liberlion.com

3 Likes

Gracias Ari !!! :ok_hand:

1 Like