Qu’est-ce que le minage de crypto monnaie ?
En pratique, le minage consiste à créer de nouveaux blocs, à les remplir d’informations liés à des transactions / opérations puis à les ajouter à la blockchain pour que tout le monde puisse les voir. Le mineur de blocs reçoit en général une récompense en crypto monnaie pour avoir effectué ce travail afin de l’inciter financièrement à réaliser cette tâche.
Nous allons principalement traiter le cas du Bitcoin et sa méthode de minage dans cet article.
Cependant, pour ajouter un bloc, les mineurs doivent résoudre une « énigme cryptographique » ou, en termes plus techniques, ils doivent trouver un hachage valide du bloc.
Le hachage d’un bloc Bitcoin
Pour faire simple, le hachage est réalisé en prenant toutes les informations contenues dans le bloc, puis en les faisant passer dans une fonction de hachage (SHA256 dans le cas de BTC) jusqu’à ce qu’il renvoie une sortie en hexadécimal d’exactement 64 caractères (en SHA256).
La fonction de hachage utilisée peut être différente en fonction de la crypto monnaie, par exemple pour le Litecoin et le Dogecoin la fonction de hachage utilisée est le Scrypt et non pas le SHA256.
Si vous modifiez l’une des données contenues dans le bloc, ne serait qu’une seule lettre ou un chiffre, le hash du bloc en sortie sera radicalement différent. Mais si rien n’est modifié, il renverra toujours la même sortie (hash). Le hash d’un bloc agit comme sa signature.
Mais comment obtenir des hachages différents si on ne peut pas modifier les informations liées aux transactions dans le bloc ? Eh bien, il existe un autre composant dans le bloc qui est pris en compte lors du hachage. Ce composant, que vous pouvez modifier, s’appelle le “nonce” ou nombre aléatoire.
Mais comment savoir si le hachage est valide ? C’est là qu’intervient la cible de difficulté. La cible délimite une valeur seuil et pour qu’un hachage soit valide, il doit être inférieur à la cible.
Les mineurs testent une multitude de hachages en faisant varier le “nonce” jusqu’à ce que le hash produit soit inférieur à la cible. Comme les valeurs de hachage sont aléatoires, plus la cible est basse, plus il est difficile de trouver un hachage valide pour le bloc en question, comme pour un jeu de hasard.
Au 1er avril 2023, il est nécessaire d’avoir environ 19 zéros en début de hash.
Exemple sur le bloc 783463 : 000000000000000000031e24addd56168920fcd3f669398bd7ebcd1264f80825
Plus la difficulté cible va augmenter, plus cela deviendra long et difficile pour un même ordinateur ou ASIC de tenter de trouver un hash valide.
La difficulté de minage
La difficulté de minage fait simplement référence à la difficulté et au temps qu’il faut pour trouver un hachage valide pour le bloc. Il est cependant intéressant de se demander pourquoi le minage doit être difficile dans un premier lieu ?
L’objectif d’une blockchain est de créer un consensus entre plusieurs individus d’un réseau, c’est-à-dire de s’accorder sur une vérité unique. Pour ce faire, les mineurs prennent la plus longue chaîne valide du réseau, déterminée par la quantité de travail (temps passé à deviner un hash valide) qui y a été consacrée, et l’acceptent comme chaîne principale sur laquelle s’appuyer.
Cette difficulté garantit la sécurité du réseau, car elle empêche la fraude. S’il était facile d’ajouter des blocs, quelqu’un pourrait envoyer une transaction frauduleuse, puis spammer le réseau pour créer sa propre chaîne la plus longue. Toutefois, avec la difficulté de minage, le processus d’ajout de blocs est ralenti pour éviter le spam, de sorte qu’il faut en moyenne 10 minutes pour miner chaque nouveau bloc sur le réseau Bitcoin.
L’un des problèmes est qu’un attaquant pourrait contourner la difficulté en trouvant des moyens d’augmenter sa puissance de calcul. Heureusement, le système mis en place par Satoshi Nakamoto sur le Bitcoin permet de réguler la difficulté de minage.
Déterminer la difficulté de minage
La difficulté est ajustée périodiquement pour s’assurer qu’il faut toujours une moyenne de 10 minutes pour miner un bloc. Après chaque 2016 ajouts de blocs, le système vérifie combien de temps, il a fallu pour créer ces blocs. Normalement, cela devrait prendre environ 2 semaines, soit 20 160 minutes. S’il a fallu plus de 2 semaines, la difficulté sera réduite et s’il a fallu moins de 2 semaines, la difficulté sera augmentée. La difficulté peut être déterminée comme suit.
Si le délai est supérieur à 2 semaines, la fraction sera inférieure à 1 et la nouvelle difficulté sera réduite. Si le délai est inférieur à 2 semaines, la fraction est supérieure à 1 et la nouvelle difficulté augmente. Si la difficulté est réduite, la valeur cible est augmentée, ce qui facilite la recherche d’un hachage valide, et vice versa.
Afin d’éviter les changements brusques, la difficulté ne peut pas augmenter ou diminuer de plus d’un facteur 4 en un seul ajustement.
On peut se demander donc, quels sont les différents facteurs qui influent sur le temps nécessaire au minage d’un bloc.
Il y a deux choses qui peuvent affecter ce temps :
- La puissance de calcul
- Le nombre d’individus dans le réseau
La puissance de calcul
Puisque le minage est essentiellement une course à la puissance de calcul, avec des personnes en compétition pour trouver le hash en premier et obtenir la récompense, ceux qui ont des ordinateurs plus puissants seraient en mesure de faire plus de suppositions dans le même laps de temps et auraient donc plus de chances de gagner.
Même en utilisant des ordinateurs de calcul spécialisé tel que des ASICs, il est très peu probable que vous gagniez quelque chose. Actuellement, vous pouvez espérer miner un bloc tous les 40 ans environ. Si vous voulez gagner de l’argent, vous devrez probablement rejoindre un pool de minage, c’est-à-dire des mineurs qui unissent leurs forces pour augmenter leurs chances de gagner.
Compte tenu de toutes ces avancées et du fait que les ordinateurs sont de plus en plus rapides, la difficulté doit compenser cela afin de suivre le rythme et de maintenir la moyenne de 10 minutes entre chaque nouveau bloc (blocktime).
Si l’amélioration constante des ordinateurs est la principale raison d’avoir un mécanisme d’ajustement, le système compense également le nombre d’individus dans le réseau.
Plus il y a de mineurs, moins il faut de temps pour trouver un hachage valide, puisque davantage de suppositions sont faites dans le même laps de temps. Ainsi, la difficulté augmente lorsqu’il y a plus de puissance de calcul sur le réseau et diminue lorsqu’il y en a moins.
Conclusion
Le minage est le processus d’ajout de nouveaux blocs, qui s’effectue en trouvant un hachage valide du bloc. Un hachage valide est un hachage qui est inférieur à la cible, trouvée en faisant varier le nonce du bloc. La difficulté de minage est ajustée tous les 2016 blocs en évaluant le temps qu’il a fallu pour les créer par rapport au temps standard de 2 semaines. La difficulté de minage a été mise en place pour garantir la sécurité de la blockchain, se protéger contre les attaques et suivre l’augmentation de la puissance de hachage.