Plutus: Comprendre le modèle Extended UTXO

 

Cardano (comme Bitcoin) est une blockchain basée sur Unspent Transaction Output (UTXO), qui utilise un modèle de comptabilité différent pour son grand livre de comptes par rapport aux autres blockchains basées sur les comptes comme Ethereum. Cardano met en œuvre un modèle innovant de Extended Unspent Transaction Output (EUTXO) model, introduit par la mise à jour Alonzo pour prendre en charge les multi-actifs et les contrats intelligents.

 

Présentation du modèle UTXO

Dans le modèle UTXO, une transaction a des entrées et des sorties, où les entrées sont des sorties non dépensées de transactions précédentes. Les actifs sont stockés dans le grand livre dans les sorties non dépensées, plutôt que dans les comptes.

Dès qu'une sortie est utilisée comme entrée dans une transaction, elle est dépensée et ne peut plus jamais être utilisée. La sortie est spécifiée par une adresse (une clé publique ou un hash de clé publique) et une valeur (composée d'un montant ada et de tout montant supplémentaire optionnel de jeton natif). L'adresse d'une sortie détermine quelles transactions sont autorisées à "déverrouiller" la sortie et à l'utiliser comme entrée. Une transaction doit être signée par le propriétaire de la clé privée correspondant à l'adresse. Considérez une adresse comme un "verrou" qui ne peut être "déverrouillé" que par la bonne "clé", c'est-à-dire la bonne signature.

Chacune de ces sorties indique les quantités d'actifs qui y sont stockées, ainsi que son adresse. Les sorties non dépensées sont immuables, de sorte qu'une transaction peut consommer la totalité de la sortie, mais ne peut pas la modifier.

En résumé, les transactions consomment les sorties non dépensées des transactions précédentes et produisent de nouvelles sorties qui peuvent être utilisées comme entrées pour des transactions futures.

Les porte-monnaies des utilisateurs gèrent ces UTXOs et initient des transactions impliquant les UTXOs appartenant à l'utilisateur. Chaque node de la blockchain conserve à tout moment un enregistrement du sous-ensemble de tous les UTXOs. C'est ce qu'on appelle l'ensemble des UTXO. En termes techniques, il s'agit de l'état de la chaîne, qui est stocké dans le dossier de données de chaque node. Lorsqu'un nouveau bloc est ajouté à la chaîne, l'état de la chaîne est mis à jour en conséquence. Ce nouveau bloc contient la liste des dernières transactions (y compris, bien sûr, un enregistrement des UTXOs dépensés, et des nouveaux créés depuis la dernière mise à jour de l'état de la chaîne). Chaque node maintient une copie exacte de l'état de la chaîne.

 

Le modèle UTXO étendu de Cardano

Le modèle EUTXO étend le modèle UTXO de deux façons:

  1. Il généralise le concept d'"adresse" en utilisant l'analogie de la serrure et de la clé. Au lieu de limiter les verrous aux clés publiques et les clés aux signatures, les adresses du modèle EUTXO peuvent contenir une logique arbitraire sous forme de scripts. Par exemple, lorsqu'un node valide une transaction, il détermine si la transaction est autorisée ou non à utiliser une certaine sortie comme entrée. La transaction consulte le script fourni par l'adresse de la sortie et l'exécute si elle peut utiliser la sortie comme entrée.
  2. La deuxième différence entre UTXO et EUTXO est que les sorties peuvent transporter des données (presque) arbitraires en plus d'une adresse et d'une valeur. Cela rend les scripts beaucoup plus puissants en leur permettant de transporter des informations d'état.

En outre, EUTXO étend le modèle UTXO en permettant aux adresses de sortie de contenir une logique complexe pour décider quelles transactions peuvent les déverrouiller, et en ajoutant des données personnalisées à toutes les sorties. Lors de la validation d'une adresse, le script accède aux données transportées par la sortie, à la transaction en cours de validation et à des éléments de données supplémentaires appelés "redeemers", que la transaction fournit pour chaque entrée. En consultant toutes ces informations, le script dispose d'un contexte suffisant pour donner une réponse par "oui" ou par "non" dans des situations et des cas d'utilisation qui peuvent être très complexes.

EUTXO permet une logique arbitraire sous forme de scripts. Cette logique arbitraire inspecte la transaction et les données pour décider si la transaction est autorisée ou non à utiliser une entrée.

Le modèle UTXO, avec sa structure de diagramme, est fondamentalement différent du modèle basé sur les comptes utilisé par certaines blockchains existantes avec des contrats intelligents. Par conséquent, les modèles de conception qui fonctionnent pour les applications numériques sur les blockchains basées sur les comptes ne sont pas directement applicables à Cardano. De nouveaux modèles de conception sont nécessaires car la représentation sous-jacente des données est différente.

EUTXO hérite de la conception par branches du modèle UTXO (Bitcoin), où une branche est par définition une séquence de transactions qui nécessite une séquence de validations. Pour répartir la logique sur différentes branches et renforcer le parallélisme, il est essentiel de construire des DApps et d'autres solutions en utilisant plusieurs UTXOs. Cela présente des avantages en termes de scalabilité, tout comme les conditions préalables au développement des services Bitcoin : diviser un portefeuille en sous-portefeuilles.

 

Avantages de EUTXO

Le modèle EUTXO de Cardano fournit un environnement sécurisé et polyvalent permettant de traiter plusieurs opérations sans défaillance du système. Ce modèle offre une meilleure évolutivité et une meilleure confidentialité, ainsi qu'une logique de transaction plus simplifiée, car chaque UTXO ne peut être consommé qu'une seule fois et dans son ensemble, ce qui simplifie considérablement la vérification des transactions.

Le modèle EUTXO offre des avantages uniques par rapport aux autres modèles comptables. Le succès ou l'échec de la validation d'une transaction dépend uniquement de la transaction elle-même et de ses entrées, et non de quoi que ce soit d'autre sur la blockchain. Par conséquent, la validité d'une transaction peut être vérifiée hors chaîne, avant que la transaction ne soit envoyée à la blockchain. Une transaction peut toujours échouer si une autre transaction consomme simultanément une entrée que la transaction attend, mais si toutes les entrées sont toujours présentes, la transaction est garantie de réussir.

Cela contraste avec un modèle basé sur les comptes (comme celui utilisé par Ethereum), où une transaction peut échouer au milieu de l'exécution d'un script. Cela ne peut jamais se produire dans EUTXO.

En raison de la nature "locale" de la validation des transactions, un haut degré de parallélisme est possible. Un node pourrait, en principe, valider des transactions en parallèle, si ces transactions ne tentent pas de consommer la même entrée. C'est un avantage à la fois pour l'efficacité et pour le raisonnement, car cela simplifie l'analyse des résultats possibles et prouve que "rien de mauvais" ne peut se produire. Vous pouvez vous plonger plus profondément dans l'article du blog sur le modèle EUTXO.

Une 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 la comptabiliser. Il s'agit d'une caractéristique unique que l'on ne trouve pas dans les modèles basés sur les comptes. Les blockchains basées sur les comptes, comme Ethereum, sont indéterministes, ce qui signifie qu'elles ne peuvent pas garantir l'effet de la transaction sur la chaîne. Cette incertitude présente des risques de perte monétaire, des frais élevés inattendus et des possibilités supplémentaires de comportement contradictoire.

En résumé, EUTXO offre une plus grande sécurité, une meilleure prévisibilité des coûts d'exécution des contrats intelligents (sans mauvaises surprises) et une parallélisation plus puissante.

 

Vous trouverez une copie officielle de ce document ici :

https://docs.cardano.org/plutus/eutxo-explainer

Plus de traductions de Cardano à: https://cardanofortheworld.com/fr-fr