MSTR Cat

Blockchain/Niveau II · Mécanismes/2.2 Transactions/Leçon 1

Le modèle UTXO

Pourquoi Bitcoin n’a pas de comptes, et comment le registre sait ce qui a été dépensé

MatérielUn navigateur web avec accès à un explorateur de blocs (par exemple, mempool.space)Une adresse Bitcoin publique avec plusieurs UTXOUn carnet pour noter les identifiants et les valeurs des sorties

Curiosité

  1. Qu’advient-il d’un solde lorsqu’il n’y a aucun compte à mettre à jour ?
  2. Comment un nœud peut-il vérifier qu’une entrée n’a pas déjà été dépensée sans examiner chaque transaction précédente ?
  3. Pourquoi le fait de porter l’historique complet d’une pièce rend-il plus difficile de rester anonyme ?

Explorer

  1. Bitcoin n’utilise pas le modèle de comptes des registres bancaires et d’Ethereum. Dans ces systèmes, les soldes sont stockés au niveau des adresses et mis à jour sur place ; envoyer des fonds revient à débiter un solde et à en créditer un autre. Bitcoin ne dispose d’aucun stockage de ce type. Il utilise plutôt une structure comparable à de l’argent liquide, où la valeur n’existe que sous forme d’unités distinctes non dépensées. Aucun registre central ne suit le « total d’Alice » ; il n’existe qu’un ensemble de sorties individuelles actuellement disponibles pour être dépensées.
  2. Ces unités sont appelées sorties de transaction non dépensées (Unspent Transaction Outputs, UTXO). Chaque UTXO contient un montant précis en satoshis et un script de verrouillage qui définit qui peut le dépenser. Lors d’une transaction, des UTXO entiers sont consommés en tant qu’entrées et de nouveaux UTXO sont créés en tant que sorties. Les sorties dépensées quittent l’ensemble des pièces dépensables (les transactions restent dans l’historique de la chaîne), et les nouvelles sorties y entrent. Le « solde » d’un portefeuille n’est pas un nombre stocké, mais la somme de tous les UTXO dont ses clés privées peuvent satisfaire les scripts de verrouillage.
  3. Cette structure simplifie la validation pour les nœuds du réseau. Comme chaque entrée fait référence à une sortie précise, jusque-là non dépensée, un nœud n’a qu’à vérifier que cette sortie existe dans l’état actuel et n’a pas déjà été utilisée. Il n’a pas besoin de recalculer des soldes globaux ni de vérifier des historiques de comptes complexes. Chaque nœud complet maintient le « chainstate », qui correspond essentiellement à l’ensemble de tous les UTXO actifs à un instant donné. Cela permet une vérification rapide et déterministe des tentatives de double dépense.
  4. La comparaison avec Ethereum met en évidence un choix de conception essentiel. Ethereum utilise un modèle de comptes dans lequel chaque adresse possède un solde stocké et un nonce (un compteur de transactions) pour empêcher les attaques par rejeu. Mettre à jour un compte impose de modifier l’arbre d’état global. Bitcoin crée de nouvelles sorties au lieu de modifier les soldes sur place, si bien que les pièces portent leur historique, qui relie les transactions passées aux avoirs actuels.
  5. Ce lien historique a des conséquences importantes sur la confidentialité et la fongibilité. Comme chaque entrée renvoie à une sortie antérieure, les analystes peuvent retracer le flux des fonds à travers des chaînes d’UTXO. Même si des services de mixage et d’autres techniques existent, la structure même de Bitcoin rend difficile de rompre complètement le lien entre l’origine d’une pièce et son détenteur actuel. Cette transparence est souvent invoquée dans les débats sur la fongibilité réelle des bitcoins, certains acteurs du marché pouvant préférer des pièces « propres », à l’historique moins traçable.
  6. Pour le constater concrètement, ouvrez la vue de contrôle des pièces (coin control, ou vue « UTXO ») d’un portefeuille ayant reçu plusieurs paiements : chaque sortie y est listée séparément, avec sa propre valeur et son identifiant de transaction. Sur un explorateur de blocs, la page d’une adresse présente la même chose sous forme de liste des sorties reçues, certaines dépensées, d’autres non. Cette liste de sorties individuelles est la véritable représentation on-chain de la propriété ; le « solde » affiché dans l’interface n’est qu’un calcul effectué côté client à partir de cet ensemble.

Faits clés

  • Bitcoin ne stocke ni comptes ni soldes on-chain ; la propriété repose uniquement sur les sorties de transaction non dépensées (UTXO).
  • Chaque UTXO contient un montant en satoshis ainsi qu’un script de verrouillage qui précise les conditions requises pour le dépenser.
  • Une transaction consomme des UTXO entiers en tant qu’entrées et crée de nouveaux UTXO en tant que sorties ; les sorties qu’elle dépense quittent l’ensemble des UTXO.
  • Chaque nœud complet maintient le « chainstate », c’est-à-dire l’ensemble complet de toutes les sorties actuellement non dépensées, utilisé pour la validation.
  • Le solde affiché par le portefeuille est un calcul local qui additionne les valeurs des UTXO contrôlés par ses clés privées, et non une valeur stockée dans la blockchain.
  • Contrairement au modèle de comptes d’Ethereum, avec ses nonces et ses soldes modifiables, le modèle UTXO de Bitcoin traite les pièces comme des unités distinctes porteuses de leur historique, qui sont remplacées plutôt que mises à jour.

Exercice neuf, six, trois, un

9RassemblerÉnumérez 9 actifs ou monnaies numériques différents. Indiquez si chacun utilise un système de soldes fondé sur des comptes (comme Ethereum) ou un système de sorties fondé sur les UTXO (comme Bitcoin).
6RegrouperRegroupez les 9 en 6 catégories selon la manière dont ils gèrent l’état : soldes modifiables, sorties immuables, modèles hybrides, registres centralisés ou autres.
3DistillerRéduisez les 6 groupes à 3 raisons fondamentales pour lesquelles un protocole pourrait choisir les UTXO plutôt que les comptes pour structurer son registre.
1CristalliserRédigez 1 phrase expliquant comment l’absence de soldes stockés change la manière dont la double dépense est empêchée dans Bitcoin, par rapport au système bancaire traditionnel.

Vérification des faits

Les dates, les chiffres et les affirmations ont été vérifiés à l’aide des sources publiées listées ci-dessous.

Ouvrir dans l'académie interactive →

EN PT ES ZH JA KO RU DE MS