Résumé :
Examinons de plus près les recherches de Cardano, partie 2. En savoir plus sur le modèle innovant EUTXO de Cardano et comment il facilite des contrats intelligents plus efficaces.
Articles :
Notre article de blog précédent traitait de la recherche qui sous-tend certains des éléments fondamentaux de Cardano, notamment le jalonnement, la délégation et le partage de récompenses. Cette fois, nous décrivons les articles qui ont contribué à établir une plate-forme fonctionnelle de contrats intelligents pour le développement d’applications décentralisées (DApp), rendue possible par le modèle comptable Extended Unspent Transaction Output (EUTXO).
UTXO vs modèle basé sur le compte
Bitcoin et Ethereum font aujourd’hui partie des blockchains les plus populaires. Ils utilisent deux modèles de comptabilité générale assez différents pour suivre la distribution et la propriété des fonds des utilisateurs. Ces modèles sont le modèle UTXO (Unspent Transaction Output) de Bitcoin et le modèle basé sur le compte, tel qu’utilisé par Ethereum entre autres blockchains.
Le modèle UTXO garantit la sécurité au cœur des activités financières. Bien que le modèle sémantique d’UTXO reste simple dans un environnement informatique concurrent et distribué complexe, il est plutôt limité dans sa prise en charge des contrats intelligents. Ethereum a choisi explicitement le modèle basé sur les comptes pour faciliter des contrats intelligents plus expressifs.
Répondant à la question de savoir s’il est possible d’avoir des contrats intelligents expressifs tout en conservant la simplicité sémantique du modèle UTXO, les chercheurs d’IOG ont proposé les solutions « Le modèle UTXO étendu » et « Jetons personnalisés natifs dans le modèle UTXO étendu ». Les deux articles de recherche ont été publiés en 2020 et décrivent entièrement le modèle EUTXO mis en œuvre sur Cardano.
Manuel Chakravarty, scientifique Lambda et architecte Plutus chez Input Output Global, Inc. déclare :
Le modèle de grand livre UTXO, testé par Bitcoin, reste la référence en matière de sécurité et d’évolutivité. Nous avons créé le modèle Extended UTXO (EUTXO) pour obtenir le niveau d’expressivité des contrats intelligents mis au point par Ethereum, tout en conservant la sécurité et l’évolutivité inégalées d’UTXO. Nous voulions simplement le meilleur des deux mondes !
Le document de recherche « The Extended UTXO Model » démontre la capacité d’EUTXO à maintenir continuellement l’état du contrat et à utiliser le même code de contrat tout au long de la séquence de transactions. Une autre caractéristique puissante du modèle EUTXO est que les frais requis pour une transaction valide peuvent être prédits avec précision avant de la publier. Il s’agit d’une fonctionnalité unique due à la conception déterministe du modèle EUTXO , que l’on ne retrouve pas dans les modèles basés sur les comptes.
Le flotteur
Les contrats intelligents sont le moteur de l’exécution des transactions sur Cardano. Ils sont auto-exécutables et ne dépendent donc pas de tiers.
Lors de la conférence internationale ACM SIGPLAN sur la programmation fonctionnelle (ICFP’19), Manuel Chakravarty a discuté des blockchains fonctionnelles et a notamment présenté Plutus comme une approche fonctionnelle des contrats intelligents :
Agir vite et casser les choses n’est pas la bonne façon de construire une plateforme blockchain. Les choses cassées ne peuvent pas être réparées facilement. Par conséquent, Plutus a été construit sur la solide base mathématique de la programmation fonctionnelle. Il s’agit d’une plate-forme de programmation pour les contrats intelligents, qui comprend des éléments tels que des bibliothèques Haskell pour écrire des contrats intelligents, un compilateur de Haskell au code en chaîne Plutus Core et divers outils d’aide au développement.
La plupart des plateformes de programmation blockchain dépendent d’un langage personnalisé, tel que Solidity d’Ethereum. Plutus a été réalisé au-dessus de Haskell. Le choix de Haskell a permis aux équipes de recherche et d’ingénierie d’IOG de réutiliser l’infrastructure, les bibliothèques et les outils Haskell existants avec une expérience établie en matière de logiciels à haute assurance. Haskell facilite un code concis et réutilisable, tout en simplifiant le raisonnement informel, les tests et l’utilisation de méthodes formelles pour atteindre le niveau de sécurité souhaité. Les méthodes formelles, en tant que forme de raisonnement la plus stricte sur l’exactitude du code, présentent un intérêt particulier pour les contrats intelligents de grande valeur et sont bien prises en charge par le paradigme de programmation fonctionnelle.
Les équipes de recherche et d’ingénierie d’IOG ont fourni des contrats intelligents Plutus basés sur des articles tels que « Le modèle UTXO étendu », « Jetons personnalisés natifs dans le modèle UTXO étendu », « Démêler la récursion : compilation d’un IR avec récursion vers le système F » et « Système F » . à Agda, pour le plaisir et le profit ». Ensemble, ces articles établissent le modèle de grand livre compatible avec les contrats intelligents de Cardano ainsi que la représentation en chaîne du code du contrat sous forme de termes dits lambda. « Le système F à Agda, pour le plaisir et le profit » comprend une définition mathématique rigoureuse, qui a été vérifiée par ordinateur à l’aide du prouveur du théorème d’Agda.
Plutus est désormais une plateforme de programmation vivante et évolutive pour les contrats intelligents sur Cardano. L’équipe éducative d’IOG a également lancé le programme Plutus Pioneer pour recruter et former des développeurs Plutus pour l’écosystème Cardano. Vous pouvez en savoir plus sur le programme ici .
Marlowe
Alors que Plutus est un langage de programmation de contrats intelligents fonctionnel, Marlowe est une plate-forme Web permettant de créer et d’exécuter visuellement des contrats financiers intelligents à faible coût, sans avoir besoin de connaissances approfondies en programmation. Il ouvre une gamme de cas d’utilisation aux non-programmeurs pour exécuter des contrats simples et optimisés pour les transactions financières.
Le premier article de recherche présentant Marlowe, « Marlowe : Financial Contracts on Blockchain », a été publié en 2018. Cet article explore la conception d’un langage spécifique à un domaine destiné à l’exécution de contrats financiers. Il présente une sémantique exécutable de Marlowe en Haskell, un exemple de Marlowe en pratique, et décrit l’outil qui permet aux utilisateurs d’interagir dans le navigateur avec des simulations de contrats de Marlowe.
Plus tard, en 2020, l’équipe de recherche de l’IOG a publié un article sur « Analyse statique efficace des contrats Marlowe », qui présente le résumé des travaux sur l’optimisation de l’analyse statique des contrats Marlowe. « Marlowe : mise en œuvre et analyse de contrats financiers sur blockchain » a suivi pour décrire la mise en œuvre de Marlowe sur Cardano et l’environnement de développement et de simulation basé sur le Web de Marlowe Playground. Le document montre également que les contrats Marlowe peuvent être analysés de manière exhaustive avant de les exécuter, offrant ainsi de solides garanties aux participants au contrat.
Marlowe est déjà disponible pour que les gens puissent l’essayer dans Marlowe Playground , un environnement sandbox basé sur un navigateur où vous pouvez développer, simuler et tester le processus de rédaction de contrats intelligents. IOG prépare actuellement le lancement du réseau de test Marlowe et utilisera le programme Marlowe Pioneers pour recueillir des commentaires et des cas d’utilisation sur la suite de produits Marlowe. L’équipe a récemment livré l’ outil Marlowe CLI pour permettre aux utilisateurs de soumettre des transactions et d’interagir avec les contrats Marlowe à l’aide d’une interface de ligne de commande. Une fois lancés sur le réseau principal, les contrats Marlowe ouvriront une gamme de capacités DeFi.
Maintenant que nous avons discuté des caractéristiques du modèle EUTXO de Cardano et de la manière dont il facilite le développement de contrats intelligents sur Cardano, nous discuterons plus en détail de la recherche qui a permis la prise en charge de plusieurs actifs. Restez à l’écoute pour le prochain article du blog !
Source : Overview of the research enabling smart contract support on Cardano | Essential Cardano