Bitcoin ne fonctionne pas comme un compte bancaire. Pas de solde affiché qui augmente ou diminue. Le réseau utilise un système d’UTXO - Unspent Transaction Output, ou “sortie de transaction non dépensée” en français. Ce modèle détermine comment l’argent circule sur la blockchain et comment votre portefeuille calcule ce que vous possédez.
Quand vous regardez votre wallet, le chiffre qui s’affiche est en fait la somme de plusieurs morceaux de bitcoin que vous contrôlez. Chaque morceau est un UTXO. Comprendre ce mécanisme aide à optimiser ses frais de transaction et à mieux gérer sa crypto.
Le modèle UTXO expliqué : des pièces numériques
Imagine que tu transportes de l’argent liquide. Tu as un billet de 20€, deux pièces de 2€ et une pièce de 1€. Ton “solde” total est 25€, mais il n’existe pas sous forme d’un seul élément. Ce sont quatre objets distincts dans ta poche.
Bitcoin fonctionne pareil. Ton portefeuille ne contient pas “0.5 BTC”. Il contient peut-être un UTXO de 0.3 BTC reçu il y a deux semaines, un de 0.15 BTC d’hier et un de 0.05 BTC de ce matin. La somme fait 0.5 BTC, mais ce sont trois morceaux séparés.
Ce qu’est un UTXO techniquement
Un UTXO est une sortie de transaction qui n’a pas encore été utilisée comme entrée d’une nouvelle transaction. Chaque fois que quelqu’un t’envoie du bitcoin, ça crée un nouvel UTXO verrouillé avec ta clé publique. Seule ta clé privée peut le déverrouiller pour le dépenser.
Sur la blockchain, un UTXO contient :
- Un montant en satoshis (1 BTC = 100 millions de satoshis)
- Une condition de déverrouillage (généralement ton adresse Bitcoin)
- Une référence à la transaction qui l’a créé
L’ensemble de tous les UTXO non dépensés constitue l’UTXO set - la liste complète de tous les bitcoins contrôlables sur le réseau. En janvier 2025, cet ensemble dépasse les 180 millions d’UTXO pour un total d’environ 19.8 millions de BTC.
NOTE
La taille de l’UTXO set grossit chaque jour. En 2017, il comptait environ 50 millions d’entrées. Cette croissance pose des défis techniques pour les noeuds qui doivent stocker et indexer toutes ces données.
Différence entre UTXO et modèle de compte
Ethereum et la plupart des blockchains récentes utilisent un modèle de compte. Chaque adresse possède un solde, comme un compte bancaire. Quand Alice envoie 10 ETH à Bob, le protocole soustrait 10 du solde d’Alice et ajoute 10 au solde de Bob. Simple et intuitif.
Bitcoin a choisi un autre chemin. Il n’y a pas de solde global par adresse. Quand Alice envoie 0.2 BTC à Bob, la transaction ne modifie pas un compteur. Elle consomme un ou plusieurs UTXO appartenant à Alice et crée de nouveaux UTXO pour Bob (et potentiellement un UTXO de “rendu de monnaie” pour Alice).
Pourquoi cette complexité ?
Le modèle UTXO offre plusieurs avantages :
Parallélisation des vérifications. Chaque UTXO est indépendant. Les noeuds peuvent vérifier plusieurs transactions en parallèle sans risque de conflit, tant qu’elles n’utilisent pas le même UTXO. Dans un modèle de compte, il faut vérifier l’ordre chronologique strict pour éviter les doubles dépenses.
Transparence totale. Tu peux tracer l’historique complet d’un UTXO jusqu’au bloc de coinbase où il a été créé. Cette traçabilité rend les audits publics simples et détecte rapidement toute tentative de fraude.
Meilleure confidentialité potentielle. Avec des pratiques correctes (génération d’une nouvelle adresse pour chaque réception), les UTXO rendent l’analyse de chaîne plus difficile qu’un modèle de compte où toutes les transactions d’une adresse sont liées.
TIP
Les frais de 0.01 BTC dans cet exemple vont au mineur. C’est pourquoi l’UTXO de change d’Alice ne fait pas 0.2 BTC mais 0.19 BTC : 0.5 - 0.3 - 0.01 = 0.19.
Comment fonctionne une transaction en pratique
Tu veux envoyer 0.15 BTC à un ami. Ton wallet affiche 0.4 BTC disponibles. En coulisse, tu possèdes peut-être trois UTXO : un de 0.25 BTC, un de 0.1 BTC et un de 0.05 BTC.
Ton logiciel va choisir lequel ou lesquels utiliser. Plusieurs stratégies existent. Il pourrait prendre uniquement l’UTXO de 0.25 BTC, envoyer 0.15 à ton ami et te rendre 0.099 BTC en change (0.001 BTC partent en frais). Ou il pourrait combiner l’UTXO de 0.1 et celui de 0.05, envoyer 0.15 et créer un petit UTXO de change de 0.0005 BTC pour toi.
Anatomie d’une transaction UTXO
Chaque transaction Bitcoin contient :
Inputs (entrées). La liste des UTXO consommés. Chaque input référence un UTXO précis par son identifiant de transaction et sa position. L’émetteur doit fournir une signature cryptographique prouvant qu’il contrôle la clé privée associée.
Outputs (sorties). Les nouveaux UTXO créés. Généralement un output pour le destinataire, un pour le change. Chaque output spécifie un montant et une condition de déverrouillage (adresse du destinataire).
Frais. Implicites. La différence entre la somme des inputs et celle des outputs. Si tu consommes 0.5 BTC d’inputs et crées 0.498 BTC d’outputs, les 0.002 BTC restants vont au mineur.
UTXO et frais de transaction : pourquoi la taille compte
Les frais Bitcoin ne dépendent pas du montant envoyé. Envoyer 10 000 BTC coûte le même prix qu’envoyer 0.001 BTC - si la transaction a la même taille en octets. Ce qui détermine les frais, c’est le poids de la transaction sur la blockchain.
Une transaction qui consomme 1 UTXO et crée 2 outputs fait environ 250 octets. Une transaction qui consomme 10 UTXO et crée 2 outputs fait environ 1 500 octets. La seconde paiera six fois plus de frais, même si le montant transféré est identique.
Le problème des petits UTXO (dust)
Si ton wallet accumule beaucoup de petits UTXO - par exemple parce que tu reçois régulièrement 0.0001 BTC -, les dépenser tous en une fois va coûter cher en frais. Ces UTXO minuscules sont appelés “dust” (poussière). Techniquement valides, mais économiquement non rentables à utiliser quand les frais sont élevés.
Exemple concret : tu possèdes 50 UTXO de 0.0001 BTC chacun, soit 0.005 BTC au total. Pour tout dépenser, ta transaction fera environ 7 500 octets (50 inputs × 150 octets par input). Si le taux de frais est de 50 sat/vbyte, tu paies environ 0.00375 BTC en frais. Il te reste 0.00125 BTC à envoyer. Tu perds 75% en frais.
WARNING
Évite de recevoir de nombreux petits paiements sur la même adresse si tu peux l’éviter. Regroupe les paiements quand c’est possible, ou utilise une plateforme qui permet l’agrégation avant de retirer tes fonds.
Stratégies de sélection d’UTXO
Les wallets utilisent différents algorithmes pour choisir quels UTXO consommer. Les plus courants :
First In First Out (FIFO). Utilise les UTXO les plus anciens en premier. Réduit la croissance de l’UTXO set mais peut créer beaucoup de change si les montants ne correspondent pas.
Largest First. Consomme les plus gros UTXO disponibles. Minimise le nombre d’inputs donc les frais, mais peut laisser beaucoup de petits UTXO inutilisables.
Branch and Bound. Algorithme intelligent qui cherche la combinaison exacte d’UTXO pour éviter de créer du change. Réduit la taille de transaction et améliore la confidentialité (pas d’adresse de change à analyser).
Bitcoin Core utilise Branch and Bound par défaut depuis 2018. Les wallets mobiles utilisent souvent Largest First pour simplifier le calcul.
L’UTXO set et ses défis pour le réseau
Chaque noeud complet doit stocker l’UTXO set en mémoire pour vérifier rapidement les transactions. Plus cet ensemble grossit, plus les ressources nécessaires augmentent. En janvier 2025, l’UTXO set pèse environ 12 Go en RAM.
Croissance exponentielle
En 2012, l’UTXO set comptait moins de 1 million d’entrées. Aujourd’hui, plus de 180 millions. Cette croissance s’accélère avec l’adoption. Chaque nouveau protocole qui s’appuie sur Bitcoin (Ordinals, inscriptions, tokens) crée des UTXO supplémentaires.
Le problème : un UTXO créé reste dans l’UTXO set jusqu’à ce qu’il soit dépensé. Les UTXO perdus (clés privées perdues) ou trop petits pour être dépensés (dust) restent là pour toujours. Ils encombrent la base de données sans apporter de valeur.
IMPORTANT
Environ 4 millions de BTC sont considérés comme perdus - soit parce que les clés privées ont disparu, soit parce que les coins datent de 2009-2010 et n’ont jamais bougé. Ces BTC existent sous forme d’UTXO dans l’ensemble, mais personne ne peut les dépenser.
Solutions en discussion
Plusieurs propositions visent à limiter la croissance de l’UTXO set :
UTXO commitments. Au lieu de stocker tout l’UTXO set, les noeuds pourraient valider une empreinte cryptographique de l’ensemble. Ça réduirait drastiquement les besoins en mémoire, mais compliquerait la vérification complète.
Expiration des UTXO. Forcer les UTXO non dépensés pendant X années à être réactivés ou perdus. Controversé : ça casse la promesse que tes bitcoins restent disponibles indéfiniment.
Frais proportionnels à l’UTXO set. Augmenter les frais pour les transactions qui créent beaucoup d’outputs. Incite les utilisateurs à consolider leurs UTXO plutôt qu’à les fragmenter.
Aucune de ces solutions n’a fait consensus. La communauté Bitcoin préfère la prudence aux modifications radicales.
Gérer ses UTXO pour optimiser les frais
Tu peux réduire tes frais futurs en gérant intelligemment tes UTXO. Quelques pratiques :
Consolider pendant les périodes creuses. Quand les frais sont bas (souvent le week-end ou la nuit en Europe), regroupe plusieurs petits UTXO en un seul gros. Tu paies des frais faibles maintenant pour économiser plus tard quand le réseau sera chargé.
Utiliser SegWit ou Taproot. Les adresses natives SegWit (bc1q…) et Taproot (bc1p…) génèrent des transactions plus légères que les anciennes adresses Legacy (1…). Moins d’octets = moins de frais.
Éviter la sur-fragmentation. Si possible, reçois des paiements en une fois plutôt qu’en plusieurs petits morceaux. Un UTXO de 0.1 BTC coûte moins cher à dépenser que 100 UTXO de 0.001 BTC chacun.
Prévoir ses dépenses. Certains wallets (comme Electrum) permettent de sélectionner manuellement les UTXO à consommer. Utile pour contrôler précisément les frais ou pour des raisons de confidentialité.
TIP
Pour vérifier l’état de ton UTXO set personnel, certains wallets comme Electrum affichent la liste complète de tes UTXO avec leur montant et leur âge. Utile pour identifier les UTXO à consolider.
UTXO et confidentialité
Le modèle UTXO peut améliorer ou dégrader ta vie privée selon comment tu l’utilises. Chaque UTXO a un historique public sur la blockchain. Les entreprises d’analyse de chaîne (Chainalysis, Elliptic) tracent les mouvements d’UTXO pour identifier les propriétaires.
Réutilisation d’adresse : l’erreur à éviter
Si tu reçois plusieurs paiements sur la même adresse, tu crées plusieurs UTXO liés à une seule identité. Quand tu les dépenses ensemble dans une transaction, tu confirmes publiquement qu’ils appartiennent à la même personne.
Bonne pratique : génère une nouvelle adresse pour chaque paiement reçu. Les wallets modernes le font automatiquement. Résultat : chaque UTXO semble appartenir à quelqu’un de différent.
CoinJoin et mélange d’UTXO
CoinJoin est une technique où plusieurs utilisateurs combinent leurs UTXO dans une seule transaction collaborative. Les outputs ont tous le même montant, ce qui brouille la correspondance entre inputs et outputs. Difficile pour un observateur de savoir qui a payé qui.
Wasabi Wallet et Samourai Wallet (avant sa fermeture en 2024) proposaient des CoinJoin intégrés. Sparrow Wallet permet d’en faire aussi. Ces outils augmentent significativement la confidentialité, mais ajoutent de la complexité et des frais.
CAUTION
Certaines plateformes d’échange bloquent les dépôts d’UTXO ayant participé à un CoinJoin. Elles considèrent ces coins comme “tainted” (contaminés). Vérifie la politique de ta plateforme avant d’utiliser ces techniques.
Outils pour explorer et gérer les UTXO
Plusieurs ressources permettent d’analyser l’UTXO set et tes propres UTXO.
Mempool.space. Cet explorateur de blockchain affiche des statistiques en temps réel sur l’UTXO set : taille totale, nombre d’entrées, distribution par montant. Tu peux aussi entrer une adresse pour voir tous ses UTXO non dépensés.
Bitcoin Core. Le client de référence offre des commandes RPC pour interroger l’UTXO set local. Utile pour les développeurs ou les utilisateurs avancés qui font tourner un noeud complet.
Electrum. Ce wallet affiche la liste complète de tes UTXO dans l’onglet “Coins”. Tu peux les geler (les exclure temporairement des transactions), les marquer ou les consolider manuellement.
Sparrow Wallet. Interface graphique claire pour gérer finement ses UTXO. Permet de visualiser leur âge, leur origine et de choisir précisément lesquels dépenser.
Pour découvrir comment les transactions Bitcoin s’assemblent en blocs et sont validées par le réseau, consulte notre guide sur les transactions Bitcoin. Si tu veux optimiser tes frais et comprendre la mempool, notre article sur l’envoi et la réception de Bitcoin détaille les bonnes pratiques.
Les UTXO sont un élément technique, mais les comprendre te donne du contrôle. Tu paies moins de frais, tu protèges mieux ta confidentialité et tu maîtrises vraiment comment fonctionne Bitcoin sous le capot.