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

Par Kraken Learn team
10 min
20 nov. 2024

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

La sortie de transaction non dépensée (UTXO) est la technique utilisée par le protocole Bitcoin pour suivre les soldes au fur et à mesure qu'ils se déplacent entre les portefeuilles crypto.

Lorsqu'il s'agit de suivre et de gérer des soldes crypto individuels, les protocoles basés sur la blockchain utilisent généralement l'un des deux modèles comptables différents.

L'un s'appelle le modèle de compte/soldes. Des projets comme Ethereum, Tezos et EOS utilisent ce modèle pour suivre les soldes au fur et à mesure que les utilisateurs de la blockchain exécutent des transactions. L'autre s'appelle le modèle de sortie de transaction non dépensée (UTXO). 

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

Mais qu'est-ce que c'est exactement, comment cela fonctionne-t-il et quels sont les avantages de l'UTXO par rapport au modèle de compte/soldes ?

BTC icon
$69 945.00
-0,64 %
24 H
btc

Comprendre le modèle UTXO 💻

Historique

Adam Back et le défunt Hal Finney étaient deux membres du groupe Cypherpunk cryptographie que l'auteur du livre blanc Bitcoin, Satoshi Nakamoto, fréquentait. Les deux sont crédités d'avoir développé le modèle UTXO indépendamment entre 1997 et 2004 respectivement. 

Lorsque le créateur de Bitcoin Satoshi Nakamoto a lancé le protocole en 2009, il 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 longtemps été soupçonnés d'être Satoshi Nakamoto, bien que cela n'ait jamais été prouvé avec certitude.

UTXO en un coup d'œil

Lorsque vous envoyez des bitcoins à quelqu'un, plusieurs étapes se déroulent de manière programmatique. L'une des premières étapes du processus de transaction consiste à ce que votre portefeuille cryptomonnaie scanne la blockchain pour le montant des fonds que vous avez. Ces fonds sont connus sous le nom de sorties de transaction non dépensées (UTXOs).

Vous pouvez penser aux UTXOs comme à de la monnaie de poche restante des transactions Bitcoin précédentes.

Les fonds sont considérés comme "non dépensés" car ils sont librement disponibles pour vous envoyer à quelqu'un ou les déplacer vers un autre portefeuille. Ils sont appelés "sorties de transaction" car 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 resterait un billet de 8 $. Dans cet exemple, le reste de $8 serait une sortie de transaction non dépensée. Il retournerait dans votre portefeuille prêt à être utilisé pour acheter autre chose.

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

Une autre comparaison clé entre les transactions en espèces physiques et les UTXO est que les deux doivent être dépensés en totalité et ne peuvent pas être subdivisés. Si vous avez un UTXO de 5 bitcoins et que vous souhaitez envoyer 1 BTC à quelqu'un, vous devrez envoyer l'ensemble de l'UTXO d'une valeur de 5 bitcoins 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 remettez un billet de $20 entier pour payer un déjeuner de $10.

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

Tout changement restant est généré comme un tout nouvel UTXO. Cette partie du système UTXO est la façon dont Bitcoin résout le problème de double dépense

Tout comme vous ne pouvez pas physiquement donner un billet de $5 à un commerçant et ensuite donner le 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 le même UTXO deux fois, les deux transactions se retrouvent dans un mempool — une sorte de salle d'attente pour les transactions en attente. Elles restent ici jusqu'à ce que des mineurs réussis qui gagnent la compétition de preuve de travail les regroupent dans de nouveaux blocs.

Vous pouvez en apprendre davantage sur ce processus dans notre article du Kraken Learn Center 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 du timestamping, l'une des transactions serait vérifiée avant l'autre. Après qu'un certain nombre de confirmations aient été passées (de nouveaux blocs ajoutés à la blockchain), d'autres nœuds signaleraient la deuxième transaction invalide et la rejetteraient.

Transactions Coinbase

La seule fois qu'une transaction bitcoin n'a pas d'entrées, c'est lorsque des BTC nouvellement frappés sont créés par le minage.

Connue sous le nom de transaction coinbase, cela représente la première transaction dans chaque nouveau bloc.

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

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

Solde du compte

Pour identifier le solde d'un utilisateur, également connu sous le nom d'ensemble UTXO, le logiciel de portefeuille crypto scanne la blockchain pour trouver tous les UTXO associés à l'adresse publique du portefeuille correspondant.

La somme totale de tous les UTXO donne un compte précis de combien de crypto un propriétaire de portefeuille contrôle.

Lorsqu'un UTXO est dépensé, l'adresse publique du portefeuille du destinataire est assignée au montant et un nouvel UTXO est enregistré sur la blockchain une fois exécuté.

Stockage

Les UTXO Bitcoin sont enregistrés dans diverses transactions qui sont stockées dans des blocs sur la blockchain Bitcoin. Cependant, cette information n'est pas clairement indexée, il peut donc être difficile de rechercher et de rassembler rapidement des métadonnées. 

Lors de l'utilisation de logiciels de portefeuille tels 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 et 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. À l'origine créé par Satoshi Nakamoto, Bitcoin Core est maintenant maintenu par une communauté de développeurs bénévoles.

UTXOs sous le capot 🚗

À un niveau plus technique, il y a quatre parties principales à une transaction :

  • Version: Cela informe les nœuds du réseau de quelle version du logiciel client est utilisée. Différentes versions suivent différentes règles pour vérifier les données de transaction.
  • Locktime : C'est la durée qui détermine la rapidité avec laquelle une transaction est ajoutée à la blockchain. Cette entrée dicte quel est le moment le plus tôt possible pour que la transaction soit traitée par les nœuds de minage.
  • Entrée : Information pointant vers la source des fonds ou la transaction précédente où l'UTXO a été produit. L'entrée contient également quelque chose appelé le "script de déverrouillage".
  • Sortie : Informations concernant la valeur transférée, le portefeuille où la propriété des fonds est réaffectée et les nouveaux UTXOs formés. La sortie contient également un "script de verrouillage".

Comment les UTXO diffèrent-ils de l'argent liquide ?

Les principales différences entre l'analogie des billets physiques et le modèle UTXO sont que le bitcoin et d'autres crypto-actifs basés sur UTXO ne sont pas liés à des montants fixes, c'est-à-dire 5 $, 10 $, 15 $, etc. Tout montant de bitcoin (jusqu'à huit décimales) peut être une sortie de transaction non dépensée. 

Par exemple, vous pouvez avoir 0,0003847 BTC restant d'une transaction.

Ce montant deviendrait un nouvel UTXO qui doit être dépensé en totalité s'il est utilisé et ne peut pas être divisé en montants plus petits.

Disons que John a un solde de portefeuille crypto de 1 bitcoin. Son solde et la composition de ce solde sont deux choses différentes, tout comme vous pourriez avoir 100 $ dans votre portefeuille, mais cela pourrait comprendre quatre billets de 20 $, deux billets de 5 $ et un billet de 10 $.

Disons que la composition du solde de 1 BTC de John est constituée de 5 différentes sorties de transaction non dépensées.

  • 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 de portefeuille de John regroupera automatiquement tout nombre d'UTXOs qu'il contrôle pour couvrir cette transaction ainsi que les frais de mineur impliqués pour la traiter.

Dans cet exemple, disons que le logiciel de portefeuille de John envoie automatiquement l'UTXO bitcoin de John d'une valeur de 0,73 BTC à Jane et renvoie le montant restant moins les frais de transaction à John sous forme de nouvel UTXO.

Ce montant est automatiquement envoyé à une adresse de change ; une adresse distincte liée à votre portefeuille crypto.

Scripts de verrouillage et de déverrouillage 🔒

Lorsque les UTXO sont créés, ils sont verrouillés en utilisant l'adresse publique du portefeuille 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 une autre chose importante à comprendre sur les transactions bitcoin. Lorsqu'une transaction est effectuée, le bitcoin n'est pas déplacé numériquement d'un compte à un autre. Au lieu de cela, ils sont déverrouillés, réaffectés à un nouveau propriétaire, puis à nouveau verrouillés.

Cela signifie que seul le nouveau propriétaire peut déverrouiller les fonds en utilisant sa signature numérique et les transférer ailleurs ; à une autre personne ou à un autre portefeuille sous son contrôle.

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 (appelé ScriptPubKey) définit les conditions qui doivent être remplies avant que l'UTXO puisse être utilisé comme entrée. Cela implique généralement de prouver que vous possédez la clé privée qui correspond à l'adresse publique du portefeuille 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 quiconque d'accéder et de dépenser ces fonds.

 

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

La poussière de Bitcoin fait référence aux UTXO contenant de minuscules montants de satoshis restants des transactions précédentes.

À elles seules, ces montants minimes de BTC coûteraient plus en frais de transaction pour être traités que leur valeur, et elles restent donc souvent dans des adresses de change en attendant d'être regroupées avec d'autres UTXO et dépensées.

Qu'est-ce qu'une attaque de poussière ?

Les attaques de poussière font référence aux escrocs envoyant de la poussière à des centaines de milliers de différentes adresses de portefeuille. L'idée derrière cela est de déterminer les cibles potentielles pour les attaques d'ingénierie sociale.

Un escroc surveillera les adresses contenant la poussière qu'il a envoyée, attendant que le propriétaire effectue une transaction qui regroupe des UTXO de différentes adresses liées à son portefeuille. Parce que les UTXO de poussière sont si petits, il y a de bonnes chances qu'ils soient regroupés avec d'autres et utilisés comme entrées.

Une fois cela fait, l'escroc peut avoir une idée des fonds qu'une personne possède. Il peut alors choisir d'incorporer des messages de phishing dans des transactions invitant le propriétaire à cliquer sur un lien qui télécharge un logiciel malveillant, ou à visiter de faux sites Web qui imitent des pages d'atterrissage légitimes et demandent des informations personnelles.

À quel point les attaques de poussière de bitcoin sont-elles dangereuses ?

Les attaques de poussière ne donnent pas accès aux fonds des escrocs.

Elles servent simplement à réduire le nombre d'adresses contrôlées par un portefeuille crypto particulier.

Pour minimiser votre risque d'attaques de poussière, il est préférable de ne jamais cliquer sur des liens ou de visiter des sites Web liés à des transactions de poussière.

Commencer à 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 à continuer votre parcours crypto et à acheter du bitcoin ?

Consultez le centre d’apprentissage de Kraken et la page Comment acheter du bitcoin (BTC) et ouvrez un compte Kraken dès aujourd’hui.

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