馃嚜馃嚫 Plutus: Comprender el modelo Extended UTXO

Plutus: Comprender el modelo Extended UTXO

Cardano (al igual que Bitcoin) es una blockchain basada en Unspent Transaction Output (UTXO), que utiliza un modelo de contabilidad diferente para su libro mayor de otras blockchains basadas en cuentas como Ethereum. Cardano implementa un innovador modelo de Extended Unspent Transaction Output (EUTXO) model, que es introducido por la actualizaci贸n de Alonzo para soportar multi-activos y contratos inteligentes.

Visi贸n general del modelo UTXO

En el modelo UTXO, una transacci贸n tiene entradas y salidas , donde las entradas son salidas no gastadas de transacciones anteriores. Los activos se almacenan en el libro mayor en salidas no gastadas, en lugar de en cuentas.

Tan pronto como una salida se utiliza como entrada en una transacci贸n, se gasta y no puede volver a utilizarse. La salida se especifica mediante una direcci贸n (una clave p煤blica o un hash de clave p煤blica) y un valor (que consiste en una cantidad de ada y cualquier cantidad adicional de tokens nativos). La direcci贸n de una salida determina qu茅 transacciones pueden 鈥渄esbloquear鈥 la salida y utilizarla como entrada. Una transacci贸n debe estar firmada por el propietario de la clave privada correspondiente a la direcci贸n. Piense en una direcci贸n como un 鈥渃andado鈥 que s贸lo puede ser 鈥渄esbloqueado鈥 por la 鈥渓lave鈥 adecuada: la firma correcta.

Cada una de estas salidas especifica las cantidades de activos almacenados en ella, junto con su direcci贸n. Las salidas no gastadas son inmutables, por lo que una transacci贸n puede consumir toda la salida, pero no puede alterarla.

En resumen, las transacciones consumen las salidas no gastadas de las transacciones anteriores, y producen nuevas salidas que pueden ser utilizadas como entradas para las transacciones futuras.

plutus_ee1

Los monederos de los usuarios gestionan estos UTXOs e inician las transacciones que implican los UTXOs propiedad del usuario. Cada nodo de la cadena de bloques mantiene un registro del subconjunto de todos los UTXO en todo momento. Esto se llama el conjunto de UTXO. En t茅rminos t茅cnicos, se trata del estado de la cadena, que se almacena en el directorio de datos de cada nodo. Cuando se a帽ade un nuevo bloque a la cadena, el estado de la cadena se actualiza en consecuencia. Este nuevo bloque contiene la lista de las 煤ltimas transacciones (incluyendo, por supuesto, un registro de los UTXOs gastados, y los nuevos creados desde que el chainstate fue actualizado por 煤ltima vez). Cada nodo mantiene una copia exacta del estado de la cadena.

El modelo de extended UTXO de Cardano

El modelo EUTXO ampl铆a el modelo UTXO de dos maneras:

  1. Generaliza el concepto de 鈥渄irecci贸n鈥 utilizando la analog铆a del candado 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 utilizar una determinada salida como entrada. La transacci贸n buscar谩 el script proporcionado por la direcci贸n de la salida y ejecutar谩 el script si la transacci贸n puede utilizar la salida como entrada.
  2. La segunda diferencia entre UTXO y EUTXO es que las salidas pueden llevar datos (casi) arbitrarios adem谩s de una direcci贸n y un valor. Esto hace que los scripts sean mucho m谩s potentes al permitirles llevar informaci贸n de estado.

Adem谩s, EUTXO ampl铆a el modelo UTXO permitiendo que las direcciones de salida contengan una l贸gica compleja para decidir qu茅 transacciones pueden desbloquearlas, y a帽adiendo datos personalizados a todas las salidas. Al validar una direcci贸n, el script acceder谩 a los datos que lleva la salida, a la transacci贸n que se est谩 validando y a unos datos adicionales llamados redimidores, que la transacci贸n proporciona para cada entrada. Al consultar toda esta informaci贸n, el script tiene suficiente contexto para dar una respuesta afirmativa o negativa en lo que pueden ser situaciones y casos de uso muy complejos.

EUTXO permite una l贸gica arbitraria en forma de scripts. Esta l贸gica arbitraria inspecciona la transacci贸n y los datos para decidir si la transacci贸n puede utilizar una entrada o no.

El modelo UTXO, con su estructura de diagrama, es fundamentalmente diferente del modelo basado en cuentas que utilizan algunas cadenas de bloques con contratos inteligentes. Como resultado, los patrones de dise帽o que funcionan para DApps en blockchains basados en cuentas no se traducen directamente a Cardano. Se necesitan nuevos patrones de dise帽o porque la representaci贸n subyacente de los datos es diferente.

EUTXO hereda el dise帽o por ramas del modelo UTXO (Bitcoin), donde una rama es por definici贸n una secuencia de transacciones que requiere una secuencia de validaciones. Para dividir la l贸gica en diferentes ramas y aplicar m谩s paralelismo, es esencial construir DApps y otras soluciones utilizando m煤ltiples UTXOs. Esto proporciona beneficios en t茅rminos de escalado, al igual que el desarrollo de los servicios de Bitcoin requiere dividir una cartera en subcarteras.

Ventajas de EUTXO

El modelo EUTXO de Cardano proporciona un entorno seguro y vers谩til para procesar m煤ltiples operaciones sin fallos del sistema. Este modelo ofrece una mejor escalabilidad y privacidad, as铆 como una l贸gica de transacciones m谩s simplificada, ya que cada UTXO solo puede consumirse una vez y en su totalidad, lo que hace que la verificaci贸n de las transacciones sea mucho m谩s sencilla.

El modelo EUTXO ofrece ventajas 煤nicas sobre otros modelos de contabilidad. El 茅xito o el fracaso de la validaci贸n de las transacciones depende 煤nicamente de la propia transacci贸n y de sus entradas, y no de nada m谩s en la blockchain. Como consecuencia, la validez de una transacci贸n puede comprobarse fuera de la cadena, antes de que la transacci贸n se env铆e a la blockchain. Una transacci贸n puede fallar si alguna otra transacci贸n consume simult谩neamente una entrada que la transacci贸n est谩 esperando, pero si todas las entradas est谩n presentes, la transacci贸n est谩 garantizada.

Esto contrasta con un modelo basado en cuentas (como el utilizado por Ethereum), en el que una transacci贸n puede fallar en mitad de la ejecuci贸n del script. Esto nunca puede ocurrir en EUTXO.

Debido a la naturaleza 鈥渓ocal鈥 de la validaci贸n de transacciones, es posible un alto grado de paralelismo. Un nodo podr铆a, en principio, validar transacciones en paralelo, si esas transacciones no intentan consumir la misma entrada. Esto es genial tanto para la eficiencia como para el razonamiento, simplificando el an谩lisis de los posibles resultados, y demostrando que 鈥渘ada malo鈥 puede ocurrir. Puedes profundizar en la entrada del blog del modelo EUTXO.

Una potente caracter铆stica del modelo EUTXO es que las comisiones necesarias para una transacci贸n v谩lida pueden predecirse con precisi贸n antes de contabilizarla. Esta es una caracter铆stica 煤nica que no se encuentra en los modelos basados en cuentas. Las blockchains basadas en cuentas, como Ethereum, son indeterministas, lo que significa que no pueden garantizar el efecto de la transacci贸n en la cadena. Esta incertidumbre presenta riesgos de p茅rdida monetaria, tarifas inesperadamente altas y oportunidades adicionales para el comportamiento adverso.

En resumen, EUTXO ofrece mayor seguridad, previsibilidad del coste de ejecuci贸n de los contratos inteligentes (sin sorpresas desagradables) y una paralelizaci贸n m谩s potente.


Encuentra una copia oficial de este documento aqu铆:

https://docs.cardano.org/plutus/eutxo-explainer

M谩s traducciones de Cardano en: Home