Une des caractéristiques essentielles du système Bitcoin est qu’il n’y aura jamais plus de 21 millions d’unités monétaires en circulation. Cette limite de la masse monétaire est évidemment essentielle, puisqu’elle assure le maintien de la valeur de la monnaie et annihile le phénomène d’inflation que l’on peut observer sur les monnaies étatiques.
Cette caractéristique est inscrite dans le protocole Bitcoin et maintenue par le consensus des utilisateurs. Mais en réalité, nous ne pourrons jamais vraiment atteindre ce nombre. La vraie limite d’émission des bitcoins se trouve en dessous des 21 millions, et cela s’explique par de nombreux facteurs.
Le mécanisme des halvings et les 21 millions
La première raison est liée au fonctionnement des halvings. Tous les 210 000 blocs, le nombre de bitcoins pouvant être créés à chaque bloc est divisé par deux. Ce mécanisme permet d’une part d’assurer la distribution initiale des pièces, et d’autre part, de rémunérer les mineurs.
➤ En savoir plus sur le fonctionnement des halvings sur Bitcoin.
Le dernier halving aura lieu au bloc 6 720 000. Il viendra réduire la subvention de bloc de 2 sats à 1 sat. Arrivé au bloc 6 930 000, nous devrions diviser la subvention de bloc par deux, mais puisque le satoshi est la plus petite unité pouvant circuler sur Bitcoin, alors la création monétaire va simplement s’arrêter. Le dernier bloc qui créera de nouveaux bitcoins sera à la hauteur 6 929 999. Il produira le dernier sat de l’histoire de Bitcoin. Cet événement devrait se produire aux alentours de l’an 2 141.
📌 1 bitcoin = 100 000 000 sats
Mais lorsque nous arriverons à cet évènement, la masse monétaire totale en circulation ne sera que de 20 999 999, 9769 bitcoins. Autrement dit, le code initial de Bitcoin ne prévoit pas exactement une limite de 21 millions. Indépendant de toute action humaine, cette somme ne sera jamais atteinte. Il manquera environ 2 millions de sats pour arriver exactement à 21 millions de bitcoins.
L’étrange bloc de Genèse
Le bloc de Genèse est le tout premier bloc miné par Satoshi Nakamoto le 3 janvier 2009. Il représente le lancement concret de Bitcoin. C’est dans ce bloc n° 0 qu’est embarquée la célèbre citation :
Mais au-delà de toutes ces caractéristiques, le bloc de Genèse est assez étrange dans la façon dont il a été programmé. Comme tous les autres blocs, il était censé donner le droit à son mineur (Nakamoto en l’occurrence), de créer 50 bitcoins en récompense. Bizarrement, le bloc de Genèse est codé de telle façon que les bitcoins générés demeurent non dépensables. Ils sont bien là, on peut même voir la transaction Coinbase qui les génère, mais ils ne font pas partie de l’ensemble des transactions. Du point de vue du protocole, ils sont donc inexistants.
Nous pouvons ainsi enlever ces 50 bitcoins supplémentaires de la limite maximale de la masse monétaire sur Bitcoin. Cela vient nous éloigner encore un peu plus des fameux 21 millions.
Les subventions de bloc non réclamées
Les mineurs peuvent prétendre à une récompense lorsqu’ils trouvent un bloc valide, mais ils doivent eux-mêmes la réclamer. En effet, il est possible pour un mineur gagnant de ne pas générer la récompense coinbase, ou de n’en demander qu’une partie. Une fois le bloc publié, on ne peut plus revenir en arrière, et la limite totale de la masse monétaire est bien imputée des bitcoins qui auraient dû être créés et récupérés par le mineur.
Par exemple, imaginons que Bob est un mineur qui trouve un bloc valide. À ce jour, il est censé pouvoir demander 6,25 bitcoins de subvention en plus des frais de transaction récoltés. Mais imaginons que pour une raison quelconque, Bob ne demande que 3,25 bitcoins au lieu de 6,25. Dans ce cas, les 3 bitcoins oubliés ne seront jamais en circulation, mais ils vont pourtant bien être retirés de la masse monétaire pouvant être créée sur Bitcoin.
Évidemment, cette situation est rarissime. Personne ne fait du minage bénévolement. Et pourtant, certainement à cause d’anomalies techniques, il existe quelques blocs qui n’ont pas généré l’intégralité de leurs récompenses :
Le bloc 124 724, a généré 1 sat en moins par rapport à ce qu’il aurait dû faire ;
Entre les blocs 162 705 et 169 899, de nombreuses non-réclamations sont référencées ;
Le bloc 501 726 n’a rien généré. Ses 12,5 bitcoins de récompenses sont à jamais perdus ;
Enfin, le bloc 526 591 n’a généré que la moitié de la récompense pour 6,25 bitcoins au lieu du double.
➤ Découvrir le fonctionnement de la preuve de travail sur Bitcoin.
Les identifiants dupliqués
Dans les premières versions de Bitcoin, il était possible que les mineurs trouvent 2 fois un même identifiant pour des transactions coinbase différentes. Le problème, c’est qu’il est normalement impossible d’avoir deux transactions différentes sur Bitcoin avec exactement le même identifiant (TXID). Si cela arrive pour une transaction coinbase, alors les bitcoins de la seconde transaction ne sont pas ajoutés à l’UTXO set. Autrement dit, ils ne sont pas dépensables.
Cette erreur est arrivée au moins deux fois dans l’histoire de Bitcoin. On la retrouve dans le bloc 91 880 qui dispose de la même coinbase que le bloc 91 722, et dans le bloc 91 842 qui a la même coinbase que le bloc 91 812. Ce problème a été rectifié en 2012 avec le BIP30, mais en attendant, 100 bitcoins supplémentaires sont à retirer de la masse monétaire totale.
Les scripts insolubles
Le langage utilisé sur Bitcoin pour bloquer des UTXOs est appelé « script ». C’est un ensemble de commandes qui permet de déterminer de quelle manière peuvent être dépensés des bitcoins à l'avenir. Par exemple, si vos bitcoins nécessitent une signature avec une clé privée pour être dépensés, alors vos UTXOs disposent d’un script qui spécifie cela.
Le problème, c’est qu’il peut y avoir des erreurs avec ce langage script lorsque l’on ne suit pas les standards. Dans certains cas, il peut arriver que l’on envoie des bitcoins vers des scripts impossibles à résoudre. Ces bitcoins sont donc à jamais bloqués.
C’est ce qui est arrivé, par exemple, à la plateforme d’échange MTGox en 2011. Ils ont bloqué plus de 2 600 bitcoins dans des scripts ne pouvant pas être satisfaits. Vous pouvez tous les retrouver dans le bloc 150 951, au sein de 23 transactions différentes.
Les OP_RETURNs
L’OP_RETURN est un script qui permet de signaler une sortie de transaction comme étant non dépensable. Il est utilisé pour stocker des informations arbitraires sur Bitcoin puisqu’il permet d’entrer jusqu’à 80 octets de datas sur la blockchain.
Tous les morceaux de bitcoins associés à un OP_RETURN sont ignorés par les nœuds du réseau et ne sont pas ajoutés à l’UTXO set. Ainsi, tous ces bitcoins sont à jamais perdus et peuvent être enlevés de notre décompte de la masse monétaire.
Les pertes au niveau applicatif
Lorsque l’on souhaite évoquer la masse totale en circulation, il peut être tentant de vouloir également écarter tous les bitcoins dépendant de clés privées perdues, intentionnellement ou non. Cependant, ces pertes ne doivent pas être prises en compte. Même si un propriétaire de bitcoins pense avoir perdu sa clé privée, il n’est pas impossible qu’il la retrouve. De plus, il est probable que l’algorithme de signature utilisé puisse être cassé dans un avenir plus ou moins lointain. Je pense évidemment à la menace des ordinateurs quantiques, qui pourront peut-être casser ECDSA grâce à l’algorithme de Shor.
Au-delà du fait que ces bitcoins seront sûrement un jour retrouvés, il est impossible de les quantifier avec précision. On peut bien observer les vieilles adresses dormantes du début des années 2010, mais on ne pourra jamais savoir si leurs propriétaires sont encore en possession de leurs clés privées ou non.
C’est pour ça qu’il faut bien différencier les pertes de bitcoins au niveau protocolaire et au niveau applicatif. Les pertes au niveau protocolaires sont avérées et irrévocables, sauf si l’on fait un hardfork. Nous pouvons donc les considérer comme perdues au sein de la masse monétaire totale de Bitcoin. Ces pertes au niveau protocolaire, ce sont toutes celles que je vous ai décrites dans les parties précédentes. En revanche, les pertes au niveau applicatif ne sont ni prouvables, ni définitives. Il n’est alors pas judicieux de les décompter dans la masse monétaire totale. Parmi ces pertes au niveau applicatif, on inclut toutes les pertes de clés privées et les utilisations d’adresses de brûlage.
Conclusion
Comme vous avez pu le constater, la masse monétaire totale de Bitcoin n’atteindra jamais réellement le seuil des 21 millions d'unités. Cela s'explique d'abord par le mécanisme des halvings, qui ne générera en fin de compte que 20 999 999,9769 bitcoins. Par ailleurs, diverses erreurs humaines et bugs logiciels ont irrévocablement bloqué des milliers d'unités supplémentaires.
Lorsque l’on étudie la masse monétaire en circulation, il ne faut pas prendre en compte les pertes de clés privées. On différencie alors les pertes de bitcoins au niveau protocolaire et les pertes au niveau applicatif.
Pour identifier facilement les pertes au niveau protocolaire et au niveau applicatif, il faut se demander : est-ce que ces bitcoins peuvent être récupérés d’une quelconque manière sans faire de hardfork ? Si la réponse est oui, alors c’est une perte au niveau applicatif, et il ne faut pas la compter.