Qu’est-ce qu’une sortie de transaction Bitcoin non dépensée (UTXO)?

Par Kraken Learn team
10 min
20 nov. 2024

Le guide du débutant sur le modèle UTXO de Bitcoin 📕

L’UTXO (Unspent Transaction Output) est la technique que le protocole Bitcoin utilise pour suivre les soldes lorsqu’ils sont transférés entre des wallets crypto.

Pour le suivi et la gestion des soldes de cryptomonnaies individuels, les protocoles basés sur la blockchain utilisent généralement l’un des deux modèles comptables.

L’un est appelé le modèle Account/Balance. Des projets comme Ethereum, Tezos et EOS utilisent ce modèle pour suivre les soldes lorsque les utilisateurs de la blockchain exécutent des transactions. L’autre est appelé le modèle UTXO (Unspent Transaction Output)

Bitcoin et de nombreuses autres cryptomonnaies telles que Litecoin, Cardano et Dogecoin utilisent le modèle UTXO. 

Mais de quoi s’agit-il exactement, comment fonctionne-t-il et quels sont les avantages du modèle UTXO par rapport au modèle Account/Balance ?

BTC icon
$77 222.00
-2,26 %
24H
btc

Comprendre le modèle UTXO 💻

Histoire

Adam Back et le regretté Hal Finney étaient deux membres du groupe de cryptographie Cypherpunk que fréquentait Satoshi Nakamoto, l’auteur du livre blanc du Bitcoin. On leur attribue à tous deux le développement indépendant du modèle UTXO entre 1997 et 2004. 

Lorsque le créateur de Bitcoin, Satoshi Nakamoto, a lancé le protocole en 2009, celui-ci est devenu le premier système de monnaie numérique opérationnel à mettre en œuvre le modèle UTXO.

Hal Finney et Adam Back ont tous deux longtemps été suspectés d’être Satoshi Nakamoto, bien que cela n’ait jamais été prouvé avec certitude.

Les UTXO en bref

Lorsque vous envoyez du bitcoin à quelqu’un, plusieurs étapes se déroulent de manière programmatique. L’une des premières étapes du processus de transaction consiste pour votre wallet de crypto-monnaies à scanner la blockchain pour connaître le montant des fonds dont vous disposez. Ces fonds sont appelés sorties de transaction non dépensées (UTXO).

Vous pouvez considérer les UTXO comme de la monnaie restante de précédentes transactions en bitcoin.

Les fonds sont considérés comme “non dépensés” parce qu’ils sont librement disponibles pour que vous puissiez les envoyer à quelqu’un ou les déplacer vers un autre wallet. Ils sont appelés “sorties de transaction” parce qu’ils ont été créés à partir de transactions précédentes.

Si vous dépensez 12 € pour le déjeuner en utilisant un billet de 20 €, il vous restera 8 €. Dans cet exemple, les 8 € restants seraient une sortie de transaction non dépensée. Ils retourneraient dans votre portefeuille, prêts à être utilisés pour acheter autre chose.

C’est exactement comme cela que fonctionnent les UTXO de bitcoin. Lorsque vous effectuez une transaction, les sorties des transactions précédentes en bitcoin, c’est-à-dire votre monnaie en bitcoin, sont utilisées comme entrées pour de nouvelles transactions.

Une autre comparaison essentielle entre les transactions en espèces et les UTXO est que les deux doivent être dépensés dans leur intégralité et ne peuvent pas être subdivisés. Si vous avez un UTXO de 5 bitcoin et que vous voulez envoyer 1 BTC à quelqu’un, vous devrez envoyer l’UTXO entier d’une valeur de 5 bitcoin et recevoir un nouvel UTXO en retour d’une valeur de 4 BTC, moins les frais. 

Tout comme dans l’exemple ci-dessus, où vous donnez un billet de 20 € pour payer un déjeuner à 10 €.

Lorsqu’un UTXO est dépensé, il est considéré comme “consommé” et est techniquement retiré de la circulation. 

Toute monnaie restante est générée sous la forme d’un UTXO entièrement nouveau. C’est cette partie du système UTXO qui permet à Bitcoin de résoudre le problème de la double dépense

Tout comme vous ne pouvez pas physiquement donner un billet de 5 € à un commerçant, puis donner ce même billet de 5 € à quelqu’un d’autre, un utilisateur de bitcoin ne peut pas utiliser avec succès la même sortie de transaction non dépensée dans deux transactions numériques distinctes.

Lorsqu’une personne tente de dépenser deux fois le même UTXO, les deux transactions se retrouvent dans un mempool — une sorte de salle d’attente pour les transactions en attente. Elles y restent jusqu’à ce que les mineurs qui remportent la compétition de la preuve de travail les regroupent dans de nouveaux blocs.

Vous pouvez en apprendre davantage sur ce processus dans notre article du Centre d’apprentissage Kraken Qu’est-ce que le minage de bitcoin?

Même si les deux transactions sont regroupées dans deux blocs distincts et traitées simultanément, en raison de l’horodatage, l’une des transactions sera vérifiée avant l’autre. Après un certain nombre de confirmations (de nouveaux blocs ajoutés à la blockchain), d’autres nœuds signaleront la deuxième transaction invalide et la rejetteront.

Transactions coinbase

Le seul moment où une transaction en bitcoins n’a aucune entrée est lors de la création de nouveaux BTC par le minage.

Appelée transaction coinbase, elle représente la première transaction de chaque nouveau bloc.

Chaque satoshi (les sous-unités du bitcoin) en circulation peut être retracé jusqu’à sa transaction coinbase respective à l’aide du registre transparent de la blockchain.

Pourquoi le Bitcoin utilise-t-il le modèle UTXO?

Solde du compte

Pour identifier le solde d’un utilisateur, également appelé ensemble d’UTXO, le logiciel de wallet crypto analyse la blockchain pour trouver tous les UTXO associés à l’adresse de wallet publique correspondante.

La somme totale de tous les UTXO indique précisément la quantité de cryptomonnaies que le propriétaire d’un wallet contrôle.

Lorsqu’un UTXO est dépensé, l’adresse de wallet publique du destinataire est attribuée au montant et un nouvel UTXO est enregistré sur la blockchain une fois la transaction exécutée.

Stockage

Les UTXO Bitcoin sont enregistrés dans diverses transactions qui sont stockées dans des blocs sur la blockchain Bitcoin. Cependant, ces informations ne sont pas clairement indexées, il peut donc être difficile de rechercher et de rassembler rapidement les métadonnées. 

Lorsque vous utilisez un logiciel de wallet tel que le client Bitcoin Core, les métadonnées UTXO sont stockées et indexées à l’aide d’une base de données LevelDB. LevelDB est un système de stockage open source créé par Google en 2011 qui permet de localiser les UTXO beaucoup plus rapidement.

Le client Bitcoin Core est un logiciel populaire utilisé pour se connecter au réseau de la blockchain Bitcoin. Créé à l’origine par Satoshi Nakamoto, Bitcoin Core est désormais géré par une communauté de développeurs bénévoles.

Les UTXO sous le capot 🚗

D’un point de vue plus technique, une transaction se compose de quatre parties principales :

  • Version : Cette information indique aux nœuds du réseau la version du logiciel client utilisée. Les différentes versions suivent des règles différentes pour la vérification des données de transaction.
  • Locktime : Il s’agit de la durée qui détermine la rapidité avec laquelle une transaction est ajoutée à la blockchain. Cette entrée dicte le moment le plus précoce auquel la transaction peut être traitée par les nœuds de minage.
  • Entrée : Informations indiquant la source des fonds ou la transaction précédente au cours de laquelle l’UTXO a été produit. L’entrée contient également ce que l’on appelle le « script de déverrouillage ».
  • Sortie : Informations concernant la valeur transférée, le wallet auquel la propriété des fonds est réattribuée et les nouveaux UTXO formés. La sortie contient également un « script de verrouillage ».

En quoi les UTXO diffèrent de l'argent liquide

La principale différence entre l’analogie avec les billets de banque et le modèle UTXO est que le bitcoin et les autres crypto-actifs basés sur le modèle UTXO ne sont pas limités par des montants fixes (par exemple, 5 €, 10 €, 20 €, etc.). N’importe quel montant de bitcoin (jusqu’à huit décimales) peut être une sortie de transaction non dépensée. 

Par exemple, il peut vous rester 0,0003847 BTC d’une transaction.

Ce montant deviendrait un nouvel UTXO, qui doit être dépensé dans son intégralité s’il est utilisé et ne peut pas être divisé en montants plus petits.

Imaginons que John possède un solde de 1 bitcoin dans son wallet de cryptomonnaies. Son solde et la composition de ce solde sont deux choses différentes, de la même manière que vous pourriez avoir 100 € dans votre portefeuille, composés de quatre billets de 20 €, de deux billets de 5 € et d’un billet de 10 €.

Supposons que le solde de 1 BTC de John se compose de 5 sorties de transaction non dépensées différentes.

  • 0,138 BTC
  • 0,1 BTC
  • 0,004 BTC
  • 0,73 BTC
  • 0,028 BTC

John veut envoyer 0,6 BTC à Jane. Pour ce faire, le logiciel du wallet de John regroupera automatiquement le nombre d’UTXO qu’il contrôle nécessaire pour couvrir cette transaction, ainsi que les frais de mineur impliqués dans son traitement.

Dans cet exemple, supposons que le logiciel de son wallet envoie automatiquement l’UTXO de bitcoin de John d’une valeur de 0,73 BTC à Jane et renvoie le montant restant, moins les frais de transaction, à John sous la forme d’un nouvel UTXO.

Ce montant est automatiquement envoyé à une adresse de change, une adresse distincte liée à votre wallet de cryptomonnaies.

Scripts de verrouillage et de déverrouillage 🔒

Lorsque des UTXO sont créés, ils sont verrouillés à l’aide de l’adresse de portefeuille publique du destinataire. Pour utiliser cet UTXO comme entrée dans une nouvelle transaction, il doit d’abord être déverrouillé à l’aide de la signature numérique de l’expéditeur.

C’est un autre point important à comprendre au sujet des transactions Bitcoin. Lorsqu’une transaction est effectuée, les bitcoins ne sont pas déplacés numériquement d’un compte à un autre. Au lieu de cela, ils sont déverrouillés, réattribués à un nouveau propriétaire, puis verrouillés à nouveau.

Cela signifie que seul le nouveau propriétaire peut déverrouiller les fonds à l’aide de sa signature numérique et les transférer ailleurs, à une autre personne ou à un autre wallet sous son contrôle.

Script est un langage de programmation utilisé par Bitcoin pour traiter les transactions, y compris le verrouillage et le déverrouillage des UTXO. 

  • Script de verrouillage (ScriptPubKey) : Lorsqu’un UTXO est verrouillé, le script de verrouillage (connu sous le nom de ScriptPubKey) définit les conditions qui doivent être remplies avant que l’UTXO puisse être utilisé comme entrée. Il s’agit généralement de prouver que vous possédez la clé privée qui correspond à l’adresse de portefeuille publique utilisée pour verrouiller l’UTXO en fournissant une signature numérique.
  • Script de déverrouillage (ScriptSig) : Pour déverrouiller un UTXO, vous devez remplir les conditions définies par le script de verrouillage, c’est-à-dire fournir une signature numérique qui prouve que vous contrôlez les clés privées correspondant à la clé publique utilisée pour verrouiller l’UTXO.

Cela empêche toute autre personne d’accéder à ces fonds et de les dépenser.

 

Qu’est-ce que la poussière de Bitcoin?

La poussière de Bitcoin (Bitcoin dust) désigne les UTXO contenant des traces infimes de satoshis restants de transactions précédentes.

À eux seuls, ces montants minuscules de BTC coûteraient plus cher à traiter en frais de transaction qu’ils n’en valent. Ils restent donc souvent sur des adresses de change en attendant d’être regroupés avec d’autres UTXO et dépensés.

Qu’est-ce qu’une attaque par saupoudrage (dusting attack) ?

Les dusting attacks consistent en l’envoi, par des escrocs, de dust à des centaines de milliers d’adresses de wallet différentes. L’objectif est d’identifier des cibles potentielles pour des attaques d’ingénierie sociale.

Un escroc surveille les adresses contenant le dust qu’il a envoyé, en attendant que le propriétaire effectue une transaction qui regroupe des UTXO de différentes adresses liées à son wallet. Comme les UTXO de dust sont très petits, il y a de fortes chances qu’ils soient regroupés avec d’autres et utilisés comme entrées.

Une fois que cela se produit, l’escroc peut se faire une idée des fonds que possède une personne. Il peut alors choisir d’intégrer des messages de phishing dans les transactions, invitant le propriétaire à cliquer sur un lien qui télécharge un malware, ou à visiter de faux sites web qui imitent des pages de destination légitimes et demandent des informations personnelles.

Quel est le danger des attaques par saupoudrage de bitcoins ?

Les dusting attacks ne donnent pas aux escrocs l’accès à vos fonds.

Elles servent simplement à déterminer quelles adresses sont contrôlées par un crypto-wallet particulier.

Afin de minimiser le risque de dusting attacks, il est préférable de ne jamais cliquer sur les liens ou de consulter les sites Web associés aux transactions de saupoudrage.

Commencez à acheter du Bitcoin

Maintenant que vous avez tout appris sur le modèle de sortie de transaction non dépensée, êtes-vous prêt à poursuivre votre aventure crypto et à acheter du bitcoin ?

Consultez notre guide du Centre de formation Kraken pour découvrir comment acheter du Bitcoin (BTC) et créez un compte Kraken dès aujourd’hui.

Certains contenus de cette page peuvent avoir été traduits à l'aide de l'IA