Vous êtes sur la page 1sur 2

La difficulté se manifeste concrètement par un indice : la cible.

Pour valider un bloc il


faut prendre en compte des données définies :
 le numéro du bloc
 le hash du bloc précédent
 les transactions à enregistrer
 l’horodatage
 la cible

Ces données sont passées dans une fonction de hachage. Nous obtenons alors un
hash, qui doit remplir la condition suivante : le hash obtenu doit être inférieur à la
cible. Plus la cible est petite, plus il va être difficile d’avoir un hash encore plus petit
que la cible. Ainsi la difficulté ajuste la valeur de la cible telle qu’une augmentation de
la difficulté provoque une diminution de la cible.
Un peu perdu ? Ne vous inquiétez pas, il est plus facile de comprendre avec un
exemple :

Imaginons que nous voulons valider le bloc 128 à exactement 12h pour enregistrer la
transaction “Bob donne 1 bitcoin à Alice”, avec une cible de 001
Les informations à inclure sont donc :
Bloc 128, 0004aeD4b8ac (hash du bloc précédent) Bob donne 1 bitcoin à Alice
12h00m00s 001
Ou 1280004aeD4b8acBobdonne1bitcoinàAlice12h00m00s001

Lorsque l’on passe cette entrée dans une fonction de hachage, cela nous donne :
=> 8b5Aad3f1de2

Or, il faut que cela soit inférieure à 001 (la cible) pour pouvoir être validé. En
hexadécimal, 8b5Aad3f1de2 est supérieur à 001.
Le problème étant de trouver un hash inférieur à la cible, nous allons donc ajouter un
nombre, la nonce, en espérant que cela va permettre d’avoir un hash inférieur à 001.

Avec une nonce de 9999,

1280004aeD4b8acBobdonne1bitcoinàAlice12h00m00s0019999
=> 9e45dfb14ab6 Raté, c’est encore supérieur à 001

Avec une nonce de 0505050,

1280004aeD4b8acBobdonne1bitcoinàAlice12h00m00s0010505050
=> f48Ed77a0c6e C’est toujours supérieur à 001

Au bout de la 4762933245ème fois, nous essayons avec une nonce


de 25478754585

1280004aeD4b8acBobdonne1bitcoinàAlice12h00m00s00125478754585
=> 0002de3cf8f4 C’est inférieur à 001 !!
0002de3cf8f4 est inférieur à 001. La solution est trouvée, nous proposons cette
solution au réseau et quand elle est acceptée nous validons le bloc (et toucherons
la récompense !).

Ceci est la seule façon de trouver la solution. Il faut essayer différentes


nonces jusqu’à trouver celle permettant d’avoir un hash inférieur à la cible. C’est
ce qu’on appelle une “attaque par force brute”. Comme vous vous doutez bien, sur
les réseaux très concurrentiels comme Bitcoin ou Ethereum, la difficulté est
importante et donc la cible très petite. Utiliser une grande quantité d’itérations
demande donc plus de temps et d’énergie avant de trouver une nonce adéquate.
De façon générale, l’action de miner peut donc être réduite au travail de trouver la
nonce. Trouver une nonce valide constitue la preuve de travail, exigée pour garantir
au réseau une protection contre les fraudes. En effet, un hacker doit disposer d’une
puissance informatique colossale s’il veut avoir une bonne chance de faire passer
une opération frauduleuse dans la blockchain (comme la double dépense, la
transaction impossible etc.), car obtenir la preuve de travail est très coûteux en
énergie comme nous l’avons vu. Et s’il dispose de cette puissance, le mining
“honnête” assurerait sans doute au hacker plus de gains que ses fraudes. C’est en
cela que le mining permet de sécuriser le réseau.

Pourquoi le hashrate indique-t-il la puissance de mining


?
Le hash par seconde (h/s) exprime le nombre de fois où l’on effectue l’opération de
hachage, donnant un hash à partir d’une entrée. Un mineur doit essayer un très
grand nombre de nonces pour trouver la bonne solution, et donc doit pouvoir
effectuer un maximum de hash par secondes pour valider un bloc. Ainsi, le nombre
de tentatives possibles à la seconde est le critère déterminant la performance de
mining.

Vous aimerez peut-être aussi