Fonctionnement et sécurisation d'une blockchain. Euh, ça marche comment déjà le mining ?
Qu'est-ce qu'une blockchain, comment est-elle sécurisée, et quel est le rôle exact du minage ? Dans cette vidéo pédagogique de 2022, tournée peu après l'arrêt du minage d'Ethereum, nous reprenons les bases : principes d'une blockchain, hachage, nonce, chaînage des blocs, difficulté, pools de minage et attaque des 51 %. Elle s'adresse aux débutants comme aux mineurs qui veulent consolider leurs connaissances, avec quelques simplifications pour rester accessible.
Qu'est-ce qu'une blockchain ?
Une blockchain, ou chaîne de blocs, est avant tout un outil qui permet de stocker de l'information et de la transmettre : une sorte de base de données, comparable à un grand livre où l'on note des informations qui ne peuvent plus être falsifiées. Il en existe plusieurs types :
- Publique ou privée : sur une blockchain publique, tout le monde peut participer et envoyer des transactions. C'est le cas de Bitcoin, d'Ethereum ou de Ripple, et de la plupart des cryptomonnaies. Les blockchains privées sont plutôt réservées à des usages B2B, comme Hyperledger Fabric ou celles développées chez JP Morgan ;
- Permissionless ou permissioned : une blockchain permissionless permet d'agir de manière anonyme, sans connaître l'identité des participants. C'est celle que nous utilisons en minage. Sur une blockchain permissioned, les participants doivent être identifiés ;
- Centralisée ou décentralisée : une blockchain décentralisée n'a pas de nœud central. Elle repose sur un réseau pair-à-pair dans lequel chaque nœud complet (full node) possède une copie entière de la blockchain et participe au réseau.
Le parcours d'une transaction
Prenons un wallet A qui envoie des bitcoins à un wallet B. La transaction est diffusée sur le réseau, puis regroupée avec d'autres dans un bloc. Ce bloc est transmis aux nœuds du réseau, qui le valident grâce à des techniques cryptographiques, principalement la preuve de travail (proof of work). Une fois validé, le bloc est ajouté à la chaîne et le wallet B reçoit les fonds. Trois principes rendent cela possible : une base de données distribuée, un protocole de consensus pour valider les transactions, et l'immuabilité des transactions passées.
Le hachage et le nonce
Le hachage est au cœur de la sécurité. Sur Bitcoin, l'algorithme utilisé est le SHA-256 : quelles que soient les données en entrée, la fonction de hachage produit un résultat, le hash, une longue chaîne de caractères. Les mêmes données donnent toujours le même hash, mais la moindre modification, par exemple sur le montant d'une transaction, donne un hash complètement différent : toute falsification se voit immédiatement.
Le nonce est un nombre qui ne peut être utilisé qu'une seule fois en cryptographie. C'est le cœur de la preuve de travail : il fonctionne en combinaison avec le hachage et permet d'éviter la manipulation des informations du bloc. Miner, c'est essayer un très grand nombre de valeurs de nonce jusqu'à obtenir un hash valide, c'est-à-dire qui respecte la difficulté fixée par le réseau.
Des blocs chaînés : pourquoi on ne peut pas réécrire le passé
Un bloc contient son numéro, les données des transactions, le nonce, son hash et le hash du bloc précédent. C'est ce dernier élément qui crée la chaîne : si quelqu'un modifie le contenu du bloc 1, son hash change, le bloc 2, qui contenait l'ancien hash, devient invalide, et ainsi de suite pour tous les blocs suivants. Pour modifier une transaction passée, il faudrait donc miner à nouveau tous les blocs qui suivent, un travail de calcul énorme.
Pour aller plus loin : Bitcoin, Ethereum et de nombreuses cryptomonnaies organisent en interne leurs transactions dans un arbre de Merkle.
La difficulté et les pools de minage
La difficulté s'ajuste automatiquement pour que le temps entre deux blocs reste stable : si davantage de mineurs arrivent et que les blocs sont trouvés trop vite, la difficulté augmente. En simplifiant, la difficulté correspond à la puissance de calcul du réseau multipliée par le temps de bloc visé. Exemple sur Ethereum Classic au moment du tournage : un hashrate réseau d'environ 143 TH/s, soit 0,143 PH/s, et un bloc toutes les 13 secondes environ donnent une difficulté proche de celle affichée, environ 1,88 PH. Ce mécanisme est essentiel : après le Merge d'Ethereum, Ergo a connu de gros problèmes parce que sa difficulté de minage n'arrivait pas à se mettre à jour correctement.
Dans une pool de minage, une partie appelée le stratum orchestre le partage du travail : elle envoie à chaque mineur une partie de la preuve de travail, avec sa propre difficulté. Les mineurs renvoient leurs solutions (les shares), et la pool, connectée à la blockchain, diffuse le bloc sur le réseau lorsqu'il est trouvé.
L'attaque des 51 % et les forks
Pour imposer une version modifiée de la blockchain, un attaquant doit contrôler plus de 50 % de la puissance de calcul du réseau. C'est pourquoi les nouvelles cryptomonnaies en preuve de travail sont vulnérables à leurs débuts, surtout au moment du tournage : avec l'arrêt du minage d'Ethereum, une telle masse de puissance de calcul était disponible que de gros mineurs pouvaient inonder une cryptomonnaie donnée, dépasser 50 % du hashrate et mener une attaque des 51 %.
Il arrive aussi qu'une blockchain se divise temporairement : c'est ce qu'on appelle un fork. Deux chemins séparés coexistent un moment, puis le réseau finit par converger vers une seule chaîne.
Les smart contracts, leurs principes et leur mise en œuvre pourraient faire l'objet d'une prochaine vidéo : dites-nous en commentaire si le sujet vous intéresse.
Pour choisir où envoyer votre puissance de calcul, lisez notre article Comment choisir sa pool de minage et retrouvez toutes nos vidéos sur la page tutoriels. Envie de participer à la sécurisation du réseau Bitcoin ? Découvrez nos mineurs Bitcoin.

