Formation libre — chaîne de blocs

Forgez votre monnaie.
Puis trichez.

Le SHA-256 de cette page est écrit à la main et validé contre les vecteurs de test officiels du NIST. La preuve de travail tourne réellement : votre processeur cherche un nombre, des dizaines de milliers d'essais par seconde, jusqu'à trouver celui qui donne la bonne empreinte. Vous minerez un bloc, construirez une chaîne, puis vous altérerez une transaction — et vous verrez tout s'effondrer d'un coup. C'est cet effondrement, et rien d'autre, qui fait la sécurité d'une chaîne de blocs.

2²⁵⁶empreintes possibles — plus que d'atomes dans l'univers observable
1 bitmodifié dans l'entrée change environ la moitié de l'empreinte
≈ 150 TWhconsommés par an par le réseau Bitcoin, ordre de grandeur estimé

Faites défiler

La brique de base

Une empreinte
qui ne remonte pas

SHA-256 prend n'importe quoi — un mot, un livre, un film — et produit toujours exactement 64 caractères. Deux propriétés font tout le reste : la même entrée donne toujours la même sortie, et il est impossible de remonter de la sortie à l'entrée autrement qu'en essayant tout. Tapez, effacez une virgule, ajoutez un espace : regardez ce qui se passe.

Calculé par votre navigateur, à chaque frappe

L'effet d'avalanche, mesuré au bit près. La barre ci-dessus compare l'empreinte actuelle à la précédente, bit par bit : chaque case rouge est un bit qui a changé. Sur les 256 bits, environ 128 basculent pour la plus infime modification de l'entrée — c'est exactement ce qu'on attend, et c'est une propriété conçue, pas un accident. Une fonction où un petit changement d'entrée donnerait un petit changement de sortie serait attaquable en quelques minutes : on remonterait à l'entrée en tâtonnant. Ici, tâtonner n'apprend rien.

Ce que « impossible » veut dire ici, précisément. Rien n'interdit mathématiquement de retrouver une entrée à partir de son empreinte : il suffit de toutes les essayer. Le problème est le nombre. Il y a 2²⁵⁶ empreintes possibles, soit environ 10⁷⁷ — davantage que le nombre estimé d'atomes dans l'univers observable. Une machine testant mille milliards d'entrées par seconde depuis le Big Bang n'aurait pas encore exploré une fraction perceptible de cet espace. La sécurité ne repose donc pas sur un secret, mais sur une disproportion.

Le travail, au sens propre

Miner, c'est chercher
un nombre au hasard

Voilà toute la preuve de travail. On ajoute au bloc un nombre arbitraire — le nonce — et on calcule l'empreinte. Si elle ne commence pas par assez de zéros, on incrémente et on recommence. Il n'existe aucune méthode plus astucieuse que d'essayer : c'est précisément ce qui rend le travail incontestable. Réglez la difficulté et lancez. Votre processeur va vraiment chercher.

NONCE TESTÉ 0
DÉBIT
TEMPS 0,0 s
ÉTAT en attente
Contenu du bloc
Difficulté — zéros exigés4

0essais
essais attendus

Pourquoi chaque zéro coûte seize fois plus cher. Une empreinte s'écrit en hexadécimal : chaque caractère peut prendre seize valeurs. La probabilité qu'un caractère donné soit un zéro est donc de 1 sur 16. Pour n zéros consécutifs, elle tombe à 1 sur 16ⁿ. Passer de quatre à cinq zéros ne rend pas le travail un peu plus dur : il devient seize fois plus long. C'est ce levier exponentiel qui permet au réseau Bitcoin de maintenir un bloc toutes les dix minutes malgré une puissance de calcul qui a été multipliée par des milliards depuis 2009 — il suffit d'ajuster ce seul nombre.

Le coût, sans détour. Cette énergie n'est pas dépensée à calculer quelque chose d'utile : elle est dépensée à prouver qu'on a dépensé de l'énergie. C'est le principe, pas un défaut d'implémentation — la sécurité vient précisément du fait que réécrire l'histoire coûterait autant que l'avoir écrite. Les estimations de consommation annuelle du réseau Bitcoin tournent autour de 150 TWh, du même ordre qu'un pays de taille moyenne, avec de fortes incertitudes selon la méthode et le mix électrique retenus. C'est aussi pourquoi Ethereum est passé en 2022 à la preuve d'enjeu, qui remplace la dépense d'énergie par l'immobilisation de capital et réduit la consommation d'environ 99 %.

L'idée centrale

Chaque bloc scelle
tous les précédents

Un bloc contient l'empreinte du bloc d'avant. Comme cette empreinte fait partie de ce qu'on hache, modifier un vieux bloc change son empreinte, ce qui invalide le suivant, qui invalide le suivant, et ainsi de suite jusqu'au bout. Construisez la chaîne, puis modifiez le contenu d'un bloc du milieu et regardez la cascade. Les transactions sont libellées en ARB, la monnaie imaginaire que vous forgez ici — elle n'a aucune valeur, c'est le mécanisme qui compte. Et comme sur une vraie chaîne, personne n'a de nom : seulement des adresses, publiques et lisibles par tous, rattachées à personne.

difficulté 3 — rapide

Ce que vous venez de voir n'est pas une métaphore. C'est le mécanisme exact de Bitcoin, à l'échelle près. Pour faire accepter une falsification, un attaquant devrait reminer le bloc modifié et tous ceux qui suivent, plus vite que le reste du réseau n'en produit de nouveaux. Avec la puissance actuelle, cela demanderait de contrôler plus de la moitié du calcul mondial dédié — l'attaque dite des 51 %. Elle n'est pas impossible en théorie, et elle a d'ailleurs réussi sur de petites chaînes peu protégées. Sur les grandes, son coût la rend absurde.

Ce que la chaîne de blocs résout vraiment — et ce qu'elle ne résout pas. Elle résout un problème précis et difficile : se mettre d'accord sur un ordre d'événements sans autorité centrale de confiance. C'est une avancée réelle, et le premier système à y parvenir de manière robuste. Mais elle ne garantit pas que ce qui est inscrit soit vrai — seulement qu'il n'a pas été modifié après coup. Un mensonge inscrit dans un bloc devient un mensonge immuable. Elle ne protège pas non plus contre la perte d'une clé, ni contre l'escroquerie, ni contre un contrat mal écrit. La plupart des usages qu'on lui prête n'ont d'ailleurs pas besoin d'elle : quand une autorité de confiance existe et convient, une base de données ordinaire fait mieux, pour bien moins cher.

2008

L'article de Satoshi Nakamoto paraît. Chacune de ses briques existait déjà — hachage, signature, horodatage, preuve de travail. C'est leur assemblage qui était neuf.

10 min

L'intervalle visé entre deux blocs. La difficulté est réajustée tous les 2 016 blocs pour le maintenir, quelle que soit la puissance branchée.

51 %

La part du calcul qu'il faudrait contrôler pour réécrire l'histoire. Coûteux sur les grandes chaînes, réalisé plusieurs fois sur les petites.

−99 %

La baisse de consommation d'Ethereum après son passage à la preuve d'enjeu en septembre 2022. La preuve de travail n'est pas la seule voie.

Vérifier par vous-même

Sources

Le SHA-256 de cette page a été validé contre les vecteurs de test du NIST avant intégration, y compris celui du million de caractères. Le minage est authentique. Rien ne sort de votre navigateur, et cette page ne vend rien.

01
NIST FIPS 180-4 — Secure Hash StandardSpécification de SHA-256. L'implémentation de cette page suit cette norme et passe les vecteurs de test officiels, y compris « abc » et un million de caractères « a ».
02
Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System, 2008Neuf pages. Décrit la chaîne de blocs, la preuve de travail et la règle de la chaîne la plus longue.
03
Haber & Stornetta — How to Time-Stamp a Digital Document, 1991Le chaînage cryptographique de documents horodatés. Antérieur de dix-sept ans à Bitcoin, et cité par Nakamoto.
04
Back — Hashcash, 1997 et 2002La preuve de travail, conçue à l'origine contre le courriel indésirable. Reprise telle quelle par Bitcoin.
05
Estimations de consommation — Cambridge CBECI, DigiconomistOrdre de grandeur de 100 à 200 TWh par an selon la méthode et la période. Les écarts entre sources sont importants : le chiffre de 150 TWh est un ordre de grandeur, pas une mesure.
06
Ethereum Foundation — The Merge, septembre 2022Passage de la preuve de travail à la preuve d'enjeu. Réduction de consommation estimée à environ 99,95 %.
07
Attaques des 51 % documentéesPlusieurs chaînes de taille modeste en ont été victimes, dont Ethereum Classic en 2020 et Bitcoin Gold en 2018. Le mécanisme fonctionne comme décrit — il n'est simplement pas rentable à grande échelle.