UTXO versus blockchains basées sur des comptes : fonctionnement, différences et applications

UTXO versus blockchains basées sur des comptes : fonctionnement, différences et applications

Que sont les blockchains UTXO et basées sur des comptes ?

Les blockchains UTXO et basées sur des comptes sont deux façons différentes dont une blockchain enregistre qui possède quelle crypto et comment les transactions sont traitées.

Parmi les blockchains connues qui fonctionnent avec le modèle UTXO, on trouve Bitcoin, Litecoin, Dogecoin et Bitcoin Cash. Cardano utilise une variante plus avancée, le modèle eUTXO, qui permet également une logique plus complexe et des smart contracts.

Parmi les blockchains connues basées sur des comptes figurent Ethereum, Solana et la C-Chain d’Avalanche. Sur ce type de blockchains, l’état est conservé dans des comptes, par exemple via des soldes et d’autres données enregistrées. Ethereum utilise par exemple des comptes avec notamment un solde et un nonce, tandis que Solana stocke tout l’état dans des comptes.

UTXO est l’abréviation de Unspent Transaction Output : une portion de crypto issue d’une transaction précédente qui n’a pas encore été dépensée. On peut la comparer à des billets numériques séparés. Chaque billet a une certaine valeur et ne peut être dépensé qu’une seule fois.

Lorsque vous effectuez par exemple une transaction Bitcoin, vous utilisez un ou plusieurs UTXO existants comme entrée. Ceux-ci sont ensuite considérés comme dépensés. En même temps, de nouveaux UTXO apparaissent pour le destinataire et éventuellement pour la monnaie rendue qui retourne à l’expéditeur.

Un modèle basé sur des comptes fonctionne davantage comme un compte bancaire classique. Un compte possède un état actuel, comme un solde qui augmente ou diminue lorsque les transactions sont traitées. Sur Ethereum, un tel compte contient par exemple, en plus du solde en ETH, un nonce et, selon le type de compte, des informations sur le code et les données stockées.

La différence principale réside donc dans l’administration. Une blockchain UTXO suit des unités de valeur séparées, non encore dépensées, tandis qu’une blockchain basée sur des comptes suit surtout le solde actuel et d’autres données par compte.

Cela ne dit pas automatiquement quelque chose, par exemple, sur le consensus, la confidentialité ou les possibilités offertes par les smart contracts. Il existe en outre des modèles UTXO plus avancés, comme eUTXO, qui prennent également en charge une logique plus complexe.


À retenir

  • Un modèle UTXO suit la valeur sous forme de sorties séparées, non encore dépensées, issues de transactions précédentes.
  • Un modèle basé sur des comptes suit un solde variable et d’autres données par compte.
  • Bitcoin utilise le modèle UTXO et Ethereum est un exemple connu de blockchain basée sur des comptes.
  • Avec UTXO, une sortie existante est consommée et de nouvelles sorties sont créées.
  • Les deux modèles peuvent, sur des blockchains publiques, présenter des transactions pseudonymes mais faciles à suivre.

Comment fonctionne le modèle UTXO ?

Le modèle UTXO fonctionne avec des unités de crypto séparées qui n’ont pas encore été dépensées. Un tel UTXO provient d’une transaction précédente et ne peut être utilisé que si les conditions associées sont remplies. En général, vous prouvez au moyen d’une signature numérique que vous êtes autorisé à dépenser cet UTXO.

Lorsque vous créez une nouvelle transaction, celle-ci fait référence à un ou plusieurs UTXO existants. Le réseau vérifie ensuite que ces UTXO n’ont pas déjà été dépensés et que les conditions ont bien été respectées.

Point important à retenir : un UTXO ne peut pas être consommé partiellement. Dès que vous l’utilisez, l’ensemble de l’UTXO est dépensé. C’est pourquoi une transaction génère souvent plusieurs nouveaux UTXO : un pour le destinataire et éventuellement un pour le montant restant qui retourne à l’expéditeur. Ce dernier est aussi appelé change output.

Exemple : Supposons que votre wallet crypto puisse dépenser un UTXO de 1 BTC et que vous souhaitiez envoyer 0,4 BTC à quelqu’un.

L’UTXO complet de 1 BTC est alors utilisé comme entrée. La transaction peut par exemple envoyer 0,4 BTC au destinataire et renvoyer le montant restant, après déduction des frais de transaction, sous forme de nouvel UTXO vers une adresse que vous contrôlez.

L’ancien UTXO de 1 BTC n’existe alors plus. À sa place, de nouveaux UTXO ont été créés.

Votre solde visible ne correspond donc pas à un montant unique sur la blockchain. Il s’agit de la somme de tous les UTXO que votre wallet peut dépenser.

La valeur d’une transaction est également facile à vérifier. La valeur totale des nouvelles sorties ne peut pas être supérieure à la valeur des entrées utilisées. La différence entre les deux peut être versée au mineur qui produit le bloc sous forme de frais de transaction.

Dans Bitcoin, des conditions supplémentaires peuvent aussi être associées à un UTXO via des scripts. Un tel script détermine dans quelles conditions l’UTXO peut être dépensé. Cela rend Bitcoin programmable pour certaines formes d’autorisation, mais le modèle de script de Bitcoin est bien plus limité que les smart contracts avancés d’Ethereum, par exemple.

Comment fonctionne le modèle basé sur des comptes ?

Le modèle basé sur des comptes fonctionne avec des comptes qui possèdent chacun un état actuel. Pensez par exemple à un solde et à un nonce. Un nonce est un numéro croissant qui indique combien de transactions un compte a envoyées. Le réseau peut ainsi empêcher qu’une même instruction de transaction soit exécutée à nouveau.

Lors d’une transaction ETH classique, le solde de l’expéditeur diminue et celui du destinataire augmente. Ensuite, le nouvel état des deux comptes est enregistré sur Ethereum.

Ethereum distingue deux types de comptes :

  • Externally owned accounts (EOA) : comptes gérés à l’aide d’une private key. Ce sont généralement les comptes que les utilisateurs gèrent via un wallet. Un EOA peut lancer lui-même une transaction.
  • Comptes de contrat : comptes auxquels du code de smart contract est associé. Ils n’ont pas de private key et ne lancent pas eux-mêmes de transaction externe. Ils exécutent du code lorsqu’ils sont appelés par une transaction ou par un autre contrat.

Une transaction depuis un EOA contient notamment des informations sur la destination, le montant, le nonce, la signature, d’éventuelles données supplémentaires et la quantité maximale de gas pouvant être utilisée. Le gas détermine la quantité de calcul qu’Ethereum peut effectuer pour une transaction.

Si une transaction est envoyée uniquement vers un compte normal, il est par exemple possible d’envoyer de l’ETH. Si la transaction est envoyée vers un compte de contrat, l’EVM, l’environnement d’exécution d’Ethereum, peut exécuter le code de ce contrat.

Une seule transaction peut ainsi faire bien plus qu’envoyer de l’ETH. Un smart contract peut par exemple déplacer des tokens, modifier des données stockées ou appeler d’autres smart contracts.

Les validateurs vérifient et traitent les transactions selon les mêmes règles. Si la transaction est valide, les nouveaux soldes et les autres modifications deviennent partie intégrante du nouvel état d’Ethereum.

Quelles sont les principales différences entre les deux modèles ?

La plus grande différence réside dans la manière dont une blockchain suit ce que possède une personne.

Dans un modèle UTXO, l’état actuel se compose d’unités de crypto séparées qui n’ont pas encore été dépensées. Dans un modèle basé sur des comptes, chaque compte possède au contraire un état actuel, comme un solde, un nonce et éventuellement des données de contrat stockées.

Avec UTXO, vous consommez des sorties existantes et de nouvelles sorties apparaissent. Avec les comptes, l’état existant est directement modifié. Pensez par exemple à un solde qui baisse, à un nonce qui augmente ou à des données dans un smart contract qui changent.

La prévention des doubles dépenses fonctionne aussi différemment. Avec UTXO, une même sortie ne peut être utilisée qu’une seule fois. Dans un modèle basé sur des comptes, le nonce aide à traiter les transactions d’un même compte dans le bon ordre et à empêcher qu’une même instruction soit exécutée à nouveau.

Il serait trop simple de dire que UTXO convient uniquement aux paiements et que les blockchains basées sur des comptes ne servent qu’aux smart contracts. Des modèles UTXO avancés, comme eUTXO, peuvent également prendre en charge une logique plus complexe et des smart contracts.

Le fonctionnement concret d’une blockchain ne dépend d’ailleurs pas seulement du modèle UTXO ou du modèle basé sur des comptes. Le wallet crypto, les frais de transaction, la machine virtuelle et d’éventuelles techniques de confidentialité jouent aussi un rôle.

En quoi les transactions et l’administration des soldes diffèrent-elles ?

Dans une transaction UTXO, votre wallet utilise un ou plusieurs UTXO existants comme entrée. Le wallet rassemble suffisamment de montants séparés pour pouvoir payer le montant envoyé et les frais de transaction. Cela s’appelle aussi coin selection.

Si les UTXO choisis valent ensemble plus que le montant que vous souhaitez envoyer, un nouvel UTXO est généralement créé avec le montant restant. C’est ce qu’on appelle le change output.

Dans un modèle UTXO, votre solde se compose donc de plusieurs UTXO séparés qui forment ensemble votre solde total disponible.

Dans un modèle basé sur des comptes, le fonctionnement est différent. Un compte possède un seul solde qui est directement ajusté. Si vous envoyez par exemple de l’ETH, le solde de votre compte baisse et celui du destinataire augmente.

Les transactions provenant du même compte Ethereum ont en outre chacune un nonce. Ethereum sait ainsi dans quel ordre ces transactions doivent être traitées. C’est important, car une transaction antérieure peut influencer une transaction ultérieure. Votre solde peut par exemple changer ou un smart contract peut entre-temps avoir un état différent.

Une transaction Ethereum ne se compare donc pas bien à une seule entrée et une seule sortie. La transaction part bien d’un seul compte, mais un smart contract peut, pendant son exécution, modifier plusieurs comptes, tokens et données stockées.

En quoi la confidentialité et la traçabilité diffèrent-elles ?

Les blockchains publiques UTXO et basées sur des comptes sont généralement pseudonymes. Cela signifie qu’une adresse ne révèle pas automatiquement votre nom, mais que les transactions et les adresses sont bien publiques sur la blockchain.

Dans Bitcoin, différentes adresses sont souvent utilisées pour différentes transactions. La monnaie rendue d’une transaction peut aussi être envoyée vers une nouvelle adresse. Il n’est donc pas toujours immédiatement visible quelles adresses appartiennent à la même personne.

Les analystes peuvent toutefois reconnaître des schémas. Si plusieurs adresses sont par exemple utilisées ensemble comme entrée pour une transaction Bitcoin, cela peut indiquer que la même partie contrôle ces adresses. Cela ne constitue toutefois pas une preuve irréfutable.

Sur Ethereum, les utilisateurs emploient souvent la même adresse de compte pour de nombreuses activités différentes. Les transactions, les mouvements de tokens et les interactions avec des smart contracts depuis cette adresse peuvent donc être plus facilement reliés entre eux.

Aucun des deux modèles n’est automatiquement anonyme ou plus favorable à la confidentialité. Des techniques supplémentaires, comme les zero knowledge proofs, les mixers ou les transactions shielded, peuvent renforcer la confidentialité. Il s’agit de techniques complémentaires et non d’une partie standard du modèle UTXO ou du modèle basé sur des comptes.

Quels sont les avantages et les inconvénients des blockchains UTXO et basées sur des comptes ?

Les deux modèles ont des points forts et des points faibles. La meilleure approche dépend de ce qu’une blockchain ou une application doit faire.

Avantages du modèle UTXO

  1. Structure de transaction claire Dans une transaction UTXO, il est précisément visible quelles sorties existantes sont utilisées et quelles nouvelles sorties apparaissent. Le flux de valeur au sein d’une transaction est donc facile à suivre.

  2. Possibilité de traitement parallèle Les transactions qui n’utilisent pas les mêmes UTXO peuvent, dans certains modèles UTXO, être vérifiées indépendamment les unes des autres. Cela peut ouvrir la voie à un traitement parallèle.

  3. Contrôle clair des doubles dépenses Un UTXO ne peut être dépensé qu’une seule fois. Dès qu’il a été utilisé, il n’existe plus comme sortie disponible.

Inconvénients du modèle UTXO

  1. Plus de travail pour les wallets Un wallet crypto doit déterminer quels UTXO utiliser pour un paiement. Cela s’appelle coin selection. Les change outputs et les grands nombres de petits UTXO doivent aussi être gérés.

  2. L’état partagé peut être plus complexe Si plusieurs transactions ont besoin du même UTXO pour exécuter une logique de contrat, elles peuvent entrer en conflit. Dès qu’une transaction utilise cet UTXO, l’autre transaction doit éventuellement être reconstruite avec le nouvel état.

Avantages du modèle basé sur des comptes

  1. Administration simple des soldes Un compte possède un solde actuel qui est directement ajusté. Le wallet n’a donc pas besoin de rassembler d’abord plusieurs UTXO séparés.

  2. Pratique pour un état partagé et durable Les blockchains basées sur des comptes comme Ethereum peuvent associer directement des données à des comptes et à des smart contracts. Cela convient bien aux applications dans lesquelles de nombreuses transactions s’appuient sur les mêmes informations stockées.

  3. Adapté aux smart contracts complexes Un smart contract peut, au cours d’une seule exécution, modifier différents soldes, comptes et données stockées. Cela rend le modèle pratique pour de nombreux types d’applications blockchain.

Inconvénients du modèle basé sur des comptes

  1. Les transactions dépendent davantage de l’état actuel Le résultat d’une transaction peut dépendre du solde, du nonce ou des données du contrat au moment où la transaction est exécutée. Une transaction antérieure peut entre-temps avoir déjà modifié cet état.

  2. L’ordre des transactions est important Les transactions provenant du même compte doivent être exécutées dans le bon ordre de nonce. Même pour les smart contracts, l’ordre dans lequel les transactions sont traitées peut influencer l’état final.

  3. Un état partagé plus important peut compliquer le traitement Lorsque de nombreuses transactions tentent de modifier les mêmes comptes ou les mêmes données de contrat, ces transactions ne sont pas toujours totalement indépendantes les unes des autres.

En bref : aucun des deux modèles n’est automatiquement plus rapide, moins cher, plus sûr ou meilleur pour la confidentialité. De telles caractéristiques dépendent de la conception globale de la blockchain et de la manière dont le modèle UTXO ou basé sur des comptes y est mis en œuvre.

Quand quel modèle de blockchain est-il adapté ?

Un modèle UTXO convient bien aux applications dans lesquelles la valeur est suivie sous forme de montants séparés et où chaque sortie ne peut être dépensée qu’une seule fois. Cela fonctionne par exemple bien pour les paiements, lorsqu’il faut voir clairement quels montants sont utilisés et quels nouveaux montants apparaissent ensuite.

Si vous souhaitez construire des applications plus complexes, un modèle UTXO peut malgré tout rester adapté. Des variantes avancées, comme eUTXO, peuvent également prendre en charge des smart contracts et des règles plus complexes.

Il faut toutefois réfléchir soigneusement à la manière dont plusieurs utilisateurs travaillent en même temps sur les mêmes données. Si de nombreuses transactions ont toujours besoin du même UTXO, elles peuvent entrer en conflit. En répartissant les données sur plusieurs UTXO, il est parfois possible de limiter ces conflits.

Un modèle basé sur des comptes convient au contraire bien aux applications dans lesquelles les données sont souvent modifiées et où plusieurs actions s’appuient sur le même état stocké. Sur Ethereum, une transaction peut par exemple envoyer de l’ETH et appeler en même temps un smart contract qui modifie ensuite des données stockées.

Le choix le plus adapté ne dépend donc pas seulement de l’étiquette UTXO ou basé sur des comptes. Il faut surtout regarder ce que l’application doit faire, combien d’utilisateurs veulent modifier les mêmes données en même temps, à quel point les smart contracts sont complexes et quelle expérience utilisateur vous souhaitez offrir avec les wallets.

En résumé

UTXO et les blockchains basées sur des comptes résolvent le même problème de base, mais de manière différente. UTXO fonctionne avec des sorties séparées, dépensables une seule fois, tandis qu’un modèle basé sur des comptes conserve un état variable par compte.

Pour les paiements simples, la différence est facile à voir : avec UTXO, les anciens montants numériques sont consommés et de nouveaux sont créés, tandis qu’avec les comptes, les soldes sont mis à jour. Pour les applications plus complexes, le choix devient plus intéressant. Les variantes UTXO peuvent prendre en charge des smart contracts, et les modèles basés sur des comptes peuvent eux aussi très bien transférer de la valeur.

L’essentiel n’est donc pas de savoir quel modèle est, en général, le meilleur. Il s’agit de déterminer quel modèle correspond le mieux à ce que la blockchain ou l’application doit faire.

A propos de Finst

Finst est l'une des principales plateformes de cryptomonnaies aux Pays-Bas. Elle propose des frais de trading ultra-compétitifs, une sécurité de niveau institutionnel et une offre complète de services crypto incluant le trading, la conservation, le staking ainsi que des solutions de fiat on/off ramp. Fondée par d’anciens cadres de DEGIRO, Finst est autorisée sous MiCAR en tant que prestataire de services sur crypto-actifs par l’Autorité néerlandaise des marchés financiers (AFM). La plateforme est disponible pour les investisseurs particuliers et institutionnels dans 30 pays européens.

La plateforme crypto pour tous les investisseurs

Que vous soyez un trader actif ou un investisseur de long terme, Finst vous offre les outils pour investir dans les crypto-actifs en toute simplicité

Inscription