Comment UTxO est supérieur au modèle basé sur les comptes et la différence qu’ EUTxO apporte à Cardano.
Commençons par Ethereum
Le modèle basé sur les comptes est le modèle le plus simple pour la façon dont les transactions et les portefeuilles fonctionnent et interagissent les uns avec les autres. L’ensemble du système financier fonctionne de cette manière, des banques aux comptes de courtage.
Le principe sous-jacent est qu’il existe généralement des comptes définis par adresse qui contiennent une valeur, que ce soit Ethereum, USD ou le nombre d’actions. Chaque adresse peut recevoir et envoyer la valeur qu’elle détient à une autre adresse.
Chaque fois que la valeur est envoyée d’une adresse à une autre; l’état du système est mis à jour.
Nous n’irons pas trop en profondeur ici car le concept est simple. Voir ici pour en savoir plus.
Modèle basé sur UTxO
Sans que les gens le sachent, le bitcoin a été la première implémentation du modèle UTxO. Cependant, ce modèle est plus complexe et donc plus facile à expliquer la blockchain aux débutants utilisant le système basé sur les comptes.
Les bases sont :
Les transactions consomment des sorties non dépensées, qui produisent plus de sorties qui peuvent ensuite être utilisées comme entrées.
Les portefeuilles de ces blockchains gèrent les UTxO appartenant à l’utilisateur. Chaque nœud central de la blockchain enregistre les sorties actuellement non dépensées, c’est-à-dire l’ensemble UTxO.
Lorsqu’une sortie est utilisée dans une transaction, elle est dépensée et ne peut plus être utilisée.
Plus de details:
Disons que nous avons deux personnes, Alice et Bob
Les transactions non dépensées sont les suivantes :
- Alice — 100 ADA
- Bob — 50 ADA
Prenons une transaction simple. Alice envoie à bob 10 ADA.
Pour le faire, Alice ne peut pas fractionner sa transaction non dépensée, car la transaction non dépensée ne peut pas être fractionnée et doit être utilisée entièrement ou pas du tout.
La transaction ressemble à ceci :
Remarquez comment Alice a “divisé” la transaction en utilisant son 90, en envoyant 10 à Bob et en se renvoyant le reste.
Les transactions non dépensées sont les suivantes :
- Alice — 90 ADA
- Bob — 50 ADA
- Bob — 10 ADA
Examinons une transaction plus complexe. Bob et Alice veulent tous les deux envoyer à Charlie 55 ADA chacun.
La transaction ressemble à ceci :
Bob doit utiliser ses deux transactions non dépensées car seules les deux ensemble sont assez importantes pour couvrir le montant envoyé.
En quoi EUTxO diffère-t-il ?
EUTxO signifie “Extended unspent transaction output” et a été développé pour être utilisé à Cardano.
La différence entre UTxO et EUTxO est ce qui permet de dépenser la transaction. Un UTxO est valable pour être dépensé s’il est signé avec la clé privée associée à son compte.
Dans le modèle UTxO, pour passer une transaction, il n’y a qu’une seule condition : la signature de clé privée appropriée est utilisée pour signer la transaction.
Dans EUTxO, il existe des adresses plus générales qui ne sont pas basées sur les hach de clés publiques mais sur une logique arbitraire qui définit dans quelles conditions un EUTxO peut être dépensé, c’est-à-dire des contrats intelligents.
Au lieu d’une signature, la transaction justifiera que la transaction non dépensée peut être dépensée par quelque chose appelé le Redeemer, qui est une donnée arbitraire.
Chaque EUTxO à Cardano a deux valeurs de données, le montant de l’ADA et une donnée, qui est une donnée arbitraire. Par conséquent, la transaction consommatrice doit fournir le Redeemer, le dataum et le script lui-même.
EUTxO vs le modèle basé sur les comptes
Dans UTxO, comme bitcoin, le script ne peut voir que le Redeemer, c’est-à-dire l’entrée, ce qui rend les contrats plus sûrs et testables ; cependant, cela limite la capacité des contrats intelligents.
Dans ce cas, le bitcoin a techniquement des contrats, mais ils sont communément appelés « contrats stupides » en raison de leurs limites.
Les scripts dans Ethereum peuvent voir tout l’état de la blockchain, ce qui les rend extrêmement puissants car ils peuvent faire à peu près tout, mais cela pose également des problèmes.
EUTxO prend le juste milieu. Le script peut voir toutes les entrées et sorties d’une transaction, pas seulement le rédempteur spécifique pour l’UTxO.
Avec cela, il peut être prouvé mathématiquement que les scripts Plutus sont tout aussi puissants que les contrats Ethereum, mais sans les problèmes de sécurité.
Alors, quelles sont ses problèmes de sécurité :
Supposons que vous envoyiez une transaction à la blockchain sur Cardano, mais que l’une des entrées a déjà été utilisée. Ensuite, votre transaction échouera sans payer de frais, car la validité de la transaction peut être vérifiée hors chaîne.
Cependant, sur Ethereum, entre la création de la transaction et son envoi en chaîne, beaucoup de choses auraient pu se produire, et votre transaction pourrait toujours être valide, créant beaucoup d’imprévisibilité. De plus, vous devez payer des frais de transaction même pour une transaction échouée.
La complexité des contrats Solidity (langage de contrat intelligent d’Ethereum) entraîne toutes sortes d’implications en matière de sécurité.
Car:
a) Les contrats ont tendance à faire plus de choses, ce qui signifie qu’il est plus difficile à tester.
b) Pour une certitude de sécurité de 100%, l’ensemble de la blockchain doit être pris en compte, ce qui est impossible en raison de son imprévisibilité.
D’autre part, pour analyser un script Plutus et vous assurer qu’il est sécurisé, vous n’avez qu’à regarder la transaction spécifique et non l’ensemble de la blockchain. C’est-à-dire limiter la portée de l’analyse de sécurité.
En ce sens, les scripts Plutus sont purs et, avec les mêmes entrées, ils produiront les mêmes sorties, ce qui permet une preuve mathématique de la sécurité.
Autres avantages d’EUTxO
-
En raison de la nature « locale » de la validation des transactions, un degré élevé de parallélisme est possible. Un nœud pourrait, en principe, valider des transactions en parallèle si ces transactions n’essaient pas de consommer la même entrée.
-
Une caractéristique puissante du modèle EUTXO est que les frais requis pour une transaction valide peuvent être prédits avec précision avant l’afficher. Il s’agit d’une fonctionnalité unique que l’on ne trouve pas dans les modèles basés sur des comptes. Les blockchains basées sur des comptes, comme Ethereum, sont indéterministiques, 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 étonnamment élevés et des opportunités supplémentaires de comportement contradictoire.
original text: The Extensive Guide on EUTxO, UTxO and The Accounts-based Model | AdaPulse