Les mineurs collectent les transaction sur le réseau (A a payé 2 bitcoins à B) dans des grands ballots appelés blocs. Ces blocs sont ficelés sur une seule longue chaîne, la blockchain, qui ne peut accepter qu’il y ait des transactions conflictuelles. Si la blockchain pouvait enregistrer des transactions contradictoires, alors les utilisateurs seraient capables d’envoyer les mêmes bitcoins à deux personnes différentes – la double-dépense – qui serait comme écrire un chèque avec de l’argent que vous n’avez pas sur votre compte. La blockchain permet de savoir avec une absolue certitude quelles transactions sont fiables.
La chaîne la plus difficile
Bitcoin s’assure qu’il n’y ait qu’une seule Blockchain en rendant la création de blocs extrêmement ardue. Les mineurs ne peuvent pas juste « construire » un bloc, il doivent calculer un hachage cryptographique du bloc (c’est-à-dire découper l’information d’un bloc et la réordonner de manière cryptée) qui soit conforme à des critères très précis. Pour trouver le bon hachage en question, les mineurs doivent en essayer des milliards à la seconde. Cela tient donc d’une loterie, et c’est pour cela que les mineurs qui y parviennent sont récompensés : calculer des milliards de possibilités à la seconde requiert une énorme machinerie informatique et une grande connaissance technique.
Comme chaque bloc de la blockchain contient les informations de tous les blocs précédents, plus un bloc est « haut » sur la chaîne, plus il doit contenir d’informations, et donc plus il y a d’informations à crypter. Donc le hachage devient de plus en plus difficile et les chances de trouver un hachage juste deviennent de plus en plus minces.
Quand un bloc est créé, on est alors sûr qu’il est le plus difficile à avoir été créé, et cela fait de la blockchain la chaîne la plus difficile également. Il y a plusieurs mineurs en compétition, et il se peut fort bien que plusieurs créent des nouveaux blocs en même temps et qu’ainsi il puisse y avoir des blockchains concurrentes. Mais ce qui permettra de reconnaître le « bon » bloc sera sa difficulté et la « bonne » blockchain non pas sa longueur mais bel et bien sa difficulté !
Et des transactions valides uniquement
Mais ce n’est pas tout. S’il faut que le bloc en question soit le plus difficile il faut aussi qu’il soit le plus complet. Il faut qu’il ne contienne que des transactions valides, et non-contradictoires. Un bloc qui aurait atteint le bon niveau de difficulté mais qui aurait mal enregistré les transactions serait inutile et donc ne serait pas inclus à la blockchain. Si le bloc ne contient pas que des transactions valides, alors le mineur n’aura pas de récompense.
Le bloc le plus difficile à produire est celui qui a également requis le travail du plus grand nombre de mineurs. Il est virtuellement impossible de produire un bloc fraudé, puisqu’il faudrait qu’il soit accepté par la majorité du réseau, ce qui ne serait pas le cas. La blague étant que, si quelqu’un voulait créer un bloc fraudé qui ait l’air crédible, il faudrait qu’il passe autant de temps et mette autant d’effort que la majorité du réseau réunie ! Autant le dire, cela est peu probable.
Enfin, le code de Bitcoin fait en sorte qu’il sait choisir entre deux transactions contradictoires et entre deux blocs valides découverts en même temps.