Aperçu technique : Architecture Plutus

Puisque vous êtes ici, vous avez probablement entendu parler de Cardano. Si vous êtes ici depuis un certain temps, vous savez peut-être ce qu’est un “ contrat intelligent “. Voici quelque chose qui n’est pas encore bien connu de beaucoup : Plutus. S’inspirant d’une vidéo publiée sur la chaîne YouTuve d’IOG en avril, cet article décrit ce qu’est Plutus et son importance dans l’architecture de Cardano.

Le fondement de la plateforme blockchain Cardano repose sur deux couches distinctes : Une couche de règlement Cardano (CSL) et une couche de calcul Cardano (CCL). Plutus est une gamme de technologies qui alimentent la CCL :

  • Plutus est au cœur de la plateforme de contrats intelligents de Cardano qui alimente la création de DApps (applications décentralisées).
  • Plutus permet la création de jetons non fongibles (NFT) qui ont été très populaires cette année.
  • Plutus permet de lancer des actifs natifs sur Cardano : la possibilité de créer votre propre monnaie ou devise.
  • Enfin, Plutus permet une logique conditionnelle arbitraire sur la chaîne : imaginez la programmabilité de l’instruction “if” à la manière d’Excel, mais sur la blockchain Cardano.

Au cœur du fonctionnement des composants de la plate-forme Plutus se trouve un élément appelé EUTxO.

Tout d’abord, “UTxO” est l’abréviation de “Unspent Transaction Output” (sortie de transaction non dépensée) ; c’est le nom du modèle de comptabilité “tiroir-caisse” mis en place par le bitcoin. Dans ce modèle, des valeurs de montants variables sont stockées dans des UTxO, comme vous pourriez mettre des billets de différentes valeurs dans un tiroir-caisse. Vous pouvez également considérer les UTxO comme des enveloppes pour un ou plusieurs ADA sur la blockchain Cardano.

Le “E” au début de EUTxO signifie “étendu” : EUTxO est la façon dont Cardano réalise la programmabilité sur la chaîne et les contrats intelligents. EUTxO se compose de quatre éléments : Contrat, Rédempteur, Données et Contexte.

Contrat: Les contrats intelligents sont des programmes, stockés sur la blockchain, qui s’exécutent lorsque des conditions prédéfinies sont remplies. Ils peuvent être considérés comme des verrous qui retiennent les UTxO. Vous pouvez également considérer les contrats intelligents comme des validateurs ou simplement comme un script de programmation.

Rédempteur: Ce sont les données transmises par l’utilisateur au contrat intelligent. Dans une simple UTxO, un rédacteur pourrait être une signature qui fournit la preuve de la propriété de l’UTxO et de l’accès à son contenu. On peut considérer le rédacteur comme une clé permettant de déverrouiller un contrat.

Datum: Un élément d’information qui peut être associé à une UTxO. Elle est utilisée pour stocker des informations sur l’état du script, comme son propriétaire ou les détails du timing (qui définissent quand l’UTxO peut être dépensée). Vous pouvez considérer le Datum comme le disque dur d’un contrat intelligent, pour stocker toutes sortes de données.

Contexte: Le contexte est essentiellement le résumé ou les métadonnées de la transaction. Il peut inclure des informations telles que l’identité du signataire de la transaction ou la destination des fonds.

Avec ces quatre composants d’EUTxO, la plateforme Plutus permet aux entreprises et aux développeurs de développer une large gamme d’applications décentralisées, de produits financiers et de jeux sur Cardano.

La plateforme Plutus

La plateforme Plutus commence avec du code de développeur, puis passe par une série d’étapes d’optimisation, et enfin est mise sur la chaîne (l’api ledger) et finalement exécutée et exécutée par l’évaluateur central plutus de manière décentralisée.

Code source

Plutus commence par un code de programmation sur l’ordinateur d’un développeur, avant que ce code n’atteigne la blockchain et avant que les utilisateurs n’entrent en scène. À ce jour, tous les contrats Plutus sont écrits soit dans le langage de programmation Haskell, soit dans des surensembles de Haskell. Il est assez déroutant de constater que Plutus lui-même est également un langage de programmation, un surensemble de Haskell qui rend l’écriture en Haskell moins laborieuse et réduit les termes passe-partout. La plate-forme Plutus est conçue pour prendre en charge d’autres langages ou des langages spécifiques à un domaine à l’avenir, afin de faciliter certaines utilisations, mais pour l’instant, Plutus et Haskell sont votre seule option.

Pipeline de compilateurs

Après qu’un développeur ait mis les points sur les i et les points sur les t, le script Haskell est converti en Plutus IR. Plutus IR est une “représentation intermédiaire” du code Haskell. Cet état IR n’est pas encore tout à fait du code machine 1s et 0s, mais plutôt une opportunité pour Plutus d’optimiser le code du développeur pour la sortie 1s et 0s la plus efficace. Plutus IR est au développement de Cardano ce que LLVM est au développement des applications iOS d’Apple ou au langage de programmation Rust.

À partir de Plutus IR, le code est transformé en Plutus core typé. C’est juste avant les 1 et 0 bruts. Il fournit une couche de bas niveau pour aider les développeurs à repérer facilement les problèmes avant que les 1 et 0 entiers n’arrivent.

Vient ensuite le noyau Plutus non typé, une variante du lambda calculus, une façon d’exprimer l’application en logique pure (voir le lien en bas de page pour l’article de wikipedia). Cette représentation Plutus Core non typée de l’application est ce qui sera exécuté sur la blockchain.

Obtenir sur la blockchain

Après toute l’optimisation, l’application compilée est enfin prête à être “déployée” ou injectée sur la blockchain. Dans Cardano, il existe d’autres applications Plutus pour faciliter cette opération, ainsi que des boîtes à outils pour les développeurs.

Code hors chaîne

Une fois votre code sur la blockchain, vous devrez écrire un autre ensemble de code Plutus/Haskell pour prendre en charge la génération des transactions. Ce composant hors chaîne de votre application est la partie qui rassemblera correctement des éléments tels que le rédacteur et le datum et construira une transaction qui pourra interagir avec le code compilé vivant sur la blockchain.

Conclusion

Avec votre code onchain compilé et votre code off-chain, votre DApp est prête à faciliter les interactions avec les utilisateurs. Le prochain épisode de cette série traitera en profondeur des interactions de Plutus.

Related Links

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

Recevez d’autres articles comme celui-ci dans votre boîte de réception

Quelle est votre expérience de la plateforme Plutus ? Qu'est-ce qui vous intrigue encore ?

Or leave comment
Share

Aucun commentaire pour le moment...

avatar
You can use Markdown
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

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

    Authored by: Darlington Kofa

    4 min 3 s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3 min 48 s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2 min 16 s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3 min 14 s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3 min 19 s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

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