Difficulté

Intermédiaire

Qu’est-ce que la difficulté ?

Dans l’univers des cryptomonnaies, le terme « difficulté » désigne l’effort requis pour miner un bloc. Les blockchains de preuve de travail (PoW) appliquent certaines règles qui augmentent ou réduisent cette difficulté en fonction de la puissance de hachage du réseau. Cette stratégie permet de ralentir la production de blocs et de préserver la sécurité du réseau en toutes circonstances.
Bitcoin, par exemple, fixe le temps de bloc à environ dix minutes (le temps moyen nécessaire pour trouver un nouveau bloc). Si les blocs sont trouvés trop rapidement, le réseau augmente la difficulté, abaissant efficacement le seuil de la cible de minage.

À l’inverse, si la découverte de blocs prend trop de temps, la difficulté diminue, et la cible augmente. Cette cible est un nombre qui est réinitialisé périodiquement, et les mineurs doivent trouver un hachage inférieur à celui-ci pour réussir à miner un bloc.

Exemple simplifié de fonctionnement du minage

Voici un exemple simple de minage : supposons qu’avec le terme « binance », nous souhaitions produire un hachage SHA256 avec une sortie numériquement inférieure à une cible spécifique, correspondant approximativement à des hachage dans un format hexadécimal, commençant par un certain nombre de zéros.

Dans une situation de minage réelle, les mineurs essaient de trouver une valeur de hachage inférieure au nombre cible, qui est un très grand nombre représenté au format 256 bits. Il et possible d’illustrer cela en ajoutant de manière itérative des nombres à « binance » (par exemple, « binance1 », « binance2 », « binance3 ») et en hachant le terme jusqu’à obtenir un résultat de hachage qui répond à un critère simplifié, comme débuter uniquement par des zéros.

Lorsque nous atteignons « binance10 », l’opération est réussie. Si nous souhaitons que les deux premiers caractères soient « 0 », il faut continuer à hacher jusqu’à atteindre « binance99 », et pour obtenir trois zéros, il a fallu hacher jusqu’à trouver « binance458 ». Nous avons aussi tenté de parvenir à quatre zéros, mais parmi les vingt premiers millions de nombres, aucun ne produit un tel résultat.

Cet exemple devrait vous donner une idée du fonctionnement du processus de minage, à la différence près que les mineurs cherchent un nombre sous une cible. Plus celle-ci est basse, plus il est difficile de trouver une solution, ce qui explique pourquoi Bitcoin consomme autant de puissance de calcul : les mineurs hachent en effet sans cesse des variations des mêmes informations pour trouver un hachage valide.

Ajustement de la difficulté

Bitcoin ajuste sa difficulté de minage tous les 2 016 blocs environ (approximativement toutes les deux semaines) pour préserver un temps de bloc moyen de 10 minutes. Cet ajustement dépend du temps qu’il a fallu pour miner les 2 016 derniers blocs : s’ils ont été trouvés plus rapidement que prévu, la difficulté augmente pour compliquer le minage, et si le minage a été plus lent que la normale, la difficulté diminue pour le faciliter.

Évolution du matériel de minage

Au vu de la difficulté extrême du minage de bitcoins, les participants ont depuis longtemps abandonné les PC et les cartes graphiques ordinaires au profit de matériel spécialisé, connu sous le nom d’ASIC (circuits intégrés spécifiques aux applications).

Le minage est devenu une activité industrielle dominée par les grandes fermes de minage possédant un équipement spécialisé, reflétant la nature compétitive du réseau et la hausse de la difficulté.

Toutes les cryptomonnaies n’utilisent pas le PoW

Il ne faut pas oublier que toutes les cryptomonnaies n’utilisent pas le PoW, et n’imposent pas de difficulté de minage : par exemple, Ethereum est passé à un mécanisme de consensus de preuve d’enjeu (PoS) qui ne nécessite ni minage, ni ajustements de la difficulté.

Conclusion

La difficulté est un paramètre dynamique qui préserve la stabilité et la sécurité des blockchains de PoW en régulant la quantité de calcul requise pour miner de nouveaux blocs. Elle s’adapte aux évolutions de la puissance de hachage du réseau afin de maintenir un rythme constant de production de blocs et ainsi garantir le fonctionnement stable de la blockchain.