UTXO vs modèles basés sur le compte

Les deux plates-formes de crypto-monnaie les plus connues, Bitcoin et Ethereum, utilisent différents modèles de transaction pour leurs plates-formes, chacune avec ses propres avantages et inconvénients spécifiques par rapport à l’autre. Comprendre leur fonctionnement d’un point de vue conceptuel est important pour mieux comprendre le cadre général de ces plates-formes et d’autres plates-formes construites avec des modèles identiques ou similaires..

Alors que le consensus dans les plates-formes de crypto-monnaie est nécessaire pour sécuriser le réseau et valider l’état de la blockchain, le modèle de transaction utilisé par une plate-forme est utilisé pour prouver la propriété des jetons. Bitcoin utilise le schéma UTXO (Unspent Transaction Output) tandis qu’Ethereum utilise le modèle Account Based. Les deux modèles sont, à leur niveau le plus élémentaire, des modèles de suivi de l’état de la base de données, et la mise en œuvre de chacun dans leurs plates-formes respectives a un objectif et un rôle spécifiques dans la structure plus large de la plate-forme..

UTXO vs modèles basés sur le compte

Bitcoin a été la première crypto-monnaie et donc la première plate-forme à utiliser le modèle UTXO plus abstrait, tandis que le modèle basé sur le compte d’Ethereum représente plus fondamentalement un modèle similaire au modèle de compte bancaire traditionnel..

Le schéma UTXO et son utilisation dans Bitcoin

Le modèle de sortie de transaction non dépensée appliqué dans Bitcoin est un concept plus abstrait que le modèle basé sur le compte utilisé dans Ethereum. C’est un composant vital de Bitcoin qui permet à la blockchain d’être transparente à travers toutes les transactions liées par une chaîne de signatures numériques.

Qu'est-ce que le consensus de Nakamoto

Lire: Notre guide du consensus de Nakamoto

Dans le modèle UTXO, chaque propriétaire de jeton transfère une pièce qu’il possède à un autre en signant numériquement le hachage d’une transaction précédente et la clé publique (adresse) du propriétaire suivant et en les ajoutant à la fin de la pièce. Le mécanisme est essentiellement une transgression continuelle des entrées et des sorties où le propriétaire des jetons ne possède en fait pas directement les jetons, mais possède plutôt la sortie à un nombre spécifique de jetons qui peuvent ensuite être transférés en tant qu’entrée à un nouveau propriétaire qui ensuite contrôle les nouvelles sorties. Il y a 3 règles fondamentales dans le schéma UTXO.

  • Chaque transaction doit prouver que la somme de ses entrées est supérieure à la somme de ses sorties.
  • Chaque entrée référencée doit être valide et pas encore dépensée.
  • La transaction doit avoir une signature correspondant au propriétaire de l’entrée pour chaque entrée.

Ainsi, dans une transaction UTXO typique, utilisons Alice et Bob comme exemple. Alice possède 10 BTC et veut en envoyer 5 à Bob. Bob ne possède aucun BTC. Au lieu de posséder carrément 10 BTC, Alice possède 2 sorties de transaction différentes composées respectivement de 6 et 4 BTC. Le portefeuille d’Alice choisirait le meilleur résultat à envoyer à Bob. Dans ce cas, la sortie de 6 BTC serait envoyée à Bob, et Bob devient le propriétaire de 5 BTC en ayant l’adresse, la signature numérique et la clé numérique nécessaires pour prouver la propriété de la nouvelle sortie. Le 1 BTC supplémentaire de changement de la transaction est retourné à Alice et est connu sous le nom de sortie de transaction non dépensée (UTXO). Désormais, Alice possède toujours deux sorties, mais elles sont composées respectivement de 1 et 4 BTC. Bob contrôle désormais 1 sortie valant 5 BTC. Un bénéficiaire peut vérifier les signatures pour vérifier la chaîne de propriété des jetons sur le grand livre public distribué. Il est à noter que les mineurs génèrent du Bitcoin via une transaction coinbase, qui ne contient aucune entrée.

Modèle UTXO

Modèle UTXO, image de Bitcoin.org

Logiquement, le modèle UTXO est beaucoup plus simple que le modèle de compte en termes d’évolutivité, et de manière critique, il permet au modèle consensuel de Bitcoin (PoW) de rester simple. Cela a des ramifications importantes pour l’évolutivité et la sécurité du réseau dans son ensemble. Bitcoin prend également en charge plusieurs types de scripts qui lui permettent de traiter des logiques de paiement complexes.

La conception du modèle UTXO présente de nombreux avantages qui en font un mécanisme élégamment compatible au sein de l’architecture réseau Bitcoin. L’un des avantages les plus importants de ce système est qu’il permet des vérifications de paiement simples (SPV) sur le réseau. Ces portefeuilles légers peuvent interagir avec la blockchain Bitcoin de manière décentralisée et sans confiance sans avoir à télécharger la totalité de la blockchain Bitcoin, réduisant ainsi considérablement le stockage et permettant aux applications téléphoniques d’interagir sur le réseau Bitcoin..

De plus, le modèle UTXO crée un environnement dans lequel une capacité de traitement parallèle sur plusieurs adresses est possible, permettant une bien meilleure infrastructure pour l’évolutivité. Les transactions peuvent être traitées en parallèle car elles font toutes référence à des entrées indépendantes. Enfin, si un utilisateur génère une nouvelle adresse pour chaque transaction, il devient plus difficile de lier des comptes malgré la transparence de la blockchain. Il s’agit de la propriété pseudo anonyme de Bitcoin, cependant, des techniques de plus en plus répandues pour le traçage des transactions et la liaison des comptes ont conduit Bitcoin à ne pas être aussi fongible qu’on le pensait initialement.

Malgré certains avantages substantiels du modèle UTXO dans son application dans un cadre comme celui de Bitcoin, il existe encore des inconvénients majeurs, en particulier lorsque le modèle est appliqué à une plate-forme complète Turing plus complexe telle qu’Ethereum. Par exemple, la création d’applications sur la conception UTXO oblige les développeurs à limiter la quantité d’état affectée par chaque sortie. De même, le schéma de transaction UTXO n’est pas en soi compatible avec le développement de contrats intelligents, car le concept ne convient vraiment que pour une utilisation dans des applications où chaque sortie n’appartient qu’à une seule personne et peut tomber en panne si la sortie peut être consommée par deux personnes ou plus le même temps.

Le modèle basé sur le compte et son utilisation dans Ethereum

La gestion du solde dans le modèle basé sur le compte est le plus familier des deux modèles et fonctionne dans Ethereum de la même manière que dans le monde bancaire traditionnel. Essentiellement, chaque compte subit des transferts directs de valeur et d’informations avec des transitions d’état.

Guide Ethereum

Lire: Notre guide complet d’Ethereum

Par exemple, Alice et Bob veulent faire des transactions entre eux. Alice veut envoyer 5 jetons à Bob et Alice en a 10 dans son compte tandis que Bob en a 0. Dans le modèle basé sur le compte, Alice envoie à Bob 5 jetons qui sont soustraits de son compte et ajoutés au compte de Bob. Alice a maintenant 5 jetons et Bob en a 5. C’est un concept simple et c’est ainsi que fonctionne le modèle financier traditionnel des transactions, car il est facile de suivre et d’éviter les doubles dépenses car il existe des autorités centralisées dans tout le système financier surveillant le flux des transactions.

Dans Ethereum, il existe deux types de comptes, les comptes d’utilisateurs contrôlés par clé privée et les comptes contrôlés par code de contrat (contrats intelligents). Ceci est important car c’est une raison vitale pour laquelle Ethereum a choisi le modèle basé sur le compte plutôt que le modèle UTXO. Étant donné qu’Ethereum utilise un langage de programmation complet Turing (Solidity) et que l’une de ses principales caractéristiques est les contrats intelligents, le modèle de compte offre une simplicité beaucoup plus grande que le modèle basé sur UTXO utilisé par Bitcoin. Ethereum a une quantité substantielle d’applications décentralisées qui contiennent un état et un code arbitraires, il n’est pas logique d’utiliser le modèle UTXO utilisé dans Bitcoin car cela limiterait intrinsèquement la capacité des contrats intelligents à s’exécuter.

Chaque compte dans Ethereum a son propre solde, stockage et espace de code pour appeler d’autres comptes ou adresses. Une transaction est valide si un compte expéditeur dispose d’un solde suffisant pour la payer. Si le compte destinataire a un code, le code s’exécute, modifiant tout ce qui passe du stockage interne à la création de messages supplémentaires qui peuvent avoir des effets ultérieurs sur les débits et les crédits vers d’autres comptes. Pour cette raison, chaque bloc nouvellement généré peut potentiellement affecter l’état de tous les autres comptes.

Les avantages spécifiques offerts par le modèle de compte dans Ethereum sont un gain de place plus important, la simplicité, la familiarité et la fongibilité. Chaque transaction dans le modèle de compte n’a besoin que de faire une référence et une signature qui produisent une sortie, contrairement à la conception UTXO. Cela permet des économies d’espace substantielles, ce qui est vital pour une plate-forme aussi grande et complexe qu’Ethereum. De plus, outre la familiarité et la simplicité permises par le modèle basé sur le compte, le degré de fongibilité de la blockchain Ethereum est beaucoup plus élevé que celui du Bitcoin. Les utilisateurs d’Ethereum effectuent des transactions à l’aide d’appels de procédure à distance du client, ce qui rend le suivi des transactions internes dans le grand livre Ethereum beaucoup plus difficile que Bitcoin où toutes les transactions sont publiquement liées via le registre en suivant les signatures numériques du schéma UTXO. Ainsi, la fongibilité est augmentée car la liste noire des marchands de pièces utilisées pour des activités illicites est difficile à réaliser..

De l’autre côté, les inconvénients du modèle de compte tournent autour de celui-ci limitant l’évolutivité de la plateforme. Bien qu’une implémentation nécessaire en raison de la conception d’Ethereum, les problèmes d’évolutivité entourant le développement d’Ethereum sont bien établis et constituent une préoccupation qui est venue au premier plan de l’industrie au sens large. La conception de la logique autour du modèle de compte n’est pas aussi simple qu’avec le modèle UTXO et peut avoir des implications potentielles sur d’autres concepts de conception au sein de la plate-forme à mesure qu’elle continue de croître.

Conclusion

Au sein des plates-formes de crypto-monnaie, il existe un ensemble diversifié de concepts de conception et de mécanismes techniques qui entrent dans la plate-forme pouvant fonctionner comme un système viable, sécurisé et utilisable..

Les modèles de transaction utilisés par ces plates-formes utilisent la cryptographie pour vérifier la propriété des jetons sur le réseau. Le schéma UTXO fonctionne à merveille pour Bitcoin, tandis que le modèle basé sur le compte utilisé dans Ethereum est conçu pour prendre en charge ses besoins d’application et de contrat plus complexes..

Les itérations ultérieures de ces plates-formes peuvent modifier et optimiser ces mécanismes pour mieux s’adapter au développement futur de leurs réseaux respectifs, cependant, être en mesure de comprendre leurs implémentations actuelles contribuera grandement à permettre une compréhension plus complète du fonctionnement de leurs réseaux et pourquoi ils sont si nouveaux.