Bitcoin est souvent décrit comme une rareté numérique. Mais contrairement à l'or, à la terre ou aux objets de collection, la rareté de Bitcoin n'est pas physique, elle est appliquée par un logiciel. Une question évidente se pose donc : comment savons-nous réellement qu'il n'y aura jamais plus de 21 millions de bitcoins ? S'agit-il simplement d'une promesse ? D'un accord social ? Ou de quelque chose que nous pouvons vérifier nous-mêmes ? Comprendre cette question révèle l'une des propriétés les plus importantes de Bitcoin, et pourquoi l'auto-garde compte : Bitcoin ne repose pas sur la confiance.
Dans la finance traditionnelle, l'offre monétaire dépend en dernier ressort des institutions. Les banques centrales peuvent élargir ou réduire la masse monétaire. Les gouvernements peuvent changer les règles. Les politiques évoluent avec le temps. Bitcoin fonctionne différemment. Bitcoin est un système distribué dans lequel chaque participant vérifie lui-même les règles. Aucune autorité ne décide du nombre de bitcoins existants. À la place, tous les nœuds appliquent les mêmes règles de consensus.
L'une de ces règles régit la manière dont de nouveaux bitcoins sont introduits : la subvention de bloc. De nouveaux bitcoins sont créés exclusivement lorsque les mineurs produisent des blocs valides, chaque nouveau bloc contenant une récompense fixe qui suit un calendrier prévisible. Comme chaque nœud vérifie cette règle de manière indépendante, toute tentative d'inflation invalide est automatiquement rejetée par le réseau. Aucun administrateur unique n'est capable de contourner ce processus.

Décomposition de l'expression mathématique de la quantité totale de bitcoins
Prévisible par conception
Au lancement de Bitcoin en 2009, les mineurs recevaient 50 BTC par bloc. Mais cette récompense ne reste pas constante. Tous les 210 000 blocs, soit environ tous les quatre ans, la récompense de bloc est divisée par deux. Cet événement est connu sous le nom de halving.

L'offre totale d'un peu moins de 21 millions se calcule en additionnant l'émission sur l'ensemble des 32 périodes de halving. Pour chaque période, la récompense est calculée à partir de la récompense initiale de 50 BTC, divisée par 2^i, où i représente le nombre de halvings déjà survenus. Comme chaque période compte 210 000 blocs, le total de coins pour une période donnée est de 210 000 × (50 / 2^i). Cela signifie que la première période (i=0) ajoute 210 000 × 50 BTC, la deuxième période (i=1) ajoute 210 000 × 25 BTC, et ainsi de suite. La séquence ressemble à ceci :
- 0 halving : 50 BTC par bloc - 10 500 000 BTC émis pendant cette période
- 1 halving : 25 BTC par bloc - 5 250 000 BTC émis pendant cette période
- 2 halving : 12,5 BTC par bloc - 2 625 000 BTC émis pendant cette période
- 3 halving : 6,25 BTC par bloc - 1 312 500 BTC émis pendant cette période
- 4 halving : 3,125 BTC par bloc - 656 250 BTC émis pendant cette période (nous sommes ici, au passage)
- …et ainsi de suite
Cette réduction géométrique signifie que de moins en moins de nouveaux bitcoins sont créés avec le temps, en se rapprochant asymptotiquement de zéro. Les dernières fractions de bitcoin seront minées vers l'an 2140, mais l'idée importante est la suivante : la limite des 21 millions découle naturellement de la formule du halving elle-même, tout en n'étant jamais tout à fait atteinte, car les mathématiques font que nous sommes toujours « à mi-chemin ».
Vous n'avez pas besoin de faire confiance aux mathématiques, vous pouvez les exécuter, et vous pouvez vérifier vous-même tout le code qui les applique, et pas seulement cela, vous pouvez aussi faire tourner un nœud Bitcoin pour calculer l'émission par vous-même.
Faire respecter les mathématiques
La véritable force de cette formule vérifiable réside dans son application décentralisée. Chaque participant qui exécute un nœud Bitcoin agit comme un auditeur indépendant de la politique monétaire. Lorsqu'un mineur tente d'inclure un bloc qui viole les règles d'émission strictes, par exemple en réclamant une subvention de bloc supérieure à celle autorisée, ce bloc est immédiatement reconnu comme invalide par chaque nœud. Comme ces nœuds rejettent le bloc invalide et refusent de le relayer, la tentative d'inflation échoue et le bloc ne peut jamais faire partie de la blockchain canonique.
Ce processus garantit que le plafond d'offre est maintenu uniquement par une vérification mutuelle et technique. L'application de la formule monétaire vérifiable de Bitcoin est rendue possible par la décentralisation. Le plafond d'offre est préservé parce que chaque nœud complet Bitcoin agit comme un auditeur indépendant de la politique monétaire. Si un mineur tente de créer un bloc qui enfreint les règles d'émission strictes, par exemple en réclamant une subvention de bloc supérieure au montant autorisé, le réseau de nœuds identifie instantanément le bloc comme invalide. Par conséquent, tous les nœuds rejettent le bloc invalide, refusent de le relayer et empêchent que ce bloc inflationniste ne soit ajouté à la blockchain officielle. Ce mécanisme garantit que la limite d'offre est maintenue uniquement grâce à un processus de vérification mutuelle et technique à l'échelle du réseau.
Vérifier le code
Maintenant que nous savons comment les mathématiques fonctionnent et que les nœuds du réseau appliquent ces règles, l'étape logique suivante consiste à vérifier le code qui les applique lui-même. Sur le dépôt GitHub de Bitcoin Core, l'implémentation de référence de Bitcoin, nous pouvons trouver tout le code source du client ainsi que les bibliothèques de consensus. Nous utiliserons la dernière version stable au moment de la rédaction, la 31.0. Commençons par src/validation.cpp, car c'est là que l'essentiel se passe, comme vous pouvez le voir dans le prochain bloc de code, qui va de la ligne 1835 à la ligne 1848.

Ce bloc se compose de deux sections qui définissent la récompense, la première calcule à quel halving nous en sommes actuellement puis force la récompense de bloc à 0 après 64 halvings. int halvings = nHeight / consensusParams.nSubsidyHalvingInterval calcule le halving actuel en divisant la hauteur de bloc courante par l'intervalle de halving constant, les variables utilisées dans ce calcul sont : nHeight : le nombre actuel de blocs dans la blockchain (la hauteur de bloc). consensusParams.nSubsidyHalvingInterval : le paramètre statique défini à 210 000 blocs comme défini dans /src/kernel/chainparams.cpp, qui indique le nombre de blocs qui doivent passer avant qu'un halving n'ait lieu. Et int halvings : le résultat entier de cette division, arrondi à l'entier inférieur, qui représente la période de halving en cours. Au moment où j'écris ces lignes, la hauteur de bloc est de 946227, alors utilisons-la dans notre prochain exemple pour vous aider à visualiser cette fonction :
946227 / 210000 = 4,505842857
Ce résultat est tronqué à 4, et non arrondi à 5 comme dans un arrondi classique.
Cela donne : int halvings = 4
Juste après, nous trouvons if (halvings >= 64); return 0; ce qui peut paraître étrange puisque Bitcoin est censé avoir 32 halvings. Il s'agit simplement d'un correctif pour un problème appelé dépassement de mémoire, qui ferait revenir les halvings à 0 après 64 occurrences, ce qui conduirait en pratique le protocole à émettre 21 millions de bitcoins supplémentaires sur 64 halvings de plus, puis encore 21 millions de bitcoins sur 64 halvings suivants, indéfiniment, jusqu'à la fin des temps, si ce problème n'était pas corrigé.
Nous avons ensuite CAmount nSubsidy = 50 * COIN, ce qui correspond à la formule 50 / 2^i de la section précédente. COIN est défini comme 100000000 dans le fichier /src/consensus/amount.h, soit le nombre de satoshis, la plus petite unité divisible d'un bitcoin, dans un bitcoin. La valeur CAmount nSubsidy, qui représente la récompense de bloc initiale de 5 milliards de satoshis (50 * COIN), soit 50 BTC, a une représentation binaire sur 33 bits : 100101010000001011111001000000000. Cette longueur de 33 bits est importante, car le code utilise cette structure pour effectuer efficacement un décalage binaire lors de la division pendant chaque événement de halving.
À chaque halving, nSubsidy >>= halvings; return nSubsidy; prend 100101010000001011111001000000000 et le décale d'un chiffre vers la droite, supprimant en pratique son dernier chiffre, ce qui, en binaire, revient, comme le nom de l'événement l'indique, à le diviser par deux.

Si vous avez consulté les liens fournis dans cet explicatif, vous avez peut-être remarqué que ce morceau de code existe dans /src/consensus/amount.h :

Vous pourriez vous dire : « Voilà, c'est donc là que se trouve la limite des 21 millions de coins » et vous auriez en partie raison, mais ce n'est pas tout à fait exact. Pourquoi ? Parce qu'il ne s'agit pas de la règle principale qui fixe la limite, mais d'un contrôle de cohérence. Ce bloc de code empêche l'offre de dépasser 2,1 billiards de satoshis, soit 21 millions de bitcoins, un nombre que nous savons ne jamais atteindre, au cas où quelqu'un découvrirait un bug permettant de créer des coins à partir de rien, comme ce fut le cas avec le bug de dépassement de valeur de 2010 qui a permis à un attaquant d'imprimer 184 milliards de bitcoins, ou la vulnérabilité des entrées dupliquées de 2018 qui permettait à un attaquant de dépenser deux fois le même coin.
Les règles pourraient-elles un jour changer ?
La question évidente qui suit est de savoir si le code, puisqu'il s'agit d'un logiciel, pourrait simplement être mis à jour pour augmenter l'offre de coins. Bien que n'importe qui soit techniquement libre de modifier le logiciel open source, en pratique, changer la politique monétaire de Bitcoin est extraordinairement difficile. Les règles de consensus ne changent que si l'immense majorité des utilisateurs les adopte volontairement. L'histoire prouve cette dynamique : même de petits ajustements du protocole demandent des années de coordination. Un changement inflationniste pourrait fondamentalement affaiblir la proposition de valeur de Bitcoin, ce qui signifie que le marché refuserait probablement d'exécuter la nouvelle version. Le plafond d'offre est donc appliqué par le consensus entre les participants du marché.
Conclusion
L'offre fixe de Bitcoin n'est pas garantie par un décret gouvernemental, des contraintes physiques ou la confiance envers des institutions. Sa garantie repose entièrement sur trois piliers : un calendrier d'émission transparent, une vérification indépendante par chaque nœud et la capacité des utilisateurs à choisir quelles règles ils acceptent. Contrairement aux systèmes hérités qui reposent sur les décisions d'autorités centrales, la politique de Bitcoin est intégrée directement dans un réseau de participants qui se vérifient mutuellement. Il en résulte un système monétaire dont l'offre peut être auditée par n'importe qui, à n'importe quel moment, ce qui garantit que l'offre est limitée, mais surtout que les utilisateurs n'ont pas besoin de faire confiance au fait que cette règle restera vraie : ils peuvent la vérifier eux-mêmes.
FAQ
Comment la limite des 21 millions de bitcoins est-elle appliquée ?
La limite des 21 millions est appliquée par les règles de consensus de Bitcoin, que chaque nœud complet vérifie de manière indépendante. De nouveaux bitcoins ne peuvent être créés qu'au travers de la subvention de bloc, et cette subvention suit un calendrier fixe de halving. Si un mineur essaie de créer plus de bitcoins qu'autorisé, son bloc est rejeté par le réseau comme invalide.
Le plafond d'offre de Bitcoin peut-il être modifié ?
En théorie, n'importe qui peut modifier le code open source de Bitcoin. En pratique, changer le plafond d'offre demanderait une adoption large par les utilisateurs, les entreprises et les opérateurs de nœuds de tout le réseau. Comme l'offre fixe de Bitcoin fait partie de ses principales propositions de valeur, un changement inflationniste serait probablement rejeté par le marché.
Pourquoi vérifier le plafond d'offre est-il important pour l'auto-garde ?
Vérifier le plafond d'offre est important parce que Bitcoin est conçu pour minimiser la confiance. Au lieu de s'appuyer sur des institutions ou des promesses, les utilisateurs peuvent vérifier eux-mêmes les règles, le code et la blockchain. Faire tourner son propre nœud est la manière la plus forte de vérifier que la politique monétaire de Bitcoin est bien appliquée comme prévu.
Vous n'avez pas encore de BitBox ?
Protéger vos cryptos n'a pas besoin d'être compliqué. Les portefeuilles matériels BitBox stockent les clés privées de vos cryptomonnaies hors ligne. Vous pouvez donc gérer vos coins en toute sécurité.
La BitBox02 Nova et la BitBox02 existent aussi en édition Bitcoin-only, avec un firmware résolument ciblé : moins de code signifie moins de surface d'attaque, ce qui améliore encore votre sécurité lorsque vous stockez uniquement du bitcoin.
Achetez la BitBox02 Nova ou procurez-vous une BitBox02 dans notre boutique !

Shift Crypto est une société privée basée à Zurich, en Suisse. Notre équipe de contributeurs Bitcoin, d'experts crypto et d'ingénieurs sécurité conçoit des produits qui permettent à nos clients de progresser sereinement, du niveau débutant à la maîtrise de la gestion des cryptomonnaies. BitBox02, notre hardware wallet de deuxième génération, permet aux utilisateurs de stocker, protéger et utiliser facilement du Bitcoin et d'autres cryptomonnaies, avec l'aide de son logiciel compagnon, BitBoxApp !
This post was translated with the help of AI