Comment fonctionne la blockchain
Une blockchain est un registre partagé que des milliers d'ordinateurs copient et sur lequel ils s'accordent, conçu pour que les anciennes entrées ne puissent pas être discrètement réécrites.
Chaque Hash est calculé à partir des Données du bloc et du Hash du bloc précédent. Modifiez n'importe quel bloc, ou falsifiez le Bloc 2, et tous les blocs suivants cessent de correspondre.
Chaîne intacte. Chaque bloc renvoie vers l'empreinte correcte, donc rien n'est signalé.
Observez la chaîne ci-dessus avant de poursuivre votre lecture. Chaque bloc stocke une courte empreinte (son hash) de son propre contenu, et il stocke également le hash du bloc précédent, ce qui est exactement ce qui relie les blocs en une chaîne. Modifiez le Bloc 2 et son empreinte change, si bien que les Blocs 3 et 4 ne correspondent plus au bloc qui les précède et s'allument comme rompus. Imaginez maintenant un immense carnet qui répertorie chaque paiement jamais effectué, et imaginez des milliers d'ordinateurs qui en conservent chacun une copie identique. Aucune banque ne possède la version maîtresse, personne ne peut intervenir seul pour modifier une ligne, et chacun peut vérifier que sa copie correspond à celle de tous les autres. C'est cela, une blockchain. Le nom est littéral : c'est une chaîne de blocs, où chaque bloc est un lot de transactions et où les blocs sont reliés dans l'ordre. Vous n'avez besoin d'aucune connaissance en programmation pour la comprendre. Il vous suffit d'une image claire d'un carnet partagé très difficile à falsifier, et le reste de ce module construit cette image étape par étape.
Un registre partagé, en ajout seul
Commencez par le carnet. Plutôt qu'une seule banque le détienne, des milliers d'ordinateurs (appelés nœuds) en conservent chacun leur propre copie à jour. C'est ce que signifie « distribué », et cela vous apporte deux avantages.
Premièrement, il n'existe pas de copie unique à pirater, saisir ou perdre. Si un nœud se déconnecte, le registre continue de vivre sur toutes les autres machines, si bien qu'il n'y a rien de central à attaquer.
Deuxièmement, le registre est en ajout seul. Vous pouvez ajouter de nouvelles entrées à la fin, mais vous ne pouvez pas discrètement effacer ou réécrire les anciennes, parce que toutes les autres copies seraient instantanément en désaccord avec vous. C'est pourquoi on qualifie une blockchain de source de vérité partagée : non pas parce qu'une autorité unique la garantit, mais parce que des milliers de copies indépendantes doivent se mettre d'accord.
Comment les blocs s'enchaînent
Les nouvelles transactions sont collectées et regroupées dans un bloc. Avant que le réseau n'accepte ce bloc, il le vérifie par rapport aux règles : les coins sont-ils réels, l'expéditeur les possède-t-il réellement, les signatures sont-elles valides ? Ce n'est qu'alors que le bloc est ajouté à la fin de la chaîne.
L'élément astucieux réside dans la façon dont un bloc se connecte au suivant. Chaque bloc fait passer son contenu par un hash, une fonction mathématique qui transforme n'importe quelle donnée en une courte empreinte de longueur fixe. Chaque nouveau bloc stocke ensuite l'empreinte du bloc qui le précède immédiatement. Ainsi, le bloc 100 porte l'empreinte du bloc 99, le bloc 99 porte celle du bloc 98, et cette référence remonte jusqu'au tout premier bloc. Les blocs sont enchaînés entre eux par ces empreintes, et c'est exactement cet enchaînement qui rend l'ensemble de l'historique détectable en cas de falsification (vous verrez pourquoi dans un instant).
Qui décide du prochain bloc
Si personne n'est aux commandes, comment des milliers de nœuds se mettent-ils d'accord sur le prochain bloc ? Ils suivent un mécanisme de consensus, un règlement commun qui détermine qui a le droit d'ajouter le prochain bloc. Les deux dont vous entendrez le plus parler sont la preuve de travail et la preuve d'enjeu.
Dans la preuve de travail (utilisée par Bitcoin), des nœuds spéciaux appelés mineurs se disputent la résolution d'une énigme mathématique difficile. La résoudre nécessite une véritable consommation d'électricité et de puissance de calcul, et le premier à y parvenir gagne le droit d'ajouter le prochain bloc et de percevoir une récompense.
Dans la preuve d'enjeu (utilisée par Ethereum depuis 2022), il n'y a pas de course à l'énigme. À la place, les validateurs immobilisent une partie de leur propre capital en guise de dépôt, appelé un enjeu (stake), et le système choisit qui ajoute le prochain bloc en partie au hasard et en partie selon l'importance de leur enjeu. Quiconque est pris à tricher peut se voir retirer cet enjeu.
Les deux approches atteignent le même objectif, un accord honnête sans chef central, par le même procédé : elles rendent la triche coûteuse.
Pourquoi le registre est si difficile à falsifier
Trois éléments se combinent pour rendre une blockchain très difficile à falsifier.
- L'enchaînement par hash. Modifiez ne serait-ce qu'une seule ancienne transaction et l'empreinte de ce bloc change, ce qui brise la référence dans tous les blocs qui le suivent. La falsification ne se cache pas ; elle s'allume.
- Les copies distribuées. Votre version falsifiée doit l'emporter face à des milliers de copies honnêtes à la fois, et la majorité gagne.
- Le coût de l'attaque. Pour réellement réécrire l'historique récent, un attaquant devrait contrôler plus de la moitié de la puissance de minage ou de l'enjeu du réseau, refaire tout le travail concerné, et devancer tous les autres participants réunis. C'est la fameuse attaque des 51 %, et sur un grand réseau, elle est si coûteuse qu'il n'est généralement pas rentable de la tenter.
Remarquez ce qui fait vraiment le travail ici. La sécurité ne vient pas d'un gardien de confiance qui surveille le registre. Elle vient du fait que la malhonnêteté coûte plus cher qu'elle ne pourrait jamais rapporter.
Parcourez un bloc falsifié
Imaginez une courte chaîne de 5 blocs. Le bloc 2 enregistre un paiement de 50 coins d'Alice à Bob. Les blocs sont reliés de sorte que le bloc 3 stocke l'empreinte du bloc 2, le bloc 4 stocke celle du bloc 3, et le bloc 5 stocke celle du bloc 4.
- Vous tentez de tricher en modifiant le bloc 2 pour indiquer qu'Alice vous a payé 5,000 coins à la place.
- À l'instant où vous modifiez le contenu du bloc 2, l'empreinte du bloc 2 change.
- L'« empreinte précédente » stockée dans le bloc 3 ne correspond alors plus au véritable bloc 2, si bien que le bloc 3 est rompu, tout comme les blocs 4 et 5.
- Pour que la falsification tienne, vous devriez recalculer le travail valide pour les blocs 2, 3, 4 et 5, et le faire plus vite que l'ensemble du réseau honnête n'étend la véritable chaîne. Sur un grand réseau, cela exige plus de la moitié de toute la puissance de minage (une attaque des 51 %), ce qui est d'un coût prohibitif.
La modification unique n'est pas restée cachée. Elle s'est propagée en cascade à travers tous les blocs suivants et s'est révélée d'elle-même. Cette cascade est au cœur de la raison pour laquelle on dit d'une blockchain qu'elle est immuable en pratique.
Preuve de travail contre preuve d'enjeu, côte à côte
Les deux mécanismes répondent à la même question (qui ajoute le prochain bloc, et pourquoi devrions-nous lui faire confiance ?), mais ils dépensent des ressources différentes pour y parvenir.
| Preuve de travail | Preuve d'enjeu | |
|---|---|---|
| Qui ajoute un bloc | Des mineurs qui se disputent la résolution d'une énigme | Des validateurs choisis en partie au hasard, en partie selon leur enjeu |
| Ce que coûte la participation | Électricité et puissance de calcul | Capital immobilisé en guise de dépôt |
| Ce qui empêche la triche | L'énergie et le matériel que vous gaspilleriez | La perte de l'enjeu que vous avez mis en jeu |
| Utilisé par | Bitcoin | Ethereum (depuis 2022) |
Ethereum est passé de la preuve de travail à la preuve d'enjeu lors d'une mise à niveau appelée la Fusion (the Merge), le 15 septembre 2022. Ce changement a réduit la consommation d'énergie du réseau d'environ 99.95 %, car les validateurs n'avaient plus besoin de brûler de l'énergie à résoudre des énigmes. Les deux conceptions atteignent toujours la même fin, un accord honnête sans autorité centrale, si bien que le choix entre elles relève surtout d'un arbitrage entre le coût énergétique et la façon dont la sécurité est financée.
Ce qu'est réellement un hash
Un hash est simplement une fonction qui prend n'importe quelle entrée (une phrase, un bloc entier, un livre entier) et renvoie une courte empreinte de longueur fixe. Deux propriétés utiles en font l'outil parfait pour une blockchain.
- La même entrée produit toujours la même empreinte, si bien que n'importe qui peut la recalculer et la vérifier.
- Modifier l'entrée, même légèrement, produit une empreinte complètement différente, sans aucune ressemblance avec l'ancienne.
Cette seconde propriété explique pourquoi la falsification ne peut pas se cacher. Si un acteur malhonnête altère un seul caractère dans un ancien bloc, l'empreinte recalculée ne ressemble en rien à celle stockée dans le bloc suivant, et l'incohérence est évidente pour toute copie honnête. L'empreinte ne vous indique pas ce qui se trouvait dans le bloc, et vous ne pouvez pas l'exécuter à l'envers pour récupérer les données d'origine. Elle permet seulement à chacun de confirmer que les données n'ont pas changé depuis leur enregistrement.
Vérification rapide des connaissances
Que signifie « en ajout seul » pour une blockchain ? Vous pouvez ajouter de nouvelles entrées à la fin du registre, mais vous ne pouvez pas discrètement effacer ou réécrire les entrées existantes, parce que toutes les autres copies du registre seraient en désaccord avec votre version modifiée.
Comment les blocs individuels sont-ils reliés en une chaîne ? Chaque bloc stocke le hash (l'empreinte) du bloc qui le précède. Cette référence remonte jusqu'au premier bloc, si bien que modifier n'importe quel ancien bloc brise le lien dans tous les blocs qui le suivent.
Pourquoi une attaque des 51 % est-elle si difficile à réaliser sur un grand réseau ? Pour réécrire l'historique récent, un attaquant devrait contrôler plus de la moitié de la puissance de minage ou de l'enjeu du réseau, refaire tout le travail concerné, et malgré tout devancer l'ensemble du réseau honnête. Sur une grande chaîne, c'est si coûteux qu'il est rarement rentable de le tenter.
Sources
- NIST, « IR 8202: Blockchain Technology Overview », définition d'une blockchain comme un registre distribué, en ajout seul, de blocs reliés par hash et copiés sur de nombreux nœuds.
- ISO, « ISO 22739: Blockchain and distributed ledger technologies - Vocabulary », comment une base de données partagée est répliquée et synchronisée sur de nombreux nœuds sans administrateur central.
- bitcoin.org, « Bitcoin: A Peer-to-Peer Electronic Cash System » (Satoshi Nakamoto), pourquoi les mineurs dépensent de la puissance de calcul et de l'énergie pour ajouter des blocs et percevoir la récompense.
- ethereum.org, « Proof-of-stake (PoS) », comment les validateurs sont choisis proportionnellement au capital qu'ils mettent en jeu, capital qui peut être confisqué en cas de triche.
- ethereum.org, « The Merge », le passage d'Ethereum à la preuve d'enjeu le 15 septembre 2022 et la réduction d'environ 99.95 % de sa consommation d'énergie.
- bitcoin.org, « Bitcoin: A Peer-to-Peer Electronic Cash System » (Satoshi Nakamoto), l'attaque des 51 % et pourquoi réécrire l'historique sur un grand réseau est d'un coût prohibitif.