Resumen técnico: Arquitectura de Plutus

Ya que estás aquí, a lo mejor sabes algo de Cardano. Si llevas un tiempo aquí, puede que sepas lo que es un “ Smart Contract “. Ahora, llegamos a algo que no es muy bien conocido: Plutus. Basándose en un vídeo publicado en el canal YouTube de IOG en abril, este artículo describe qué es Plutus y su importancia en la arquitectura de Cardano.

La base de la plataforma blockchain de Cardano está construida sobre dos niveles separados: el “Cardano Settlement Layer” (CSL) y el Cardano Computation Layer (CCL). Plutus consiste de los tecnologías de la CCL :

  • Plutus es el núcleo de la plataforma de Smart Contracts de Cardano que permite la creación de DApps (aplicaciones descentralizadas).
  • Plutus permite la creación de tokens no fungibles (NFT), lo que son muy populares ahora.
  • Plutus es cómo puedes crear assets nativos en Cardano: la capacidad de crear tu propia moneda o divisa.
  • Por último, Plutus permite una lógica condicional arbitraria en el blockchain: imagínese la programabilidad de las declaraciones “if” al estilo de Excel, pero en el blockchain de Cardano.

En el centro del funcionamiento de Plutus hay algo que se llama EUTxO.

Primero, “UTxO” significa “Unspent Transaction Output’; es el nombre del modelo de contabilidad de “caja registradora” del que Bitcoin fue pionero. En este modelo, los valores de diferentes cantidades se guardan en UTxOs, de la misma manera que usted podría poner billetes de diferentes valores en un cajón de dinero. También se puede pensar en los UTxO como contenedores de uno o más ADA en la cadena de bloques de Cardano.

La “E” al principio de EUTxO significa “Extended”: EUTxO es la forma en que Cardano realiza la programabilidad en el blockchain y los smart contracts. Son cuatro los elementos que componen EUTxO: Contrato, Redentor, Dato y Contexto.

Contrato: Los Smart Contracts son programas, alojados en el blockchain, que se ejecutan cuando se cumplen unas condiciones preestablecidas. Se puede pensar en ellos como cerraduras que guardan UTxOs. También se puede pensar en los Smart Contracts como validadores o simplemente como un script de programación.

Redentor: Son los datos que se pasan del usuario al Smart Contract. En un UTxO, un redentor podría ser una firma que aporta la prueba de propiedad del UTxO y el acceso a su contenido. Se puede pensar en el redentor como una llave para desbloquear un contrato.

Dato: Es una información que puede asociarse a un UTxO. Se utiliza para almacenar información, como quién es el dueño o los detalles de tiempo (que definen cuándo se puede gastar el UTxO). Puedes pensar en el Datum como el “hard drive” de un Smart Contract, para guardar todo tipo de información.

Contexto: El contexto es básicamente el resumen o los metadatos de la transacción. Puede incluir información como quién firmó la transacción o a dónde van los fondos.

Con estos cuatro componentes de EUTxO, Plutus permite que las empresas y los ingenieros creen una gran variedad de aplicaciones descentralizadas, servicios financieros y juegos en Cardano.

La Plataforma Plutus

La Plataforma Plutus comienza con el código del ingeniero, y luego pasa por una serie de pasos de optimización, y finalmente se pone el blockchain (la api del ledger) y finalmente se ejecuta por el evaluador del núcleo de Plutus de manera descentralizada.

Código fuente

Plutus comienza con el código en la computadora de un ingeniero, antes de que ese código llegue al blockchain y antes de que los usuarios entren en escena. En el momento de escribir este artículo, todos los contratos de Plutus están escritos en el lenguaje de programación Haskell. Aunque parezca confuso, el propio Plutus es también un lenguaje de programación, un superconjunto de Haskell que hace que la escritura de Haskell sea menos laboriosa y reduce la repetición de tareas. La plataforma Plutus está diseñada para ser compatible con otros lenguajes en el futuro para facilitar ciertos propósitos, pero por el momento, Plutus y Haskell es la única opción.

Proceso de compilación

Después de que un ingeniero ponga los puntos sobre las íes, el script Haskell se convierte en Plutus IR. Plutus IR es una “representación intermedia” del código Haskell. Este estado IR no es completamente código máquina de 1s y 0s todavía, sino más bien una oportunidad para que Plutus optimice el código del ingeniero para la salida más eficiente de 1s y 0s. Plutus IR es para el desarrollo de Cardano lo que LLVM es para el desarrollo de aplicaciones de Apple iOS o el lenguaje de programación Rust.

A partir de Plutus IR, el código se convierte en el núcleo de “typed-Plutus.” Esto es inmediatamente antes de los 1s y 0s. Ofrece un nivel bajo para ayudar a los ingenieros a detectar fácilmente los problemas antes de que lleguen los 1s y 0s.

Lo siguiente es el núcleo “Untyped-Plutus,” una variante del cálculo lambda, una forma de expresar la aplicación en lógica pura (ver el link en la parte abajo para el artículo de wikipedia). Esta representación Untyped-Plutus Core de la aplicación es lo que se ejecutará en el blockchain.

Ponerse en el blockchain

Después de toda la optimización, la aplicación compilada está finalmente lista para ser “desplegada” en el blockchain. En Cardano, hay otras aplicaciones Plutus para ayudar con esto, así como “kits” para ingenieros.

Código fuera del blockchain

Una vez que tu código está en el blockchain, tendrás que escribir otro código Plutus/Haskell para hacer posible la generación de transacciones. Este componente de su aplicación fuera del blockcahin es la parte que recogerá correctamente cosas como el Redentor y el Dato y construirá una transacción que pueda interactuar con el código compilado que vive en el blockcain.

Conclusión

Con tu código compilado en el blockchain y el otro código fuera del blockchain, tu DApp está lista para facilitar las interacciones de los usuarios. El próximo capítulo de esta serie tratará de las interacciones de Plutus.

Related Links

  • Lambda calculus writeup wikipedia
  • Cardano Technical Briefing: Plutus by John Woods video

Recibe más artículos como éste en tu email

What is your experience with the Plutus platform? What still puzzles you?

Or leave comment
Share

Aún no hay comentarios…

avatar
You can use Markdown
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00