L’analogie des pièces de monnaie

L’analogie dite des pièces de monnaie est une analogie essentielle pour comprendre le fonctionnement de Bitcoin et briser certaines idées reçues à ce sujet qui mènent souvent à de graves confusions.

Les néophytes ont tendance à se représenter Bitcoin comme un système de balance, comme pour un compte bancaire. La mauvaise manière de se représenter Bitcoin est de croire qu’une adresse Bitcoin fonctionne comme le numéro d’un compte bancaire, et contient plusieurs bitcoins ; lorsque l’on envoie des bitcoins, l’on débite depuis la balance du compte lié à l’adresse et verse sur le compte de l’adresse réceptrice. Tout cela est parfaitement erroné lorsqu’il s’agit de Bitcoin. Essayons donc de s’y retrouver.

Mettons que vous avez reçu des bitcoins depuis trois transactions distinctes, de respectivement 1, 3 et 5 bitcoins. Ce sont les seuls transactions envoyées à votre wallet. Votre wallet contient donc 9 bitcoins. Mais il est également vrai de dire que votre wallet contient trois pièces* : chaque transaction rentrante crée une pièce, indépendamment du montant. Votre wallet contient donc une pièce de 1 bitcoin, une pièce de 3 bitcoins et une pièce de 5 bitcoins. Il est possible de se les imaginer comme des pièces d’argent de taille différente.

Partons du principe que vos transactions n’auront pas de frais de transfert. Si vous voulez envoyer 4 bitcoins à une adresse, vous avez deux options :

  1. Vous pouvez fondre votre pièce de 1 bitcoin et votre pièce de 3 bitcoins pour forger une nouvelle pièce de 4 bitcoins, que vous enverrez.
  2. Vous pouvez fondre la pièce de 5 bitcoins, et forger une pièce de 4 bitcoins et une pièce de 1 bitcoin avec le métal restant. Vous donnerez la pièce de 4 bitcoins et garderez celle de 1 bitcoin qui est votre change.

Ce qu’il est impossible de faire, ce serait de « prendre » 4 bitcoins de la pièce de 5 bitcoins sans l’altérer. Cela ne fonctionne pas comme un compte en banque duquel vous pouvez débiter 4 francs d’un total de 5 francs. Si vous voulez utiliser votre pièce de 5 bitcoins pour payer, vous devrez la détruire intégralement. Quand vous payez avec une pièce de 5 francs un service qui coûte 4 francs, vous ne pouvez pas « casser » une partie de votre pièce : vous êtes obligés de la donner entièrement et de récupérer une nouvelle pièce de 1 franc.

Concernant les frais de transaction, il faut vous les représenter comme des petits bouts de métal qui restent dans la machine qui a permis de fondre vos pièces. Les mineurs du réseau récupèrent ces petits bouts de métal, et forgent une nouvelle pièce à partir de tous les frais d’un bloc de transactions.

Les adresses Bitcoin sont, quant à elle, des coffre-forts qui contiennent plusieurs pièces. Elles conditionnent la manière dont il est possible de retirer les pièces. Quand vous envoyez une pièce à une adresse, vous apposez à cette dernière une restriction ; le plus souvent, cette restriction dit que la personne contrôlant la clé privée associée à cette clé publique pourra dépenser cette pièce. Si vous envoyez plusieurs fois des pièces à une seule adresse – ce qui n‘est pas recommandé – alors il existera plusieurs pièces avec la même restriction ; mais les pièces restent indépendantes les unes des autres et en dépenser une n’affecte pas le reste d’entre elles.

Votre wallet est une collection de ces coffres, chacun de ces coffres étant fermé par une serrure différente (c’est-à-dire par une adresse différente). Dans ces coffres, il y a un certain nombre de pièces, chaque pièce représentant une quantité variable de bitcoins. Quand vous voudrez dépenser des bitcoins, votre wallet choisira aléatoirement ou arbitrairement (cela dépend de votre type de wallet) parmi toutes les pièces existantes en lui lesquelles il décidera de fondre, et ne se souciera pas des adresses en tant que telles — puisqu’il est capable d’ouvrir toutes les serrures.

*Plus précisément, ce sont les outputs d’une transaction qui créent ces pièces, puisqu’il est techniquement possible qu’une seule transaction crée plusieurs pièces pour une seule adresse ou un seul wallet. Le terme de « pièce » est généralement utilisé dans ce sens, mais pour éviter la confusion entre les pièces et les unités de bitcoins, il est préférable d’utiliser la dénomination unspent transaction output (sortie de transactions non-dépensée), qui s’abrège en UTXO.