Bitcoin transaction illustration

Chapitre 4

Comment fonctionne une transaction Bitcoin

Découvrez le fonctionnement d'un transfert Bitcoin, ce que sont les inputs/outputs, les UTXO, le change, et comment les frais sont calculés.

Clock icon14 minutes|Pascal Hügli|Publié le 18.05.2024|Mis à jour le 13.06.2024

Table des matières

  1. Introduction
  2. Les entrées et les sorties
  3. Un UTXO est ce qui se dépense
  4. Le concept de change
  5. Signer une transaction
  6. Diffusion et confirmations
  7. Comment fonctionnent les frais Bitcoin
  8. Comment lire un explorateur de bloc Bitcoin
  9. FAQ

Introduction

Les transactions Bitcoin sont de toute évidence un élément crucial du système Bitcoin, puisqu'elles sont ce qu'il traite et enregistre. Quiconque peut initier une transaction, qui est ensuite diffusée sur le réseau, validée par les full nodes, et enfin ajoutée à la blockchain Bitcoin, qui n'est rien d'autre qu'un registre de transactions décentralisé.

Rappelez-vous, une blockchain est un registre de qui possède quoi, et quand. Une transaction indique donc au réseau que le propriétaire d'une valeur donnée de Bitcoin a autorisé le transfert de cette valeur vers un autre propriétaire. Ce transfert d'unités de Bitcoin d'une adresse à une autre crée ainsi une trace immuable de propriété.

Techniquement parlant, il n'y a pas de bitcoins. Bien que l'on parle habituellement d'unités de Bitcoin ou de bitcoins pour rendre plus concret ce qu'il se passe lorsqu'on fait une transaction, en réalité ni l'un ni l'autre n'existe.

Bitcoin est exclusivement basé sur la technologie de registre distribué, que nous avons expliquée en détail ici. Ce registre enregistre continuellement l'historique des transactions Bitcoin en gardant la trace des entrées et sorties de ces transactions.

En conséquence, n'importe qui peut consulter n'importe quelle transaction qui a été enregistrée sur la blockchain Bitcoin, et obtenir ainsi une vue d'ensemble de tous les propriétaires de bitcoins.

Les entrées et les sorties

Une transaction Bitcoin est composée de deux éléments principaux : les entrées et les sorties.

Les entrées représentent les débits d'une adresse Bitcoin, ou en d'autres termes le montant de BTC qui est envoyé dans une transaction.

Les sorties peuvent être vues comme des crédits sur une adresse Bitcoin, ou en d'autres termes le montant de BTC qui est reçu dans une transaction.

Bitcoin entrées et sorties

Pour faire une transaction, des entrées sont évidemment nécessaires afin de créer des sorties. Mais comme Bitcoin est une chaîne de transaction, les entrées d'une transaction sont toujours les sorties d'une transaction précédente.

En pratique, une entrée prend des sorties dépensables d'une ou plusieurs transactions passées afin de pouvoir effectuer une nouvelle transaction, créant ainsi de nouvelles sorties qui pourront à nouveau être dépensées dans des transactions futures.

Un UTXO est ce qui se dépense

Ces sorties dépensables provenant de transactions passées sont appelées UTXO, pour "unspent transaction output" (sortie de transaction non-dépensée).

Alors que les entrées d'une transaction donnée sont les UTXOs d'une ou plusieurs transactions passées, les sorties de cette transaction deviendront à leur tour des UTXOs pour son destinataire.

On peut donc dire que les UTXOs sont les éléments fondamentaux des transactions Bitcoin.

Les UTXOs étant non dépensés par définition, ils sont donc disponibles pour servir d'entrées pour une transaction future. Au final, on peut dire que les unités de Bitcoin sont montrées dans un UTXO. En conséquence, le "solde" de Bitcoin d'un utilisateur est la somme de tous les UTXOs de son wallet.

UTXO Bitcoin

Afin de connaître les UTXOs qu'un utilisateur donné peut dépenser, son wallet scanne l'ensemble des UTXOs de la blockchain Bitcoin, qui sont donc tous les UTXOs connus du réseau. Si le wallet trouve suffisamment d'UTXOs qui s'additionnent pour atteindre le montant que l'utilisateur souhaite envoyer, alors il pourra créer une transaction avec ces UTXOs comme entrées.

Lorsqu'un UTXO est dépensé, la transaction Bitcoin qui transfère cet UTXO s'assure qu'il devienne à nouveau dépensable par le destinataire.

Le concept de change

Étonnamment, dépenser des bitcoins fonctionne de façon très similaire aux transactions en cash. Si vous achetez quelque chose qui coûte 9 euros avec un billet de 10 euros, vous recevrez 1 euro de change en retour.

Bitcoin fonctionne de la même façon : si le total des UTXOs utilisés comme entrées pour une transaction est supérieur au montant à transférer, l'expéditeur recevra la différence en retour en tant que change.

À cause du design du Bitcoin, un UTXO doit être consommé en entier lorsque utilisé, il ne peut pas être fractionné. C'est pourquoi du change doit être généré dans les sorties d'une transaction.

Par exemple : si vous avez pour 0.6 BTC d'UTXOs mais ne voulez envoyer que 0.5 BTC à quelqu'un d'autre, la transaction consommera 0.6 BTC mais vous renverra 0.1 BTC.

Change Bitcoin

Ce mécanisme en a effrayé plus d'un en voyant la plupart de son solde Bitcoin disparaître en faisant une transaction, seulement pour voir le bon montant s'afficher un peu plus tard.

Cela se produit précisément parce que suffisamment d'UTXOs doivent être envoyés pour couvrir la totalité du montant souhaité de la transaction, la différence étant ensuite rendue.

Tout cela se produisant en une seule transaction, qui prend donc du temps à être traitée et confirmée par la blockchain Bitcoin, cela explique pourquoi vous ne voyez pas votre change revenir immédiatement sur votre adresse : il doit d'abord être vérifié par le réseau avant de réapparaître.

Signer une transaction

Lorsque vous envoyez du Bitcoin à quelqu'un d'autre, la transaction doit être signée afin d'être approuvée. Cela signifie que les UTXOs dont la transaction a besoin d'utiliser doivent être «débloqués» par la clé privée qui les contrôle. C'est ce qui se produit lorsque vous cliquez sur le bouton «Envoyer» de votre wallet Bitcoin : l'application utilise votre clé privée pour générer une signature pour la transaction.

Ainsi, chaque transaction contient la signature utilisée pour l'approuver, signature qui est donc la preuve de propriété pour le montant de Bitcoin dépensé dans la transaction.

Cette signature peut être vérifiée de façon indépendante par quiconque lis le réseau Bitcoin. Dans un certain sens, on peut dire que dépenser du Bitcoin revient à signer une transaction Bitcoin, qui transférera un montant de Bitcoin d'une adresse à une autre.

Ce concept de signature est la façon dont chaque propriétaire de Bitcoin peut prouver par cryptographie qu'il possède un certain montant de Bitcoin sur une adresse donnée.

À noter qu'une signature ne requiert pas forcément le transfert de bitcoins, elle peut aussi être utilisée pour signer un message. Certains wallets Bitcoin fournisse une interface pour ce faire, permettant ainsi d'entrer un bout de texte, le faire passer dans une formule mathématique avec la clé privée, et recevoir en retour une signature (une suite de chiffres et de lettres) qui confirme de façon irréfutable que vous contrôlez une adresse.

Diffusion et confirmations

Maintenant que vous avez signé une transaction et initié le transfert de bitcoins vers une autre adresse, regardons ce qu'il se passe ensuite.

Tout d'abord, la transaction est diffusée aux full nodes autour de vous, qui relaient ensuite la transaction à d'autres full nodes jusqu'à ce que le réseau entier ait été atteint, comme la propagation d'une onde dans l'eau.

Une fois la transaction reçue, les full nodes commencent leur travail de vérifications. Ils s'assurent que vous ayez un solde suffisant pour réaliser la transaction, ils vérifient votre signature et regardent si vous essayez d'effectuer une double dépense. Ils vérifient enfin que la transaction respecte toutes les autres règles du réseau.

Une fois que la transaction a passé cette étape de vérification, elle est ajoutée à la mempool (une espèce de salle d'attente pour transactions non-confirmées) où elle attendra d'être prise par un mineur qui l'inclura dans un bloc.

Une fois la transaction ajoutée à un bloc qui a été miné avec succès, le nouveau bloc est ensuite propagé au reste du réseau et vérifié par les full nodes. Une fois fait, la transaction est enfin confirmée !

Étapes d'une transaction Bitcoin

Ajouter un bloc à la blockchain requiert de résoudre un problème mathématique hautement complexe, et l'annuler est également difficile. Logiquement, plus on cherche à annuler de blocs plus la difficulté et la puissance de calcul requise augmentent de façon exponentielle. C'est pourquoi plus il y a de blocs qui passent après celui de votre transaction, plus celle-ci sera sécurisée.

Ainsi, chaque bloc miné après votre transaction lui confère 1 confirmation supplémentaire. C'est pourquoi si vous regardez votre transaction sur un explorateur de blocs, vous verrez son nombre de confirmations augmenter avec du temps.

Les confirmations sont utilisées par de nombreuses applications pour déterminer si elles considèrent votre transaction comme suffisamment certaine ou non. Par exemple, si vous payez quelque chose avec des bitcoins, l'app de paiement ne considérer votre paiement réussi qu'une fois un certain nombre de confirmations atteint.

Comment fonctionnent les frais Bitcoin

Parce que Bitcoin n'a pas d'entité centrale qui traite les transactions et maintienne son registre, il doit y avoir une incitation pour que des gens le fasse. Comme vous le savez depuis notre chapitre précédent sur le réseau Bitcoin, ce travail est effectué par les mineurs. Bien qu'ils soient payés avec les récompenses de bloc, ils sont également payés avec les frais de transaction.

Un frais de transaction est payé par l'expéditeur d'une transaction Bitcoin à son mineur. Le montant de ce frais indique aux mineurs combien l'expéditeur est prêt à payer pour qu'ils traitent sa transaction.

Étant donné que mineur est une activité à but lucratif, les mineurs choisissent en principe les transactions en attente dans la mempool par ordre décroissant, en prenant les frais les plus élevés en premier. En théorie, il est possible de proposer une transaction à frais zéro au réseau, mais en pratique elle ne serait probablement jamais traitée et resterait en attente indéfiniment.

Les frais des transactions Bitcoin sont donc un marché régi par l'offre et la demande. L'offre est la capacité actuelle des mineurs à traiter des transactions, et la demande est le nombre de transactions que les utilisateurs soumettent au réseau. Le coût d'une transaction Bitcoin est donc toujours en train d'évoluer en fonction du niveau actuel d'occupation du réseau.

Lorsque vous faites une transaction, votre wallet suggère automatiquement un montant de frais qui devrait faire en sorte que votre transaction soit traitée en moins d'une heure, voire en moins de 30 minutes. Bien entendu, en fonction de l'urgence de la transaction l'utilisateur peut toujours choisir manuellement un montant de frais plus élevé ou plus faible. Le plus élevé est le frais, le plus de change aura la transaction d'être choisie en premier par les mineurs du prochain bloc.

Pour consulter le niveau actuel des frais de transaction sur le réseau Bitcoin, allez sur mempool.space et regardez la section "Frais de transaction" :

Frais de transaction Bitcoin sur mempool.space

Les coûts que vous y verrez sont affichés en sat/vB, ce qui signifie combien de satoshis (1 BTC = 100,000,000 satoshis) sont requis pour payer un byte de donnée consommée par la transaction.

Par exemple, si une transaction pesant 100 bytes est soumise avec un frais de 20 sat/vB, le coût total sera 100 x 20 = 2'000 satoshis, soit 0.00002 BTC.

Le nombre de bytes consommés par une transaction dépend de plusieurs facteurs. Typiquement, le nombre d'UTXOs requis pour faire la transaction influencera grandement son coût. Une transaction qui utilise 2 UTXOs et une transaction qui utilise 100 UTXOs auront un frais de transaction radicalement différent. C'est pourquoi une transaction de 10 bitcoins peut potentiellement coûter beaucoup moins cher qu'une transaction de 2 bitcoins.

Comment lire un explorateur de bloc Bitcoin

Les explorateurs de bloc sont les navigateurs de la blockchain. Ils vous permettent de voir en temps réel les transactions qui se déroulent sur le réseau, ainsi que le détail de chaque adresse. Le plus utilisé aujourd'hui pour Bitcoin est mempool.space, que nous avons déjà mentionné à plusieurs reprises dans cet article.

Être capable de le lire est important, car cela vous permettra de vérifier de façon autonome le solde de votre wallet, son historique de transactions et le détail de ce qui s'est passé pour chacune d'entre elles.

Pour cet exemple, nous avons pris au hasard une transaction de mempool.space, voici à quoi cela ressemble :

Exemple d'une transaction sur mempool.space

Transaction

Dans la section «Transaction», vous voyez d'abord le hash de la transaction (son identifiant unique) et son nombre de confirmations. Elle vous montre aussi le «timestamp», qui est l'heure et la date à laquelle la transaction a été minée, quel mineur a traité le bloc dans lequel elle a été incluse, et le détail du frais payé pour la transaction.

Flux

Ce diagramme vous permet de visualiser les entrées et sorties de la transaction. Les branches sur la gauche montrent toutes les entrées, et celles sur la droite montrent trois sorties : le frais de transaction (la branche la plus petite), le change (celle du milieu) et le montant qui a été transféré (la plus grosse branche).

Entrées & Sorties

Ce tableau vous montre sur la gauche toutes les entrées de la transaction, qui sont toutes venues de la même adresse (ce n'est pas forcément toujours le cas). Sur la gauche, vous voyez le change qui a été retourné à la même adresse, et ensuite le montant principal (0.1 BTC) qui a été transféré à une autre adresse.

Détails

L'intérêt principal de cette section est de voir combien de données ont été consommées par la transaction, ce qui a été utilisé pour déterminer son frais.


FAQ

Qu'est-ce qu'un UTXO?

Un UTXO, qui signifie "unspent transaction output" (sortie de transaction non-dépensée), sont les montants de bitcoins qu'une adresse a reçus et qui sont disponibles pour être dépensés. Le solde d'un wallet Bitcoin est donc la somme de tous ses UTXOs.

Pourquoi mon solde de Bitcoin a disparu après une transaction?

Pour envoyer des bitcoins, la transaction utilise autant d'UTXO présents sur votre adresse que nécessaire pour atteindre le montant désiré. Étant donné qu'un UTXO doit être utilisé en entier, il est fréquent d'utiliser plus que le montant souhaité. La différence est ensuite retournée sur le wallet expéditeur en tant que change dès que la transaction a été confirmée par le réseau.

Comment envoyer du Bitcoin?

L'envoi et la réception de bitcoins se fait au moyen d'un wallet Bitcoin, tel que Bridge Wallet. Vous trouverez plus d'informations à leur sujet dans notre article sur les différents types de wallets crypto.

Les wallets Bitcoin ont donc un bouton pour envoyer et un pour recevoir. Lorsque vous cliquez sur le bouton «Envoyer», le wallet vous demander d'entrer l'adresse du destinataire en la copiant ou en scannant son code QR. Il vous demandera aussi le montant à envoyer, et si votre solde est suffisant vous pourrez confirmer et envoyer la transaction.

La plupart des wallets ont des paramètres avancés qui vous permettent de modifier manuellement le frais que vous voulez payer pour la transaction. Si vous ne savez pas quel montant mettre, conservez le montant par défaut proposé par le wallet.

Comment recevoir du Bitcoin?

Lorsque vous cliquez sur le bouton «Recevoir» de votre wallet Bitcoin, il vous montrera l'adresse Bitcoin que vous pouvez partager aux personnes souhaitant vous envoyez des bitcoins.

Vous pouvez partager l'adresse telle quelle sous forme d'une chaîne de 26 à 35 caractères, ou partager l'adresse sous forme de code QR.

Combien de temps prend une transaction Bitcoin?

En moyenne, un bloc de transactions Bitcoin est miné toutes les 10 minutes. Si votre transaction a un frais suffisamment élevé pour être choisie par les mineurs du prochain bloc, elle ne prendra donc que quelques minutes. Si le frais est trop bas, elle peut prendre plusieurs heures voire plusieurs jours.

Comment accélérer une transaction Bitcoin?

Si une transaction est en attente depuis trop longtemps, vous pouvez essayer de l'accélérer en augmentant son frais avec la technique Child Pays For Parent (CPFP). Pour ce faire, faites une nouvelle transaction avec un montant qu'il reste sur votre wallet mais avec un frais beaucoup plus élevé (vous pouvez l'estimer ici) puis vous l'envoyer à vous-même. Veuillez noter que cela fonctionnera dans certains cas, mais pas toujours.

Comment annuler une transaction Bitcoin?

Il n'est pas possible d'annuler une transaction Bitcoin qui n'a pas été confirmée. Vous ne pouvez pas non plus annuler une transaction non-confirmée, mais vous pouvez essayer de la remplacer par une transaction au frais plus élevé afin de l'accélérer.

Comment vérifier une transaction Bitcoin?

Allez sur mempool.space et cherchez la transaction en entrant son ID dans le champ de recherche, ou en entrant l'adresse de l'expéditeur ou du destinataire.

Combien de transactions Bitcoin y a-t-il dans un bloc?

La taille d'un bloc Bitcoin est limitée à 1 MB de données. Le nombre de transactions qu'il contient dépend donc de leur poids. Aujourd'hui, les bloc Bitcoin contiennent la plupart du temps entre 2'000 et 4'000 transactions.

Pascal Hügli photo

À propos de l'auteur

Pascal Hügli

Pascal est conférencier et modérateur à la Haute École d'économie de Zürich (HWZ). Il conseille aussi la banque Maerki Baumann en qualité de gestionnaire d'investissement en crypto-actifs. Il est aussi analyste pour la newsletter en allemand Insight DeFi, pour laquelle il écrit du contenu qualitatif et succinct à destination du grand public sur les événements et opportunités du monde décentralisé de Bitcoin et des cryptos. Il est également l'auteur du livre Ignore at your own risk: The new decentralized world of Bitcoin and blockchain.

Ne ratez pas notre prochain guide !

Abonnez-vous à notre newsletter et recevez nos prochains guides directement dans votre boîte mail.

S'abonner