Introduction
Comme son nom l’indique, une blockchain est constituée par une succession de blocs qui contiennent les transactions des utilisateurs. Ces blocs doivent ensuite être validés par des ordinateurs (appelés “nœuds”) qui participent à la vérification du réseau. La validation du réseau requiert néanmoins une puissance de calcul importante, qui peut varier en fonction du niveau de difficulté imposée par le code informatique de Bitcoin.
En effet, afin de garantir la création de nouveaux blocs toutes les 10 minutes au sein de la blockchain Bitcoin, un algorithme ajuste le niveau de difficulté en fonction de la puissance de calcul sur le réseau (et non en fonction du nombre de mineurs en compétition). C’est ce qu’on appelle la “difficulté de minage”.
Zoom sur le fonctionnement de la blockchain Bitcoin
La blockchain Bitcoin (BTC) est entièrement décentralisée : tous les acteurs du web peuvent télécharger l’historique du registre et valider les blocs qui viennent s’ajouter chronologiquement à la suite des anciens. La circulation des informations se déroule de manière décentralisée et n’importe qui peut y participer. N’importe qui, ou presque.
En effet, la démocratisation du Bitcoin s’est accompagnée d’une augmentation de la puissance de calcul nécessaire pour la validation du réseau (mining). La sécurisation du réseau nécessite aujourd’hui une puissance de calcul informatique telle qu’il n’est plus rentable pour un particulier de miner du Bitcoin avec un ordinateur personnel.
Les mineurs se sont organisés sous la forme de « fermes », dans lesquelles résident des centaines d’ASIC miners* très puissants qui résolvent des problèmes mathématiques. Le mining est donc devenu un secteur très compétitif et professionnel.
Un ASIC (de l’anglais Application-Specific Integrated Circuit) est un circuit intégré propre à une application. Plus simplement c’est une sorte d’ordinateur qui permet de faire une tâche précise et qui a pour but de réaliser des économies d’énergie car il a été optimisé pour cela.
Pour valider un bloc, les mineurs doivent trouver ce qu’on appelle “le nonce”, un nombre pseudo-aléatoire qui donne le droit au mineur de valider et d’ajouter le prochain bloc au réseau. La facilité a trouver ce fameux “nonce” dépend de la difficulté de minage imposé au réseau Bitcoin.
En effet, afin de dissuader des acteurs malveillants de participer au réseau, le créateur du Bitcoin a inséré au sein du code un algorithme, que l’on appelle “algorithme de difficulté”. Cet algorithme est programmé pour maintenir une durée de 10 minutes entre la création de chaque nouveau bloc. Autrement dit, il faut environ 10 minutes à un mineur pour générer le nonce.
Afin de maintenir cette fréquence, l’algorithme se régule automatiquement. Lorsqu’il y a un afflux de mineurs ou d’appareils pour miner, la difficulté pour trouver le nonce augmente. Lorsqu’il y a une baisse du nombre de mineurs, il est plus facile de trouver le nonce.
À noter que la blockchain Ethereum (ETH) fonctionnait de la même façon avant de passer en Proof of Stake.
Comment la difficulté de minage est-elle ajustée concrètement ?
La difficulté de minage du Bitcoin est mise à jour tous les 2 016 blocs (soit environ tous les 14 jours). Le réseau détermine si le temps nécessaire pour extraire un nouveau bloc au cours des deux dernières semaines a augmenté ou baissé. Chaque nœud divise ainsi le temps écoulé depuis les 2016 derniers blocs, et le divise par 20160 qui correspond au “temps cible” (10 min x 2016 = 20 160 min).
Si le résultat est inférieur à 1, cela signifie que les 2016 blocs actuels ont été validés plus vite que les derniers 2016 blocs validés. La cible de difficulté est donc augmentée.
Inversement, si le résultat est supérieur à 1, cela signifie que les mineurs ont eu plus de mal à trouver le nonce. La variation de la cible s’établit alors à la baisse.
Cette cible correspond au nombre de 0 par lesquels doit commencer le hash du bloc en cours. Pour rappel, le hash n’est autre que le résultat de fonctions mathématiques qui permettent de transformer une chaine de caractères de longueur indifférente en une autre chaine de longueur fixe (dans le cas de Bitcoin, en 256 bits, soit 64 caractères en notation hexadécimale complète pour SHA-256).
Ainsi, pour valider un bloc, un mineur doit trouver un hash inférieur à la cible de difficulté, que l’on appelle “nonce” (c’est-à-dire un hash qui débute avec un nombre de 0 inférieur au hash du bloc que le mineur souhaite valider).
Exemple, pour miner le bloc 100000 la cible de difficulté est de 14,484.16.
Dans cet exemple, le premier mineur qui trouve un hash débutant par 11 zéro pourra alors valider les transactions. La cible est ensuite ajustée en fonction du nombre de zéros que contient le hash du bloc considéré. Plus le hash contient de 0 au début, et plus il sera difficile de trouver le nonce.
En septembre 2022, les mineurs doivent trouver des hash commençant par 16 zéro pour pouvoir valider le bloc et obtenir le bloc reward et les frais de transaction en guise de récompenses.
Le hashrate sur Bitcoin
Le hashrate (en français “taux de hachage”) correspond à la puissance cumulée de hachage de tous les mineurs, à un instant T. En d’autres termes, cette information renseigne sur la puissance de calculs cumulée utilisée, en Terahash par seconde (TH/s), dont le réseau Bitcoin dispose pour valider ses transactions.
Le hashrate est relativement volatile. Ses variations dépendent de nombreuses informations extérieures : changement d’environnement politique, disponibilité du matériel permettant de calculer le nonce, coût de l’énergie à la source, coût d’investissement dans le matériel, etc.
Le niveau de hashrate actualisé est notamment disponible sur ce site.
Depuis la création du Bitcoin et des cryptomonnaies, le niveau du hashrate n’a cessé de croître, ce qui est une bonne nouvelle pour la sécurité du réseau. En effet, le hashrate représente également le coût d’opportunité de l’attaque d’une blockchain. Plus le hashrate sera grand, et plus il sera difficile pour un acteur malveillant de corrompre le réseau (car il faudra un plus grand budget pour orchestrer une attaque).
Les avantages de ce système de difficulté
Ce système de niveau de difficulté est singulier à Bitcoin. Ce standard a notamment contribué au succès de la blockchain, puisqu’elle lui profère certains avantages.
D’un point de vue économique, le temps de latence de 10 minutes entre chaque bloc permet d’assurer un rythme de création monétaire stable. Or, la supply d’un actif est une caractéristique essentielle pour tout investisseur. Elle permet de maintenir une confiance en l’actif et favorise une bonne évolution de son prix. C’est notamment ce qui est reproché aux monnaies FIAT (euro et usd), qui peuvent être imprimées en illimité contrairement aux cryptos.
De plus, ce système de difficulté étant ajustable, il s’adapte au niveau de compétences des mineurs, afin de maintenir une incitation économique. Par exemple, si les mineurs ne disposent plus de matériels performants pour des raisons politiques (interdiction d’utilisation des ASICs dans certains pays par exemple), le niveau de difficulté s’ajuste et le pourcentage diminue pour permettre aux mineurs de continuer leur travail.
D’un point de vue technique, cette latence de 10 minutes permise par l’algorithme offre l’opportunité au réseau de diffuser tous les blocs en temps imparti et de se mettre à jour, même dans les zones de la planète où la connexion internet n’est pas toujours très rapide ou stable.
Conclusion
La difficulté de minage et le hashrate sont donc des caractéristiques essentielles du réseau Bitcoin. Grâce à son ajustement automatique, la difficulté de minage permet à la blockchain Bitcoin d’émettre en moyenne un nouveau bloc toutes les 10 minutes. C’est pour cela que l’émission de nouveaux Bitcoins (crypto / token) est programmable dans le temps.
La difficulté de minage permet également au réseau de garantir sa sécurité. Au fur et à mesure de son développement, la blockchain Bitcoin a vu son niveau de difficulté augmenter. Ainsi, pour être en mesure de corrompre le réseau Bitcoin, les acteurs malveillants devront mobiliser des ressources informatiques très puissantes, et donc très couteuses. Le coût d’une attaque sur le réseau Bitcoin est aujourd’hui bien plus élevé que ce qu’elle peut rapporter aux hackers.