Un UTXO, pour Unspent Transaction Output ou sortie de transaction non dépensée, est l’unité de base avec laquelle Bitcoin enregistre la propriété des bitcoins. Le réseau ne tient aucun compte bancaire au nom de qui que ce soit : il conserve une liste de « morceaux » de bitcoins reçus et pas encore dépensés, chacun verrouillé par une condition de dépense. Comprendre le modèle UTXO, c’est comprendre pourquoi un portefeuille Bitcoin « rend la monnaie », comment les frais sont calculés et en quoi Bitcoin diffère profondément d’Ethereum, qui repose sur un modèle de comptes.
Cet article part de la définition, déroule un exemple chiffré pas à pas, puis compare les deux architectures.
Qu’est-ce qu’un UTXO ? La définition technique
La documentation développeur de Bitcoin (developer.bitcoin.org) définit l’UTXO comme une sortie de transaction non dépensée qui peut être utilisée comme entrée dans une nouvelle transaction. Pour saisir ce que cela signifie, il faut décomposer une transaction Bitcoin en deux parties.
Les sorties (outputs) indiquent où va l’argent. Chaque sortie contient un montant, exprimé en satoshis (l’unité la plus petite du réseau, un bitcoin valant 100 000 000 satoshis), et un script qui fixe la condition à remplir pour dépenser ce montant. Dans le cas le plus courant, cette condition revient à produire une signature valide avec la clé privée associée à une adresse.
Les entrées (inputs) indiquent d’où vient l’argent. Une entrée ne contient pas de montant : elle désigne une sortie précédente, identifiée par l’identifiant de la transaction qui l’a créée (le TXID) et par son numéro d’ordre dans cette transaction. La documentation appelle cette référence un outpoint. L’entrée apporte aussi la preuve, en général une signature, que l’émetteur a le droit de dépenser cette sortie.
Une sortie reste donc un UTXO tant qu’aucune entrée ne l’a consommée. Dès qu’une transaction la dépense, elle devient une sortie dépensée et ne peut plus jamais servir. C’est le mécanisme qui empêche la double dépense : un nœud qui reçoit une transaction vérifie que chaque entrée pointe vers une sortie encore présente dans la liste des sorties non dépensées.
Le principe de la signature repose sur la cryptographie asymétrique, une paire de clés publique et privée dont nous détaillons l’origine dans notre article qu’est-ce que la cryptographie.
Le solde d’un wallet Bitcoin n’existe pas sur la blockchain
C’est la conséquence la plus contre-intuitive du modèle UTXO. Nulle part dans la blockchain Bitcoin il n’est écrit « l’adresse X possède 0,5 BTC ». Ce que l’on appelle un solde est un calcul fait par le portefeuille, qui additionne tous les UTXO qu’il est capable de dépenser. La documentation développeur le formule ainsi : quand on dit qu’un portefeuille a un solde de 10 000 satoshis, cela signifie en réalité que 10 000 satoshis attendent dans un ou plusieurs UTXO.
Une bonne image est celle du porte-monnaie rempli de billets. Avoir 80 euros peut vouloir dire un billet de 50 et un billet de 20 et un billet de 10, ou huit billets de 10. Le total est le même, mais la composition change la manière de payer. Dans Bitcoin, chaque UTXO est un billet d’un montant arbitraire, fixé au satoshi près au moment où il a été reçu.
Il existe toutefois une différence majeure avec les billets : un UTXO ne se découpe pas. Il est dépensé en totalité ou pas du tout. La documentation précise que la valeur complète des UTXO utilisés en entrée doit être soit attribuée à des sorties, soit laissée au mineur sous forme de frais. C’est ce qui rend nécessaire le mécanisme de la monnaie rendue.
Lire plus : Comment fonctionne une transaction Bitcoin ?
Exemple chiffré : une transaction UTXO qui rend la monnaie
Prenons Alice, dont le portefeuille contrôle deux UTXO : l’un de 500 000 satoshis (0,005 BTC), reçu il y a quelques mois, l’autre de 300 000 satoshis (0,003 BTC), reçu plus récemment. Son wallet affiche donc un solde de 800 000 satoshis. Elle veut envoyer 600 000 satoshis (0,006 BTC) à Bob.
Aucun de ses deux UTXO ne suffit seul. Son portefeuille procède alors à une sélection des UTXO (coin selection) et retient les deux comme entrées. La transaction dispose ainsi de 800 000 satoshis à répartir, et cette somme doit être intégralement affectée. Le portefeuille crée deux sorties : 600 000 satoshis verrouillés sur l’adresse de Bob, et une sortie de monnaie (change output) qui renvoie le surplus vers une adresse contrôlée par Alice. Les montants retenus pour les frais dans cet exemple sont illustratifs : leur niveau réel dépend de la taille de la transaction et de la demande sur le réseau au moment de l’envoi.
| Élément | Référence | Montant (satoshis) | Montant (BTC) |
|---|---|---|---|
| Entrée 1 | UTXO reçu par Alice (transaction A, sortie 0) | 500 000 | 0,005 |
| Entrée 2 | UTXO reçu par Alice (transaction B, sortie 1) | 300 000 | 0,003 |
| Total des entrées | 800 000 | 0,008 | |
| Sortie 0 | Paiement vers l’adresse de Bob | 600 000 | 0,006 |
| Sortie 1 | Monnaie rendue vers une adresse d’Alice | 198 000 | 0,00198 |
| Total des sorties | 798 000 | 0,00798 | |
| Frais de transaction | Entrées moins sorties, laissés au mineur | 2 000 | 0,00002 |
Trois enseignements se lisent dans ce tableau.
Le premier concerne les frais de transaction. Ils n’apparaissent dans aucune ligne dédiée : le glossaire de developer.bitcoin.org les définit comme le montant qui reste lorsque l’on soustrait la valeur de toutes les sorties de la valeur de toutes les entrées. Le mineur qui inclut la transaction dans un bloc récupère cette différence. Un portefeuille mal conçu qui oublierait la sortie de monnaie offrirait donc 200 000 satoshis au mineur.
Le deuxième concerne l’état du réseau après validation. Les deux UTXO d’Alice (500 000 et 300 000 satoshis) disparaissent de la liste des sorties non dépensées. Deux nouveaux UTXO y entrent : 600 000 satoshis pour Bob et 198 000 satoshis pour Alice. Le solde d’Alice passe à 198 000 satoshis, celui de Bob augmente de 600 000, sans qu’aucun « compte » n’ait été modifié.
Le troisième concerne la taille de la transaction. Chaque entrée ajoute des octets, notamment pour la signature. Or les frais se calculent selon la taille en octets de la transaction, d’après la documentation développeur, et non selon le montant envoyé. Une transaction qui agrège de nombreux petits UTXO coûte donc plus cher qu’une transaction qui dépense un seul gros UTXO, même pour un paiement identique.
Comment Ethereum gère les transactions : le modèle de comptes
Ethereum a fait un choix d’architecture opposé. Selon la documentation officielle d’ethereum.org, le réseau connaît deux types de comptes : les comptes détenus par un utilisateur (externally-owned accounts), contrôlés par une clé privée, et les comptes de contrat, contrôlés par le code d’un smart contract. Chaque compte possède notamment un champ balance, qui stocke directement son solde en wei (un ether vaut 10^18 wei), et un champ nonce, un compteur de transactions.
Le solde existe donc réellement dans l’état de la blockchain. Une transaction Ethereum ne désigne pas de pièces à consommer : elle indique un expéditeur, un destinataire, un montant (value) et des paramètres de gas. Le réseau débite l’un, crédite l’autre et met à jour les champs concernés.
La documentation ethereum.org propose son propre exemple. Bob envoie 1 ETH à Alice avec des frais de base de 190 gwei et un pourboire de 10 gwei par unité de gas, pour un transfert simple qui consomme 21 000 unités. Les frais totaux atteignent 0,0042 ETH : le compte de Bob est débité de 1,0042 ETH, celui d’Alice crédité de 1 ETH. La part correspondant aux frais de base (0,00399 ETH) est brûlée, c’est-à-dire retirée de la circulation, et le validateur conserve le pourboire de 0,00021 ETH. Aucune monnaie n’est rendue, puisqu’il n’y a rien à découper.
Le nonce remplit dans ce modèle le rôle que joue la consommation des UTXO dans Bitcoin. Ethereum.org précise qu’une seule transaction portant un nonce donné peut être exécutée pour chaque compte, ce qui empêche de rejouer deux fois la même transaction.
Lire plus : Qu’est-ce qu’Ethereum ?
UTXO vs modèle de comptes : le tableau comparatif
Les deux modèles permettent de transférer de la valeur de manière fiable, mais ils n’optimisent pas les mêmes propriétés.
| Critère | Modèle UTXO (Bitcoin) | Modèle de comptes (Ethereum) |
|---|---|---|
| Unité de base | Sortie non dépensée d’un montant fixe | Compte avec un solde modifiable |
| Où se trouve le solde | Calculé par le portefeuille en additionnant ses UTXO | Stocké dans l’état de la blockchain (champ balance) |
| Dépense | Les UTXO sont consommés en totalité, la différence revient en monnaie rendue | Le montant exact est débité du compte |
| Protection contre la double dépense | Une sortie ne peut être dépensée qu’une fois | Nonce unique par transaction et par compte |
| Base de calcul des frais | Taille de la transaction en octets | Gas consommé par l’exécution |
| Adresses | Nouvelle adresse de monnaie possible à chaque transaction | Une même adresse réutilisée pour tout l’historique |
| Programmabilité | Scripts de dépense volontairement limités | Contrats capables de lire et modifier un état global |
Avantages et limites du modèle UTXO
Le premier atout du modèle UTXO tient à la simplicité de la vérification. Pour valider une transaction, un nœud n’a pas besoin de reconstituer l’historique d’un compte : il vérifie que chaque entrée pointe vers une sortie existante et non dépensée, que la signature est valide et que la somme des sorties ne dépasse pas celle des entrées. Comme deux transactions qui dépensent des UTXO différents ne se touchent pas, leur validation est indépendante l’une de l’autre.
Le deuxième atout concerne la confidentialité. Un portefeuille Bitcoin peut envoyer la monnaie rendue vers une adresse neuve à chaque paiement, ce qui complique la lecture du solde total d’une personne. Cette protection reste partielle : les techniques d’analyse de chaîne savent souvent rapprocher les entrées d’une même transaction et identifier la sortie de monnaie. Le modèle de comptes, où une adresse concentre tout l’historique, est en revanche plus transparent par construction.
Les limites sont symétriques. La programmation d’applications complexes est plus difficile quand l’état est éclaté en milliers de sorties indépendantes, ce qui explique en partie pourquoi la finance décentralisée s’est développée sur Ethereum. Le modèle UTXO impose aussi une gestion fine au portefeuille : sélection des entrées, création de la sortie de monnaie, arbitrage entre frais et regroupement de petits montants. Enfin, chaque UTXO créé doit être conservé par les nœuds tant qu’il n’est pas dépensé, ce qui pose la question de la taille de cet ensemble.
L’UTXO set : la liste que chaque nœud garde en mémoire
L’ensemble des sorties non dépensées à un instant donné s’appelle l’UTXO set. C’est la photographie de qui peut dépenser quoi sur Bitcoin, et chaque nœud complet doit l’avoir à disposition pour valider les nouvelles transactions.
Selon le rapport « UTXO Set Report » publié par mempool research, l’UTXO set comptait 173 190 861 UTXO au bloc 892 385, daté du 14 avril 2025, et occupait 11 Go sur disque avec les réglages par défaut. Le même rapport relève que 49,1 % de ces UTXO contenaient moins de 1 000 satoshis, et que 29,6 % étaient liés à des inscriptions, la technique qui permet d’attacher des données à des satoshis individuels (le principe des Ordinals).
| Indicateur UTXO set (bloc 892 385, 14 avril 2025) | Valeur |
|---|---|
| Nombre total d’UTXO | 173 190 861 |
| Espace disque (réglages par défaut) | 11 Go |
| UTXO de moins de 1 000 satoshis | 49,1 % |
| UTXO liés à des inscriptions | 29,6 % |
Ces chiffres éclairent un débat récurrent dans la communauté Bitcoin. Une multitude de très petites sorties alourdit l’ensemble que chaque nœud doit conserver, alors que certaines d’entre elles coûteraient plus cher en frais qu’elles ne valent si leur propriétaire voulait les dépenser. Le coût de fonctionnement d’un nœud, et donc la possibilité pour un particulier d’en faire tourner un, dépend en partie de cette dynamique. Pour situer ces enjeux dans l’architecture globale du réseau, notre article sur le Proof of Work et le Proof of Stake détaille le rôle des mineurs et des validateurs.
Pourquoi le modèle UTXO compte pour l’utilisateur
Même sans écrire une ligne de code, le fonctionnement des UTXO a des effets concrets. Il explique pourquoi un wallet Bitcoin affiche parfois une nouvelle adresse de réception à chaque usage, pourquoi un explorateur de blocs montre une transaction avec une sortie inattendue vers l’expéditeur (la monnaie rendue), et pourquoi les frais varient selon le nombre de paiements reçus auparavant plutôt que selon le montant envoyé.
Il explique aussi la terminologie employée par les autorités. La Banque de France, dans son Focus n° 16 du 5 mars 2018 consacré à l’émergence du bitcoin, décrit la blockchain comme un registre où les transactions sont assemblées en blocs puis ajoutées à une chaîne, et parle de crypto-actifs plutôt que de monnaies. L’AMF, dans sa fiche pédagogique sur les crypto-actifs, les présente comme des actifs numériques virtuels reposant sur un registre décentralisé. Le modèle UTXO est précisément la manière dont Bitcoin tient ce registre.
Pour approfondir les notions voisines, la rubrique Blockchain 101 niveau intermédiaire regroupe nos explainers sur les mécanismes du réseau, et la catégorie Cryptos rassemble nos articles consacrés à Bitcoin et Ethereum.
FAQ sur les UTXO
Que veut dire UTXO en français ?
UTXO est l’acronyme anglais d’Unspent Transaction Output, que l’on traduit par sortie de transaction non dépensée. Le terme désigne un montant de bitcoins reçu lors d’une transaction précédente et pas encore utilisé. Chaque UTXO est verrouillé par une condition de dépense, le plus souvent une signature avec la clé privée liée à une adresse. Le solde d’un portefeuille Bitcoin correspond à la somme de tous les UTXO qu’il contrôle.
Pourquoi une transaction Bitcoin a-t-elle une adresse de monnaie ?
Un UTXO ne peut pas être dépensé partiellement : il est consommé en totalité dès qu’il sert d’entrée. Si le montant des UTXO utilisés dépasse le paiement, la différence doit revenir à l’expéditeur, sinon elle serait comptée comme frais et laissée au mineur. Le portefeuille crée donc automatiquement une sortie supplémentaire, dite sortie de monnaie, souvent vers une adresse neuve contrôlée par l’expéditeur.
Comment sont calculés les frais dans le modèle UTXO ?
Les frais correspondent à la différence entre la somme des entrées et la somme des sorties d’une transaction. Leur niveau dépend de la taille de la transaction en octets et de la demande d’espace dans les blocs. Une transaction qui regroupe beaucoup de petits UTXO occupe plus de place, donc coûte davantage, qu’une transaction qui dépense un seul UTXO, même pour un paiement du même montant.
Ethereum utilise-t-il des UTXO ?
Non. Ethereum repose sur un modèle de comptes : chaque compte possède un solde stocké directement dans l’état de la blockchain et un compteur appelé nonce. Une transaction débite l’expéditeur du montant exact et des frais, puis crédite le destinataire, sans monnaie rendue. Le nonce, unique pour chaque transaction d’un compte, empêche qu’une même transaction soit exécutée deux fois.
Qu’est-ce que l’UTXO set ?
L’UTXO set est la liste de toutes les sorties non dépensées du réseau Bitcoin à un instant donné. Chaque nœud complet la conserve pour contrôler qu’une nouvelle transaction ne dépense que des montants existants et disponibles. Selon mempool research, elle comptait environ 173 millions d’UTXO et occupait 11 Go sur disque au 14 avril 2025.
Ce qu’il faut retenir
Un UTXO est une sortie de transaction non dépensée, l’unité élémentaire avec laquelle Bitcoin enregistre la propriété. Le réseau ne connaît pas de soldes : il connaît des sorties d’un montant fixe, verrouillées par une condition de dépense, que chaque nouvelle transaction consomme en totalité avant d’en créer de nouvelles. D’où la monnaie rendue, qui renvoie le surplus à l’expéditeur, et des frais égaux à la différence entre entrées et sorties.
Ethereum a choisi l’inverse avec un modèle de comptes, où le solde est stocké et simplement débité ou crédité, ce qui facilite les applications programmables. Le modèle UTXO privilégie une vérification simple et indépendante de chaque transaction, au prix d’une gestion plus fine côté portefeuille et d’un UTXO set que chaque nœud doit conserver, fort de plus de 173 millions d’entrées au 14 avril 2025 selon mempool research.
