• BTC

    24h

      

      

  • BNB

    24h

      

      

  • SOL

    24h

      

      

  • EGLD

    24h

      

      

  • GRAOU

    24h

    SOON

    0.00%

  • ETH

    24h

      

      

Retour 7 septembre 2024

Comprendre la difficulté de minage de Bitcoin

Comprendre la manière dont est ajustée la difficulté de minage de Bitcoin n'est pas forcément quelque chose de facile. Nous allons essayer de voir ensemble comment l'ajustement de la difficulté fonctionne, et quel est son rôle.

Actualités Cryptortue Cryptortue
Couverture de l'article sur l'ajustement de la difficulté de minage du BTC

On entend souvent parler de la difficulté du minage de Bitcoin qui augmente, mais de quoi parle-t-on exactement ? Quelle est l’influence de cette difficulté, et surtout, pourquoi augmente-t-elle ? Nous allons voir tout ça ensemble !

Avant d’aller plus loin, il est nécessaire d’avoir une connaissance du principe de base du fonctionnement de Bitcoin pour être à l’aise avec le contenu de cet article. N’hésitez donc pas à lire (ou relire) les articles expliquant les principes de de la blockchain et de Bitcoin en particulier.

Qu’est-ce que la difficulté de minage ?

Nous avons vu ensemble dans cet article sur le minage que la difficulté augmente depuis la naissance de la blockchain. Mais pourquoi ? Est surtout qu’est-ce que la « difficulté de minage » ?

Imaginez un puzzle géant, composé de 1000 pièces. Un petit concours est lancé ! Les pièces sont étalées sur le sol, et toute personne qui le désire peut participer. Le but de l’organisateur de ce concours est que le puzzle soit résolu en 10 minutes, et ce, quel que soit le nombre de participants.

Mais si seulement 10 personnes décident de participer, le puzzle sera peut-être difficile à terminer en 10 minutes. Alors l’organisateur du concours va décider de recréer ce puzzle, mais seulement en 250 pièces au lieu de 1000.

Beaucoup plus facile non ?

Et là, d’un coup, 1000 personnes arrivent. On peut imaginer que le puzzle va être résolu en quelques minutes seulement. Alors l’organisateur va redécouper son puzzle, et le transformer, passant de 250 à 2500 pièces ! C’est déjà bien plus difficile à résoudre !

Le but est de faire en sorte que le temps de création du puzzle soit toujours le plus près possible du temps visé, à savoir 10 minutes.

3 tortues essayent de résoudre un puzzle

Maintenant, remplacez le puzzle par un bloc, les participants par des mineurs, et vous avez le principe de l’ajustement de la difficulté de minage !

C’est un mécanisme d’ajustement automatique, conçu pour réguler la vitesse de création des blocs. Plus il y aura de mineurs, plus le matériel sera performant, et plus la difficulté va augmenter.

Le minage sera donc rendu plus complexe, mais également plus couteux en énergie et en ressources.

Et concrètement, ça se présente comment la difficulté ?

C’est bien gentil cette histoire de puzzle, mais concrètement, comment ça se présente tout ça ? Essayons de voir ensemble cette partie technique, mais qui sera simplifiée au maximum afin de rester accessible à tous.

Chacun des blocs sur la blockchain doit avoir ce que l’on appelle un hash. La difficulté quand à elle est une cible, un nombre qui va déterminer si le hash d’un bloc sera valide, ou non.

Le mineur va, via calcul, déterminer ce que l’on appelle un nonce, « number only used one » que l’on peut traduire par « nombre utilisé une seule fois » . C’est un nombre aléatoire, qui sera utilisé dans le calcul du hash.

Le hash, qui est une séquence de chiffre, est généré via un algorithme cryptographique et prendra comme donnée d’entrée les informations du bloc (les transactions, l’horodatage, le hash du bloc précèdent, etc.). Et parmi ces données, il y a le nonce que le mineur a généré.

Regardons plus en détails

Voici un exemple de hash :
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Si le hash, qui utilise le nonce comme donnée modifiable, ne correspond pas à ce qui est attendu, alors le mineur va générer un autre nonce, et refaire un hash. Et encore un autre si besoin. Et encore. Et ainsi de suite. Ce procédé est fait des millions (voir milliards) de fois par secondes. C’est pour cela que l’on calcule la puissance d’un mineur (Asic) en nombre de hash par secondes (h/sec). C’est sa capacité à générer des hash afin de trouver celui qui correspond à la difficulté attendue.

Pour imaginer ce que ça représente la cible à atteindre, visualisez une cible de tir à l’arc.

Si le rond rouge central prend la moitié de la cible, il sera beaucoup plus simple de le toucher que s’il ne représente qu’un tout petit petit rond au centre. En ajustant la taille de ce cercle rouge, vous ajustez la difficulté à l’atteindre, et donc à trouver le bon hash.

Une tortue qui tire à l'arc sur une cible

Concrètement, la cible est un nombre hexadécimal de ce type :
00000000000000000005f5e10000000000000000000000000000000000000000

Le nombre de 0 qui commence ce nombre est important. Car plus il aura de 0, plus la difficulté sera élevée. Il sera mathématiquement plus difficile de trouver un nombre correspondant à la cible.

La valeur de ce nombre en décimal est de
570 899 077 082 383 952 423 314 387 779 798 054 553 098 649 600 000 000

Pour être valide, mon hash doit être inférieur à ce nombre.

Maintenant, si on ajoute un 0 avant le 5 (et donc que l’on supprime un 0 à la fin), on passe de
00000000000000000005f5e10000000000000000000000000000000000000000 à
000000000000000000005f5e1000000000000000000000000000000000000000
ce qui donne (en décimal) 35 681 192 317 648 997 026 457 149 236 237 378 409 568 665 600 000 000

Pour simplifier, supprimons les 16 derniers groupes de chiffres (en rose) et comparons le résultat en décimal, ça sera plus parlant.
Nous avions 570 899 au départ, et maintenant 35 681. Nous avons donc divisé par 16 le nombre à trouver. Il sera donc plus difficile pour moi de générer un nombre inférieur à 35 681 qu’a 570 899

La valeur du hash donné en exemple au début était dee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Ce qui donne 102 987 336 249 554 097 029 535 212 322 581 322 789 799 900 648 198 034 993 379 397 001 115 665 086 549 en décimal.

Si on supprime les 16 derniers groupes de nombre, la cible est de 35 681 et nous avons généré 102 987 336 249 554 097 029 535 212 322. Oups, il faut recommencer ! Trouver un nouveau nonce, et refaire un hash en espérant que cette fois-ci il soit inférieur à la cible.

Un autre exemple concret ?  Écrivez sur un papier 5 nombres, compris entre 1 et 1000. C’est fait ? Ne trichez pas !

Maintenant si je vous demande combien de nombres sont compris entre 1 et 1000, vous allez me dire 5, c’est logique.

Mais si j’augmente la difficulté en vous demandant combien sont compris entre 1 et 100 ? Ça sera beaucoup moins !

Et maintenant, entre 1 et 10 ? Peut-être aucun !

C’est ce principe là qui est utilisé pour le nonce et pour le hash.

Ajustement de la difficulté de minage

Maintenant que l’on a vu comment est utilisée la difficulté, il faut comprendre comment elle est ajustée.

Un bloc doit être miné en 10 minutes en moyenne. Cela veut dire que si un bloc est miné en 8 minutes, et le suivant en 12, on est bien sûr une moyenne de 10 minutes, donc la difficulté est bonne.

Pour l’ajustement, on ne compare pas sur 2 blocs, mais sur 2016, ce qui représente environ 2 semaines de temps de minage.

Si ces 2016 blocs ont été minés trop rapidement, si le temps moyen est inférieur à 10 minutes, alors la difficulté sera augmentée.

Si à l’inverse le temps moyen est trop haut, c’est qu’on a une cible difficile à atteindre, la difficulté sera donc revue à la baisse.

En conclusion, la difficulté est donc un élément primordial pour le fonctionnement de la blockchain.

Ce mécanisme est dynamique, et géré automatiquement, ce qui garantit un rythme de minage du Bitcoin constant, et permet donc de participer à sa sécurité. Si le prix du bitcoin augmente en flèche et attire de nouveaux mineurs (et donc possiblement des personnes malhonnêtes), la difficulté sera augmentée en proportion, régulant ainsi la puissance de calcul nécessaire au bon fonctionnement.

C’est simple dans le principe, complexe dans la réalisation, et génial dans l’esprit… c’est Bitcoin !

Cryptortue

J'écris des articles, j'écris des histoires, je m'occupe d'une bande de tortues sur une île et j'aime le web3. C'est un beau résumé, non ? Aller. Dites oui !

Plus d'article de l'auteur