Une blockchain est un registre partagé que de nombreux ordinateurs maintiennent synchronisé, sans propriétaire unique. Cet article explique comment elle est construite, pourquoi son historique est très difficile à modifier, et ce qu'est un contrat intelligent, avec des mots simples et des exemples réels.
Vous pouvez voir l'idée à l'œuvre pendant que vous lisez. Ouvrez la page Ethereum en direct ou la page Bitcoin en direct et vous verrez de nouveaux blocs apparaître l'un après l'autre.
L'idée de base : un registre que beaucoup de gens tiennent
Imaginez un cahier qui liste chaque paiement jamais effectué sur un réseau. Imaginez maintenant que des milliers de personnes en détiennent chacune une copie identique, et que de nouvelles pages ne sont ajoutées que lorsque la plupart d'entre elles sont d'accord. C'est le cœur d'une blockchain.
Le registre est public. N'importe qui peut le lire et le vérifier. Personne n'a besoin de faire confiance à une banque ou à une entreprise pour tenir les comptes, car les règles du réseau et les copies détenues par de nombreux participants font ce travail.
Les blocs : des pages de transactions
Une transaction est une instruction, par exemple « envoyer 20 USDC d'Alice à Bob ». Les transactions sont rassemblées en groupes appelés blocs. Un bloc est comme une page du registre.
Chaque bloc a une hauteur de bloc (block height), qui est sa position dans la chaîne. Le premier bloc a la hauteur 0, le suivant la hauteur 1, et ainsi de suite. Les blocs sont produits à un rythme régulier qui dépend du réseau :
- Bitcoin produit un bloc environ toutes les 10 minutes.
- Ethereum produit un bloc toutes les 12 secondes.
- Solana produit un nouveau créneau (slot) environ toutes les 400 millisecondes.
Sur ChainMonitor, chaque bloc est affiché sous forme d'une tuile qui indique son taux de remplissage et les frais payés. Cliquez sur une tuile pour voir les transactions qu'elle contient. Le guide lire une transaction explique ce que vous y trouverez.
Les hashs enchaînés : pourquoi la chaîne est une chaîne
Un hash est une courte empreinte de certaines données. Une fonction de hachage transforme n'importe quelle entrée en une chaîne de caractères de longueur fixe. La même entrée donne toujours le même hash. Changez une lettre de l'entrée et le hash paraît complètement différent. Il est impossible de remonter d'un hash aux données.
Chaque bloc contient le hash du bloc qui le précède. Ce lien est ce qui en fait une chaîne.
- Le bloc 100 contient ses transactions et le hash du bloc 99.
- Le bloc 101 contient ses propres transactions et le hash du bloc 100.
- Le bloc 102 contient le hash du bloc 101, et ainsi de suite.
Si quelqu'un modifiait une transaction du bloc 100, le hash du bloc 100 changerait. Le bloc 101 pointerait alors vers un hash qui ne correspond plus. L'écart se verrait aussitôt, et chaque bloc suivant serait également brisé.
Les nœuds : ceux qui gardent les copies
Un nœud (node) est un ordinateur qui exécute le logiciel du réseau, stocke la blockchain et vérifie les règles. Quand un nouveau bloc arrive, chaque nœud le vérifie indépendamment. Si un bloc enfreint une règle, par exemple en dépensant des pièces qui n'existent pas, les nœuds honnêtes le rejettent.
Certains nœuds aident aussi à produire des blocs. D'autres se contentent de lire et de vérifier. Quand vous utilisez un portefeuille, il dialogue généralement avec un nœud via un point d'accès RPC, une adresse web qui répond à des questions comme « quel est mon solde ? ». Vous pouvez comparer les points d'accès publics sur la page de santé des RPC.
Le consensus : comment tout le monde s'accorde
Avec des milliers de copies, le réseau a besoin d'un moyen de s'accorder sur le bloc suivant. Ce processus d'accord s'appelle le consensus. Il en existe deux grands types.
Preuve de travail
Dans la preuve de travail (proof of work, PoW), des participants appelés mineurs rivalisent pour résoudre un casse-tête difficile. Le casse-tête ne peut être résolu qu'en essayant un nombre énorme de possibilités, ce qui coûte de l'électricité et du temps de calcul. Le gagnant ajoute le bloc suivant et reçoit une récompense. Bitcoin utilise la preuve de travail.
Tricher coûte cher. Pour réécrire l'histoire, un attaquant devrait refaire le travail de l'ancien bloc et de tous les blocs suivants, et le faire plus vite que le reste du réseau réuni.
Preuve d'enjeu
Dans la preuve d'enjeu (proof of stake, PoS), des participants appelés validateurs immobilisent des pièces en dépôt, appelé enjeu (stake). Le réseau choisit des validateurs pour proposer et approuver des blocs. Les validateurs qui respectent les règles gagnent des récompenses. Ceux qui les enfreignent peuvent perdre une partie de leur enjeu. Ethereum et Solana utilisent la preuve d'enjeu.
Tricher coûte cher ici aussi, mais le coût est le dépôt plutôt que l'électricité.
Pourquoi personne ne peut modifier discrètement l'historique
Trois éléments agissent ensemble :
- Liens de hash. Modifier un ancien bloc brise tous les blocs suivants.
- Nombreuses copies. Un modificateur devrait changer la majorité des copies, pas une seule.
- Coût. Avec la preuve de travail, un attaquant a besoin d'une puissance de calcul énorme. Avec la preuve d'enjeu, un attaquant a besoin d'un enjeu gigantesque qui pourrait être détruit.
Cela ne veut pas dire que le système relève de la magie. Cela veut dire que l'historique devient plus difficile à modifier à mesure que des blocs s'ajoutent par-dessus. C'est pourquoi les plateformes d'échange et les applications attendent plusieurs confirmations avant de considérer un paiement comme définitif. Voir finalité et confirmations pour les détails.
Deux façons de tenir les soldes : comptes et UTXO
Les réseaux suivent « qui possède quoi » de deux manières.
Modèle de comptes. Ethereum, Arbitrum, Base, Optimism, Polygon et Solana fonctionnent comme un registre bancaire. Chaque adresse a un solde, et une transaction soustrait d'un solde et ajoute à un autre.
Modèle UTXO. Bitcoin fonctionne plutôt comme de l'argent liquide. Un UTXO (unspent transaction output, sortie de transaction non dépensée) est un morceau semblable à une pièce qui ne peut être dépensé qu'une seule fois. Un paiement utilise un ou plusieurs UTXO comme entrées et en crée de nouveaux comme sorties, y compris généralement de la « monnaie rendue » (change) qui revient à l'expéditeur. Votre solde Bitcoin est la somme des UTXO que vous pouvez dépenser.
Aucun des deux modèles n'est meilleur à tous égards. Ce sont des conceptions différentes avec des compromis différents.
Qu'est-ce qu'un contrat intelligent ?
Un contrat intelligent (smart contract) est un petit programme stocké sur une blockchain. Il s'exécute exactement comme écrit quand quelqu'un lui envoie une transaction. Il peut détenir des jetons, suivre des règles et envoyer des résultats à d'autres contrats. Personne ne peut modifier le code d'un contrat déployé, sauf si le code lui-même autorise les mises à jour.
Exemples : un contrat qui échange un jeton contre un autre, un contrat qui prête de l'argent contre une garantie, ou le contrat qui définit le jeton USDC. Ethereum et les chaînes construites dessus exécutent des contrats avec l'EVM (Ethereum Virtual Machine). Solana a son propre système de contrats, où les programmes s'exécutent selon une autre conception. Bitcoin ne prend en charge que des scripts simples.
Exécuter un contrat coûte des frais appelés gas. Voir gas et frais pour savoir comment ils sont calculés.
Un contrat intelligent ne vaut que ce que vaut son code. Un bug dans un contrat peut faire perdre des fonds, et une transaction ne peut pas être annulée une fois qu'elle est définitive.
Pour aller plus loin
Pour voir comment les différents réseaux se situent les uns par rapport aux autres, lisez couche 1, couche 2 et couche 3 expliquées. Pour apprendre à détenir vos propres fonds, lisez portefeuilles et clés. Pour des définitions courtes, utilisez le glossaire.
Questions fréquentes
Une blockchain est-elle la même chose que Bitcoin ?
Non. Bitcoin est une blockchain, la première à avoir été largement utilisée. Une blockchain est la technologie sous-jacente. Ethereum, Solana et bien d'autres sont des blockchains distinctes avec leurs propres règles.
Une blockchain peut-elle être piratée ou modifiée ?
Réécrire d'anciens blocs d'un grand réseau est extrêmement coûteux et ne s'est pas produit sur les plus grands. La plupart des pertes viennent d'ailleurs : clés volées, arnaques, ou bugs dans les contrats intelligents et les applications construites par-dessus.
Qui contrôle une blockchain ?
Aucun propriétaire unique ne contrôle une blockchain publique. Les règles sont fixées par le logiciel que font tourner les nœuds, et les changements nécessitent un large accord entre développeurs, validateurs ou mineurs, et utilisateurs. C'est volontairement plus lent qu'une décision d'entreprise.
Quelle est la différence entre un bloc et une transaction ?
Une transaction est une action, comme un paiement. Un bloc est un paquet de nombreuses transactions ajoutées ensemble à la chaîne.
Pourquoi les transactions blockchain coûtent-elles des frais ?
Les frais rémunèrent ceux qui font fonctionner le réseau et empêchent le spam. Les blocs ont un espace limité : les frais décident donc aussi de quelles transactions passent en premier quand le réseau est chargé.