Glossaire / Minage et consensus
Difficulté de minage
Aussi appelé Difficulté, Difficulté du réseau, Mining difficulty.
- Qu'est-ce que la difficulté de minage ?
- La difficulté de minage est le réglage que le réseau ajuste tous les 2 016 blocs pour que les blocs continuent d'arriver à environ dix minutes d'intervalle, quel que soit le hashrate présent.
La difficulté est un nombre unique qui exprime combien il est plus difficile de trouver un bloc qu'il ne l'était pour Satoshi en janvier 2009. Elle est recalculée tous les 2 016 blocs, soit environ deux semaines, à partir du temps qu'ont réellement pris les 2 016 précédents, et elle ne peut varier que d'un facteur quatre au maximum, dans un sens comme dans l'autre. C'est pourquoi des blocs de dix minutes ont survécu à une multiplication par cent mille milliards de la puissance de minage.
Comment cela fonctionne
La difficulté est un ratio, et le protocole le calcule à partir des horodatages seuls, sans aucune intervention humaine dans la boucle.
En dessous se trouve la cible, un nombre de 256 bits sous lequel le hachage d'un en-tête de bloc doit passer, stocké dans l'en-tête sous la forme d'un champ compact de quatre octets appelé nBits. La difficulté est définie comme la cible de difficulté 1 divisée par la cible actuelle, de sorte qu'une difficulté de 126 billions signifie qu'un en-tête valide est 126 billions de fois plus rare que lors de la première semaine du réseau. Les nœuds ne vérifient en réalité jamais la difficulté ; ils vérifient le hachage de l'en-tête par rapport à la cible. La difficulté existe parce qu'un ratio est lisible et qu'un seuil de 256 bits ne l'est pas.
Le recalcul a lieu à chaque hauteur de bloc qui est un multiple de 2 016. Le nœud prend le temps qu'a réellement pris cette fenêtre, le compare aux 20 160 minutes prévues, et met la cible à l'échelle selon le ratio, avec un plafonnement pour qu'aucun ajustement ne puisse rendre le minage plus de quatre fois plus facile ou plus de quatre fois plus difficile. Il existe un fameux décalage d'une unité dans le calcul : l'intervalle est mesuré entre le premier et le dernier bloc de la fenêtre, qui couvre 2 015 intervalles et non 2 016, si bien que le réseau vise en réalité environ 10,0049 minutes par bloc. Corriger cela serait un hard fork pour une erreur d'arrondi, alors cela reste ainsi.
L'histoire montre le mécanisme à l'œuvre dans les deux sens. La difficulté est restée à 1 pendant presque un an, jusqu'au premier recalcul au bloc 32 256 le 30 décembre 2009, où elle est montée à environ 1,18. Elle a depuis dépassé les 120 billions. La plus forte baisse jamais enregistrée est survenue le 3 juillet 2021, lorsque l'expulsion par la Chine de son industrie de minage a fait chuter la difficulté de 27,94 pour cent en une seule fois, d'environ 19,93 billions à 14,36 billions.
Pourquoi cela compte quand vous achetez du bitcoin
La difficulté est la raison pour laquelle votre retrait est confirmé en minutes plutôt qu'en heures, et une difficulté obsolète est la raison pour laquelle il ne l'est parfois pas.
Le mécanisme ne corrige qu'avec retard. Si une grande part du hashrate s'arrête, les blocs continuent d'arriver à l'ancienne difficulté et prennent plus de dix minutes chacun, jusqu'au recalcul suivant, qui peut intervenir jusqu'à deux semaines plus tard. Pendant ces semaines, les confirmations sont plus lentes, la mempool se vide plus lentement qu'elle ne se remplit, et les taux de frais augmentent parce que le même espace de bloc est mis aux enchères moins souvent. Quiconque a retiré des fonds d'une plateforme d'échange en juillet 2021 l'a ressenti directement. Les blocs de cette fenêtre tournaient en moyenne près de quatorze minutes.
Le cas inverse est plus discret mais plus fréquent. Quand de nouvelles machines arrivent en ligne, les blocs arrivent en moins de dix minutes jusqu'à ce que la difficulté rattrape son retard, si bien que les confirmations sont brièvement moins chères et plus rapides que ne le suggère le calendrier.
Deux choses que la difficulté ne fait pas méritent d'être dites clairement. Elle n'a aucun effet sur le calendrier du halving, qui compte les blocs et non le temps, et ce n'est pas un signal de prix. La difficulté monte parce que des mineurs ont acheté des machines qui étaient rentables des mois plus tôt. Y voir une prévision, c'est regarder dans un rétroviseur.
Le recalcul du 3 juillet 2021
Le recalcul du 3 juillet 2021 est la démonstration la plus claire du mécanisme, parce que le choc a été énorme et que la correction a été automatique.
La répression chinoise a mis hors ligne une grande fraction du parc mondial de machines de minage en quelques semaines au milieu de 2021. Les machines ont été placées dans des conteneurs maritimes à destination du Texas, du Kazakhstan et du Paraguay, et pendant leur transit elles ne calculaient rien. Le réseau ne s'est pas arrêté et n'a demandé d'aide à personne. Il a simplement produit des blocs plus lentement : une réduction de 27,94 pour cent implique que la fenêtre précédente avait tourné en moyenne autour de 13,9 minutes par bloc au lieu de dix. Au moment du recalcul, la difficulté est tombée à 14,36 billions, le rythme de dix minutes est revenu en quelques heures, et les quatre ajustements à la baisse consécutifs de cet été ont ensemble retiré environ 45 pour cent au chiffre. Les ajustements en sens inverse ont effacé toute la baisse au cours des mois suivants, sans que personne en ait décidé.
Difficulté de minage vs ajustement de la difficulté
La difficulté de minage est le nombre ; l'ajustement de la difficulté est l'événement qui le modifie. La difficulté est une valeur qui reste constante pendant toute une époque de 2 016 blocs, de sorte que chaque bloc de cette époque est exactement aussi difficile que tous les autres. L'ajustement est le recalcul qui a lieu à la frontière de l'époque, et c'est ce que les mineurs surveillent, parce que c'est le moment où le revenu par machine change. Dire que la difficulté a augmenté un mardi revient à dire qu'un ajustement a eu lieu ce mardi.
Difficulté de minage vs seuil de la cible
La difficulté de minage est une commodité pour les humains ; la cible est ce que le logiciel applique. La cible est le plafond réel de 256 bits sous lequel le hachage d'un bloc doit passer, et c'est ce qui apparaît dans chaque en-tête de bloc, compressé dans le champ nBits. La difficulté en est dérivée par division et n'apparaît nulle part dans le bloc. Quand un titre dit que la difficulté a augmenté de 5 pour cent, le changement sous-jacent est que la cible a diminué d'environ 5 pour cent, et que chaque mineur sur terre a discrètement besoin d'environ 5 pour cent d'essais en plus par bloc.