Que signifie la « difficulté » ?

Une introduction sur les années bissextiles

Nous avons 12 mois, certains ont 31 jours, d’autres ont 30 jours, et février en a généralement 28. Ce calendrier est censé  – emphase sur « censé » – diviser le temps en années, ces années correspondant au temps que met la Terre pour tourner une fois autour du Soleil. Durant cette année, le temps d’exposition de la Terre à la lumière du Soleil change, et c’est pour cela que les mois n’ont pas tous le même nombre de jour, et qu’ils n’alternent pas exactement entre un mois de 30 et un mois de 31 jours.

Sauf février, qui a 28 jours. Février agit comme un mois régulateur. Parce qu’en fait, la manière dont la Terre tourne autour du Soleil est un peu plus complexe que ce que notre calendrier en donne l’air. Notre calendrier voudrait que l’année se passe en précisément 365 jours, mais ce n’est pas le cas. L’année dite tropique (le cycle réel) prend 365 jours, 5 heures et 45 secondes. Chaque année, nous prenons donc 5 heures et 45 secondes de retard.

Toutes les 4 années (sauf les années séculaires à moins qu’elles soient divisibles par 400), il faut rajouter exactement 1 jour au mois de février. Les années bissextiles, années dont le mois de février a 29 jours et non pas 28, remettent à zéro le temps de décalage entre le cycle idéal de notre calendrier et le cycle réel de la Terre autour du Soleil.

(À ceci près que nous prenons 3 jours de retard tous les 10’000 ans, mais cela ne nous concerne pas.)

 

Retour aux blocs

Un bloc est idéalement généré toutes les 10 minutes. Miner 2016 blocs devrait donc prendre, idéalement, 2 semaines. Ces chiffres sont importants car, après de savants calculs, ils correspondent au temps idéal de minage, pour des questions de rendement, de disponibilité du réseau et d’efficacité.

La difficulté, lorsque l’on parle de Bitcoin, se réfère précisément au minage de blocs. Elle signifie combien il est difficile de découvrir un nouveau bloc par rapport la facilité maximale avec laquelle on pourrait en découvrir un. Cette difficulté est recalculée tous les 2016 blocs pour aboutir à une nouvelle valeur qui correspond à la difficulté à laquelle les 2016 blocs précédents auraient dû être minés : c’est-à-dire 2 semaines.

Or, comme pour notre calendrier, miner 2016 blocs ne prend jamais exactement 2 semaines, mais un peu plus ou un peu moins. Il va y avoir, tous les 2016 blocs, un léger pourcentage de différence entre le temps réel et le temps idéal de 2 semaines. Ce pourcentage est le pourcentage par lequel la difficulté va être modifiée – à ceci près qu’une seule modification ne peut jamais faire varier la difficulté d’un facteur supérieur à 4.

 

Qu’est-ce qui est si difficile dans le minage de blocs ?

Le hachage d’un bloc doit commencer par un certain nombre de zéros. La probabilité de calculer un hachage qui commence par de nombreux zéros est très basse, et donc il faut essayer une quantité gigantesque de possibilités avant d’y arriver. Afin de générer un nouveau hachage à chaque essai, un nonce est inséré. Un nonce est une fonction spéciale qui modifie le hachage en insérant des valeurs neutres dans le calcul, ce qui aura pour effet de générer à hachage entièrement différent. Un nonce est incrémenté aussi longtemps que cela prend pour trouver le bon hachage.

Plus il y a de mineurs qui rejoignent le réseau, plus la quantité de blocs créés va augmenter ; la difficulté générale du réseau va donc pareillement augment pour compenser, et forcer le rythme auquel les blocs sont créés à décroître. En effet, plus il y a de blocs créés rapidement, plus il y a bitcoins libérés. Or le rythme auquel les bitcoins seront créés a été décidé dès le départ dans le protocole Bitcoin. En créer trop et trop vite aura des répercussions négatives sur la valeur de Bitcoin.

À ce sujet :

Pourquoi y a-t-il une quantité finie de bitcoins ?

Comme il devient de plus en plus difficile de miner des blocs, la plupart des mineurs qui n’ont pas le matériel adéquat pour suivre le mouvement vont simplement abandonner. Moins de mineurs, donc moins de blocs créés, et le temps de génération par bloc devrait se rapprocher des 10 minutes idéales. On observe toutefois que moins il y a de mineurs, plus cela demande de temps pour créer un bloc – plus que 10 minutes. Ce qui risque de raréfier les bitcoins et donc d’en faire flamber la valeur.

Par contre, comme il y aura moins de mineurs, la chance de gagner la loterie de la preuve de travail par mineur va augmenter. Cela va encourager d’autres mineurs de tenter leur chance…et ainsi relancer le cycle de minage de blocs. Comme on le voit, le réseau tend constamment à équilibrer le temps de minage à 10 minutes par bloc. C’est pour cette raison que le temps réel de minage n’y correspond jamais exactement.

 

La récompense

L’un des grands intérêts de la difficulté est que si un mineur avait l’intention de frauder le réseau en minant un faux bloc, l’entièreté du réseau Bitcoin pourrait en évaluer la validité en comparant sa difficulté avec la difficulté du réseau en général. Difficulté qui donc, change très souvent.

Et puisqu’il est si difficile de trouver un bloc, le mineur qui y est parvenu reçoit une récompense sous forme de bitcoins. Actuellement (09/08/17), la récompense s’élève à 25 bitcoins. Depuis la création de Bitcoin, la somme de la récompense a diminué de moitié tous les 210’000 blocs créés, et continuera de la sorte jusqu’à ce que le 21 millionième bloc ait été créé. Les mineurs seront alors payés uniquement en frais de transaction.

Les frais de transaction reviennent en effet aux mineurs. C’est une manière d’encourager les mineurs à inclure telle ou telle transaction dans leur bloc – c’est pour cela que les transactions à frais de transfert élevé seront vérifiés et donc validés plus rapidement. Pour l’instant, ces frais ne suffisent pas pour rentabiliser à eux seuls l’activité de minage. Mais lorsque le dernier bloc aura été miné, il y aura assez de transactions pour que les frais engendrés soient rentables pour les mineurs.

En lien :