馃嚜馃嚫 Aprende: 13. Explicaci贸n del libro mayor (Ledger)

Aprende: 13. Explicaci贸n del 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 extrae 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 funciona esto dentro del libro mayor de Shelley y c贸mo los scripts de Plutus cambiar谩n 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 salida de transacciones no gastadas (UTXO). Este proceso significa que utiliza las entradas y salidas de las transacciones como registros para rastrear 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, por su naturaleza, son capturadas en su totalidad por las reglas del libro mayor. Este esquema multisig permite que la salida de una transacci贸n no realizada se utilice como entrada de una nueva transacci贸n si se proporciona 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 admitir t茅rminos adicionales para expresar una serie de otras condiciones.

Actualizaci贸n de multisig a Plutus Core

Con la introducci贸n del soporte de m煤ltiples activos y los pr贸ximos contratos inteligentes en Cardano, es esencial ampliar el lenguaje de scripting b谩sico de multisig con opciones m谩s avanzadas. Una vez iniciada la integraci贸n de las reglas de Alonzo en el libro mayor (lo que significa la adici贸n de capacidades de contratos inteligentes a Cardano), estamos a帽adiendo las herramientas y la infraestructura necesarias, as铆 como el apoyo a un nuevo lenguaje de scripting - Plutus Core.

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

EUTXO ampl铆a el modelo UTXO permitiendo que las direcciones de salida contengan una l贸gica compleja para decidir qu茅 transacciones pueden utilizarse para desbloquearlas y a帽adiendo 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/core-concepts/ledger

M谩s traducciones de Cardano en: Cardano For The World