Plutus: Costes de transacci贸n y determinismo
El enfoque de Cardano para la fijaci贸n de precios se basa principalmente en la demanda del mercado sobre la oferta real. Con el reciente lanzamiento de los contratos inteligentes, habr谩 m谩s de un tipo de demanda compitiendo por la oferta com煤n. Por lo tanto, es crucial considerar tanto los precios relativos como los absolutos. Una forma de hacerlo es inspeccionar los efectos de los precios de los contratos inteligentes, las operaciones con tokens no fungibles (NFT), etc., con respecto a alg煤n valor com煤n - en nuestro caso, el consumo del poder de procesamiento de Cardano.
El dise帽o del libro mayor de Cardano se centra en la alta garant铆a, la seguridad y la verificaci贸n formal probada. En consonancia con esta estrategia, tambi茅n es importante garantizar que el procesamiento de las transacciones sea determinista , lo que significa que un usuario puede predecir el impacto y el resultado de una transacci贸n antes de su ejecuci贸n real.
La capacidad de garantizar el coste de la ejecuci贸n de la transacci贸n y el comportamiento de la misma en el libro mayor antes de su presentaci贸n, adquiere mayor relevancia con la introducci贸n del soporte de contratos inteligentes. Esta caracter铆stica es diferente de otras blockchains, incluyendo Ethereum, donde otra actividad de la red puede influir en el coste del gas. Esta capacidad tambi茅n est谩 garantizada por la naturaleza determinista de Cardano y los scripts de Plutus.
El c谩lculo del valor m铆nimo de ada para procesar una transacci贸n en Alonzo es diferente a los c谩lculos anteriores de Mary. Ya no hay un par谩metro de protocolo minUTxOValue en Alonzo, ya que fue obsoleto al final de la era Mary. Sin embargo, el requisito de que cada UTXO debe contener una cantidad de ada que depende del tama帽o de la entrada se sigue aplicando en Alonzo. La cantidad m铆nima de ada dependiente del tama帽o en un UTXO se denomina valor min-ada, y ahora se calcula utilizando el par谩metro de Alonzo coinsPerUTxOWord. Para saber m谩s, lee los detalles del Alonzo min-ada-value calculation.
Determinismo
Determinismo , en el contexto del procesamiento de transacciones y scripts, es un sin贸nimo de previsibilidad. Esto significa que un usuario puede predecir localmente (fuera de la cadena) c贸mo afectar谩 su transacci贸n al estado del libro mayor en la cadena, sin encontrarse con lo siguiente:
- resultados o fallos inesperados en la validaci贸n de scripts
- tarifas inesperadas
- actualizaciones inesperadas del libro mayor o del estado del script
Validaci贸n
Un aspecto importante del procesamiento de una transacci贸n es la validaci贸n de las acciones que realiza. Una transacci贸n realiza una acci贸n cuando contiene datos en el campo espec铆fico de esa acci贸n. Por ejemplo, una transacci贸n est谩 gastando UTXO U cuando contiene una referencia a U en su campo de entrada, y est谩 acu帽ando un token X cuando su campo de acu帽aci贸n contiene X.
Cardano utiliza scripts para validar acciones. Estos scripts, que son trozos de c贸digo, implementan funciones puras con salidas True o False . La validaci贸n de scripts es el proceso de invocar el int茅rprete de scripts para ejecutar un determinado script con los argumentos adecuados.
La validaci贸n de scripts puede realizarse para las siguientes acciones:
- Gastar un UTXO asegurado por una direcci贸n de script: el script que se ejecuta es aquel cuyo hash forma la direcci贸n.
- Acu帽aci贸n de un token: el script que se ejecuta es aquel cuyo hash forma el ID de la pol铆tica del token que se acu帽a.
- Retiro de recompensa: la secuencia de comandos que se ejecuta es aquella cuyo hash forma la direcci贸n de staking.
- Aplicar un certificado: la secuencia de comandos que se ejecuta es aquella cuyo hash forma la credencial del autor del certificado.
Adem谩s de permitir que el nodo sepa qu茅 script ejecutar, todas las acciones de transacci贸n indican c贸mo montar los argumentos pasados a ese script. Alonzo introduce un nuevo enfoque para la validaci贸n de transacciones en Cardano debido a la implementaci贸n de scripts Plutus.
Actualizaciones del libro mayor
Alonzo modifica los datos del libro mayor de la siguiente manera:
- Los scripts de Plutus pueden bloquear los UTXOs.
- Un nuevo componente, a帽adido al contenido de las partes de salida de los UTXO, permite una funcionalidad similar a la de los scripts. Adem谩s de los activos y una direcci贸n, un UTXO bloqueado por los scripts de Plutus tambi茅n contiene un datum. Un datum es una pieza de datos que puede considerarse como una interpretaci贸n del estado del script.
- Hay una serie de nuevos par谩metros de protocolo que se utilizan para imponer requisitos de validaci贸n adicionales a las transacciones. Entre ellos se encuentran los l铆mites m谩ximos de recursos inform谩ticos que pueden consumir los scripts.
Para soportar los scripts de Plutus, las transacciones se han actualizado de la siguiente manera:
- Para cada una de sus acciones, la transacci贸n lleva ahora un argumento especificado por el usuario, llamado redeemer. Dependiendo del script, un redeemer puede servir para un prop贸sito diferente. Por ejemplo, puede actuar como la puja que el usuario hace en una subasta, o la suposici贸n del usuario en un juego de adivinanzas, entre otras muchas funciones.
- La transacci贸n especifica los presupuestos de ejecuci贸n computacional para cada script.
- Para garantizar que una transacci贸n pueda pagar su tasa de ejecuci贸n, Alonzo introduce un colateral.
- Las transacciones contienen un hash de integridad, necesario para garantizar que no ha sido comprometido, obsoleto, etc.
El nodo realiza nuevas comprobaciones espec铆ficas de Alonzo que aseguran que la transacci贸n se construye correctamente. Por ejemplo, no debe superar el presupuesto m谩ximo de recursos de ejecuci贸n. Tambi茅n invoca el int茅rprete de scripts Plutus para ejecutar los scripts.
El modelo de gas no determinista puede cobrar a los usuarios tasas imprevisiblemente grandes. En los scripts de Cardano, esta fuente de indeterminismo se aborda requiriendo que el presupuesto de recursos en s铆 mismo, as铆 como la tarifa requerida para cubrir este presupuesto, se incluyan en la transacci贸n. En Alonzo, un usuario puede predecir ambos localmente al construir la transacci贸n. La ejecuci贸n de los scripts devuelve necesariamente o bien True o bien False , y no har谩 un ciclo indefinido. La raz贸n de esto es que cada operaci贸n que realiza un script toma una cantidad no nula de recursos, que son rastreados por el int茅rprete. Si se supera el presupuesto especificado por la transacci贸n, la ejecuci贸n del script termina y devuelve False .
Los siguientes puntos clave hacen que los resultados de la validaci贸n de scripts y transacciones sean predecibles :
- el int茅rprete de scripts siempre terminar谩 y devolver谩 el mismo resultado de validaci贸n cuando se aplique a los mismos argumentos.
- una transacci贸n fija necesariamente todos los argumentos que se pasar谩n al int茅rprete del script durante la validaci贸n.
- una transacci贸n especifica todas las acciones que realiza que requieren la validaci贸n del script.
- las firmas obligatorias en una transacci贸n garantizan que 茅sta no pueda ser alterada por un adversario de manera que haga fallar los scripts.
- la aplicaci贸n de una transacci贸n en el modelo de libro mayor EUTXO es determinista.
El fracaso o el 茅xito de la validaci贸n del script afecta a la forma en que se procesa una transacci贸n. Sin embargo, el resultado True o False , as铆 como los cambios en el libro mayor asociados a cualquiera de los dos resultados, son predecibles para una transacci贸n determinada.
M谩s informaci贸n:
- Sobre el mecanismo de colateral
- Par谩metros del modelo de costes para los scripts de Plutus
- No hay sorpresas en la validaci贸n de transacciones en Cardano: Parte 1
- Validaci贸n de transacciones sin sorpresas: Parte 2 (sobre las dos fases de validaci贸n y el colateral)
Encuentra una copia oficial de este documento aqu铆:
https://docs.cardano.org/plutus/transaction-costs-determinism
M谩s traducciones de Cardano en: Home