馃嚜馃嚫 Plutus: Acerca del modelo de Libro Mayor (Ledger)

Plutus: Acerca del modelo de Libro Mayor (Ledger)

Cardano, como cualquier otra blockchain, es un libro de contabilidad distribuido o una base de datos que registra todas las transacciones y bloques creados en la cadena. Esta base de datos comparte registros entre todos los participantes y se sincroniza continuamente con las actividades de la blockchain para proporcionar informaci贸n transparente y actualizada a la que cualquiera puede acceder.

Cardano DB Sync recupera estos registros del blockchain y permite a los usuarios consultar los detalles de las transacciones y los bloques mediante comandos CLI . Para una exploraci贸n de datos m谩s c贸moda y f谩cil de usar, puedes utilizar el Cardano Explorer 鈥 una interfaz gr谩fica de usuario que presenta los detalles de forma sencilla.

Un productor de bloques valida cada transacci贸n antes de enviarla a un bloque. El remitente debe tener fondos suficientes, para que no haya un doble gasto, y todos los nodos del libro mayor deben llegar a un consenso.

Veamos con m谩s detalle c贸mo funcionaba esto dentro del libro mayor de Shelley y c贸mo los scripts de Plutus cambian este proceso para soportar transacciones de m煤ltiples activos y contratos inteligentes.

Validaci贸n de transacciones mediante scripts nativos de Shelley

Cardano opera bas谩ndose en el modelo contable de salidas de transacciones no gastadas (UTXO). Este proceso significa que utiliza las entradas y salidas de las transacciones como registros para seguir las transferencias de fondos, la propiedad y los saldos. Los fondos de los usuarios se almacenan como salidas de transacciones no gastadas, cada una de las cuales tiene una cantidad que puede ser gastada. Las entradas son salidas no gastadas de transacciones anteriores. En el momento en que 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: que contiene una credencial de pago y una credencial de participaci贸n opcional, ya sea un hash de clave p煤blica/de verificaci贸n o un hash de script. T茅cnicamente, la credencial de participaci贸n tambi茅n puede ser un puntero al certificado de registro.
  • un valor: refleja el importe real de ada que puede gastarse.

Una transacci贸n debe ser firmada por el propietario de la clave privada (tambi茅n denominada clave de firma), que corresponde a la credencial de pago incluida en la direcci贸n.

Cardano Shelley soportaba exclusivamente transacciones ada. Sin embargo, la especificaci贸n formal de Shelley introdujo el concepto de multi-signature (multisig) scripts, que, siendo nativos por su naturaleza, son capturados en su totalidad por las reglas del libro mayor. Este esquema multisig permit铆a utilizar la salida de una transacci贸n no utilizada como entrada de una nueva transacci贸n si se proporcionaba una combinaci贸n predefinida de firmas. Por ejemplo, si dos personas tienen que firmar la transacci贸n simult谩neamente, hay que proporcionar dos de las tres claves, etc.

Multisig es un lenguaje muy sencillo, y permite trabajar con cuatro constructores como RequireSignature, RequireAllOf, RequireAnyOf y RequireMOf. Sin embargo, a medida que se a帽adan m谩s funcionalidades al libro mayor, los scripts deber铆an ampliarse para soportar t茅rminos adicionales para expresar una serie de otras condiciones.

Actualizaci贸n de multisig a Plutus Core

Con la introducci贸n del soporte de multi-activos y contratos inteligentes en Cardano, es esencial ampliar el lenguaje de scripting b谩sico de multisig con opciones m谩s avanzadas. Una vez integradas las reglas de Alonzo en el libro mayor (lo que significa la adici贸n de capacidades de contratos inteligentes a Cardano), hemos a帽adido las herramientas y la infraestructura necesarias, as铆 como el soporte para un nuevo lenguaje de scripting - Plutus Core.

Para actualizar multisig a Plutus Core, el libro mayor Alonzo implementa el modelo de contabilidad de salida de transacciones no gastadas (EUTXO), utilizando Plutus Core para proporcionar potentes capacidades de scripting.

EUTXO ampl铆a el modelo UTXO al permitir que las direcciones de salida contengan una l贸gica compleja para decidir qu茅 transacciones pueden utilizarse para desbloquearlas y al a帽adir datos personalizados a todas las salidas. Para lograr esto, los scripts requieren un lenguaje de scripting definido y bien especificado, y deben adjuntarse datos a las salidas, que se pasar谩n al script durante la ejecuci贸n. Plutus Core permite la ejecuci贸n de este tipo de scripts complejos por parte de los nodos durante la validaci贸n de las transacciones mientras est谩n 鈥渆n vivo鈥 en la cadena. Se bloquear谩n UTXOs en forma de scripts validadores, o como pol铆ticas de acu帽aci贸n, que controlan la acu帽aci贸n y quema de tokens nativos. Los datos del redimidor se especifican entonces como un tipo de datos simple (algebraico) que puede definirse f谩cilmente en Haskell. En la pr谩ctica, un desarrollador de contratos inteligentes escribir谩 scripts validadores en Haskell, que luego ser谩n compilados autom谩ticamente en Plutus Core.

Las bibliotecas Haskell apropiadas simplifican la escritura de dicha l贸gica de validaci贸n al proporcionar tipos de datos b谩sicos para la inspecci贸n de las transacciones durante la validaci贸n. Tambi茅n ofrecen muchas funciones de ayuda y abstracciones de alto nivel, lo que permite a los autores de contratos concentrarse en la l贸gica del negocio sin preocuparse por demasiados detalles de bajo nivel.


Encuentra una copia oficial de este documento aqu铆:

https://docs.cardano.org/plutus/ledger-model

M谩s traducciones de Cardano en: Home