1. Accueil
  2. /
  3. Dossier
  4. /
  5. Aperçu de la recherche permettant la prise en charge...

Aperçu de la recherche permettant la prise en charge des contrats intelligents sur Cardano (2e partie)

Voici plus d’informations sur le modèle innovant EUTXO de Cardano et sur la manière dont il facilite l’efficacité des contrats intelligents.

Notre précédent article de blog a abordé les recherches qui sous-tendent certains des éléments fondamentaux de Cardano, notamment le jalonnement, la délégation et le partage des récompenses. Cette fois-ci, nous présentons les articles qui ont contribué à établir une plateforme de contrats intelligents fonctionnelle pour le développement d’applications décentralisées (DApp), rendue possible par le modèle comptable EUTXO (Extended Unspent Transaction Output).

UTXO vs modèle comptable

Bitcoin et Ethereum font partie des blockchains les plus populaires actuellement. Elles utilisent deux modèles comptables de grand livre 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 les comptes, tel qu’employé par Ethereum parmi d’autres blockchains.

Le modèle UTXO garantit la sécurité au cœur des activités financières. Si le modèle sémantique d’UTXO reste simple dans un environnement complexe de calcul concurrent et distribué, il est plutôt limité dans sa prise en charge des contrats intelligents. Ethereum a choisi le modèle basé sur les comptes explicitement pour faciliter des contrats intelligents plus expressifs.

En réponse à 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 « The Extended UTXO Model » et « Native Custom Tokens in the Extended UTXO Model« . Les deux documents 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, mis à l’épreuve par le 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 des transactions. Une autre caractéristique puissante du modèle EUTXO est que les frais requis pour une transaction valide peuvent être prédits précisément avant de l’enregistrer. Il s’agit d’une caractéristique unique due à la conception déterministe du modèle EUTXO, que l’on ne trouve pas dans les modèles basés sur les comptes.

Plutus

Les contrats intelligents sont la force motrice de l’exécution des transactions sur Cardano. Ils sont auto-exécutoires 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, en particulier, a présenté Plutus comme une approche fonctionnelle des contrats intelligents :

Aller 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. C’est pourquoi Plutus a été construit sur la base mathématique solide de la programmation fonctionnelle. Il s’agit d’une plateforme 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 vers le code Plutus Core sur la chaîne, et divers outils pour faciliter le développement.

La plupart des plateformes de programmation de 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, qui ont fait leurs preuves en matière de logiciels de haute assurance. Haskell facilite la concision et la réutilisation du code, 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, qui constituent la forme la plus stricte de raisonnement 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 la programmation fonctionnelle.

Les équipes de recherche et d’ingénierie d’IOG ont élaboré les contrats intelligents Plutus sur la base de documents tels que « The Extended UTXO Model« , « Native Custom Tokens in the Extended UTXO Model« , « Unraveling recursion : compiling an IR with recursion to System F » et « System F in Agda, for fun and profit« . Ensemble, ces articles établissent le modèle de grand livre de Cardano basé sur les contrats intelligents ainsi que la représentation sur la chaîne du code du contrat en tant que termes lambda. Le document intitulé « System F in Agda, for fun and profit » comprend une définition mathématique rigoureuse, qui a été vérifiée par ordinateur à l’aide du vérificateur de théorèmes 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 afin de recruter et de former des développeurs à Plutus pour l’écosystème Cardano. Vous pouvez en savoir plus sur ce programme ici.

Marlowe

Alors que Plutus est un langage de programmation de contrats intelligents fonctionnels, Marlowe est une plateforme 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 série de cas d’utilisation pour les non-programmeurs afin d’exécuter des contrats simples et optimisés pour les transactions financières.

Le premier article de recherche présentant Marlowe, « Marlowe : contrats financiers sur blockchain« , a été publié en 2018. Cet article explore la conception d’un langage spécifique au domaine ciblé sur 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 Marlowe.

Plus tard, en 2020, l’équipe de recherche d’IOG a publié un article intitulé « Efficient static analysis of Marlowe contracts« , qui présente le résumé des travaux d’optimisation de l’analyse statique des contrats Marlowe. ‘Marlowe : implementing and analysing financial contracts on blockchain‘ a ensuite décrit la mise en œuvre de Marlowe sur Cardano et l’environnement de développement et de simulation en ligne du Marlowe Playground. L’article montre également que les contrats Marlowe peuvent être analysés de manière exhaustive avant d’être exécutés, offrant ainsi de solides garanties aux participants au contrat.

Marlowe est déjà disponible à l’essai dans le Marlowe Playground, un environnement de type « sandbox » basé sur un navigateur où vous pouvez développer, simuler et tester le processus d’écriture de contrats intelligents. IOG prépare actuellement le lancement d’un réseau de test Marlowe et utilisera le programme Marlowe Pioneers pour recueillir les réactions et les cas d’utilisation de 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. Lorsqu’ils seront lancés sur le réseau principal, les contrats Marlowe offriront toute une gamme de fonctionnalités.

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 allons approfondir les recherches qui ont permis la prise en charge de plusieurs actifs. Restez à l’écoute pour le prochain article du blog !

Cet article est une traduction : https://iohk.io/en/blog/posts/2022/06/23/overview-of-the-research-enabling-smart-contract-support-on-cardano/