General
Introduction à la Blockchain et à Solana

Introduction à la Blockchain et à Solana

Fondamentaux de la blockchain

Maintenant que vous comprenez pourquoi les systèmes distribués sont fondamentalement difficiles et pourquoi le problème des généraux byzantins semblait insoluble, explorons comment fonctionne réellement la blockchain.

La percée est venue de la combinaison de deux innovations clés : de nouveaux mécanismes de consensus et une utilisation intelligente des primitives cryptographiques.

Mécanismes de consensus

Les informaticiens ont en fait résolu mathématiquement le problème des généraux byzantins dans les années 1980, démontrant que pour tolérer f traîtres, vous avez besoin d'au moins 3f+1 participants au total.

Considérons le cas classique d'un traître parmi quatre généraux. Si le général commandant est le traître, il pourrait dire à deux généraux d'"attaquer" et à un de "battre en retraite". Si les généraux suivaient simplement leurs ordres, le plan échouerait. La solution nécessite un tour de communication supplémentaire où tous les généraux rapportent l'ordre qu'ils ont reçu aux autres.

Ce tour de communication supplémentaire révèle la tromperie du commandant. Chaque général loyal voit que "attaquer" est l'ordre majoritaire (deux contre un) et agit en conséquence. Comme tous les généraux loyaux arrivent à la même conclusion, le consensus est atteint et le traître est vaincu.

La solution mathématique qui sous-tend cela fonctionne, mais est peu pratique :

  • Vous devez connaître exactement qui sont tous les participants à l'avance

  • Plusieurs tours de messages entre chaque paire de participants

  • La complexité de communication croît exponentiellement

  • Dans un système sans permission, les attaquants peuvent créer un nombre illimité de fausses identités

Pour résoudre ce problème, au lieu de compter les identités, les blockchains comptent quelque chose de coûteux à falsifier : le travail informatique ou l'argent mis en jeu.

Preuve de travail (POW)

Dans les systèmes POW, pour proposer ce qui devrait se passer ensuite, vous devez prouver que vous avez effectué un travail informatique coûteux :

  • Les mineurs rassemblent les transactions en attente dans un "bloc"

  • Les mineurs doivent trouver un nombre aléatoire (appelé "nonce") qui, combiné avec les données du bloc et haché, produit un résultat commençant par plusieurs zéros

  • Le premier mineur à trouver ce nombre diffuse sa solution au réseau

  • Les autres participants peuvent instantanément vérifier que la solution est correcte et accepter le nouveau bloc

Cela fonctionne car trouver le nonce peut nécessiter des billions d'essais aléatoires, mais la vérification de la solution ne prend que quelques millisecondes.

Chaque bloc fait également référence au hash du bloc précédent, créant ainsi une chaîne. Pour réécrire l'histoire, un attaquant devrait refaire tout le travail de calcul subséquent pendant que les mineurs honnêtes continuent d'étendre la vraie chaîne.

L'hypothèse de sécurité est que l'attaque coûte plus en électricité que ce que l'attaquant pourrait gagner.

Preuve d'enjeu

Dans les systèmes POS, au lieu de consommer de l'électricité, les participants mettent leur propre argent en jeu :

  • Les participants bloquent des jetons de cryptomonnaie comme garantie

  • Le protocole sélectionne aléatoirement des validateurs pour proposer des blocs, pondérés par leur mise

  • Les validateurs sélectionnés proposent des blocs, et d'autres validateurs votent pour accepter ou rejeter

  • Un comportement honnête génère des récompenses ; un comportement malhonnête entraîne un "slashing", où une partie de leurs jetons mis en jeu est confisquée. La pénalité exacte varie selon le réseau et la gravité de l'infraction.

Cela fonctionne car les validateurs ont "quelque chose à perdre". Attaquer le réseau détruirait la valeur de leurs jetons mis en jeu (par le slashing). De plus, contrairement à la preuve de travail, la preuve d'enjeu peut fournir une finalité économique. Une fois qu'un bloc est finalisé par une supermajorité de validateurs, le renverser nécessiterait qu'un attaquant détruise de façon prouvable une vaste quantité de capital, rendant l'inversion prohibitivement coûteuse.

Le trilemme de la blockchain

Tout comme les systèmes distribués font face au théorème CAP, les blockchains font face à leur propre compromis impossible. Le trilemme de la blockchain stipule que le consensus de blockchain peut optimiser au maximum deux de ces trois propriétés :

  • Sécurité : résistance aux attaques et à la censure

  • Évolutivité : débit élevé de transactions

  • Décentralisation : aucun point unique de contrôle

Bitcoin a privilégié la sécurité et la décentralisation au détriment de l'évolutivité. Les systèmes de paiement traditionnels comme Visa ont choisi l'évolutivité et la sécurité au détriment de la décentralisation. Le défi permanent est de trouver des moyens d'atteindre simultanément ces trois objectifs.

Primitives cryptographiques

Les mécanismes de consensus résolvent le problème de "qui décide", mais comment garantir que les données elles-mêmes sont fiables ?

C'est là qu'interviennent les primitives cryptographiques : des outils mathématiques qui ont été éprouvés pendant des décennies.

Les blockchains s'appuient sur trois outils cryptographiques clés qui fonctionnent ensemble pour créer un système immuable et vérifiable :

Fonctions de hachage

Imaginez que vous deviez vérifier qu'un document massif n'a pas été modifié, mais que vous ne puissiez envoyer qu'une infime quantité d'information pour le prouver. C'est exactement ce que les fonctions de hachage accomplissent.

Une fonction de hachage prend n'importe quelle entrée (que ce soit le mot "Bonjour", l'ensemble des œuvres de Shakespeare, ou un bloc contenant des milliers de transactions) et produit une sortie de taille fixe qui sert d'empreinte digitale numérique unique.

Les fonctions de hachage possèdent trois propriétés clés :

  • Déterministes : La même entrée produit toujours la même sortie.

  • Irréversibles : La fonction est facile à calculer dans un sens, mais pratiquement impossible à inverser. À partir d'un hachage, vous ne pouvez pas facilement retrouver l'entrée originale sauf par force brute ou table de correspondance.

  • Effet d'avalanche : Un petit changement dans l'entrée (comme la mise en majuscule d'une lettre) entraîne un hachage de sortie complètement différent.

Considérez ces hachages SHA-256, qui démontrent l'effet d'avalanche :

plaintext
SHA-256("Hello") = 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
SHA-256("hello") = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Remarquez comment le simple changement de la casse d'une lettre crée un hachage complètement différent.

Bien qu'il soit trivial de calculer un hachage à partir de n'importe quelle entrée, il est pratiquement impossible d'inverser le processus. À partir d'un hachage, vous ne pouvez pas déterminer quelle était l'entrée originale, car cela prendrait plus de temps que l'âge de l'univers pour une fonction de hachage sécurisée.

Dans les blockchains, les hachages sont utilisés pour l'intégrité. Chaque bloc contient le hachage du bloc précédent, créant une chaîne incassable. Si quelqu'un modifiait une transaction de la semaine dernière, cela changerait le hachage de ce bloc. Comme le bloc suivant fait référence à l'ancien hachage, la modification briserait la chaîne. Pour corriger cela, il faudrait recalculer le hachage de chaque bloc suivant pendant que le réseau continue d'ajouter de nouveaux blocs, ce qui est un jeu de rattrapage pratiquement impossible.

Signatures numériques

L'authentification traditionnelle repose sur des secrets partagés comme les mots de passe, mais la blockchain fonctionne sans autorités de confiance ni canaux sécurisés pour partager des secrets. Pour cette raison, elles utilisent des signatures numériques, qui permettent l'authentification sans révéler aucune information secrète.

Les signatures numériques utilisent la cryptographie asymétrique qui repose sur des relations mathématiques faciles à calculer dans un sens mais presque impossibles à inverser. Lorsque vous créez une signature numérique, vous générez deux nombres mathématiquement liés appelés clé privée et clé publique ; la clé privée doit rester secrète tandis que la clé publique peut être partagée librement.

  • La clé privée peut être utilisée pour créer une signature numérique pour une transaction spécifique

  • La signature est unique à la fois pour votre clé privée et le contenu exact de la transaction.

  • N'importe qui peut utiliser votre clé publique pour vérifier que la signature n'a pu être créée que par quelqu'un possédant la clé privée correspondante.

Sans votre clé privée, il est informatiquement impossible de créer une signature valide, même avec accès à des millions de signatures précédentes. Pour empêcher un attaquant de rejouer une ancienne transaction, chaque signature doit inclure un élément de données unique, souvent un simple compteur appelé "nonce", garantissant que chaque signature est unique.

Cela crée une "non-répudiation" : une fois que vous avez signé une transaction, vous ne pouvez pas prétendre ne pas l'avoir autorisée. La preuve mathématique est irréfutable.

Dans les blockchains, c'est ainsi que fonctionnent les portefeuilles. Votre "portefeuille" ne stocke pas de cryptomonnaie ; les pièces existent sous forme d'entrées sur la blockchain. Au lieu de cela, les portefeuilles stockent des clés privées et aident à créer des signatures numériques pour prouver que vous pouvez dépenser ces pièces. Ce sont essentiellement des gestionnaires de signatures numériques.

Arbres de Merkle

Comment vérifier qu'une transaction spécifique existe dans un bloc contenant des milliers d'autres transactions sans télécharger le bloc entier ?

Les arbres de Merkle organisent les données dans un arbre binaire où chaque feuille représente une transaction, et chaque nœud parent contient le hachage de ses deux enfants. Cela continue jusqu'au sommet de l'arbre jusqu'à atteindre un seul hachage racine représentant l'ensemble des données.

Pour cette raison, pour prouver qu'une transaction existe dans l'arbre, vous n'avez besoin que de la transaction et du "chemin de Merkle" : les hachages frères nécessaires pour reconstruire la racine. Cela signifie que pour un arbre avec un million de transactions, vous n'avez besoin que d'environ 20 hachages pour prouver l'inclusion.

Dans les blockchains, les arbres de Merkle rendent extrêmement facile la vérification des transactions avec seulement quelques kilo-octets de preuve. La garantie de sécurité reste identique : si le chemin de Merkle se vérifie correctement, vous pouvez être mathématiquement certain que la transaction a été incluse dans ce bloc.

La création d'un système sans confiance

Le consensus et les primitives cryptographiques fonctionnent ensemble pour créer un système "sans confiance". Pour la première fois dans l'histoire, la confiance est placée dans les mathématiques et non dans les personnes :

  • Les fonctions de hachage garantissent que toute falsification des données historiques devient immédiatement apparente.

  • Les signatures numériques prouvent l'autorisation sans nécessiter d'intermédiaire de confiance pour vérifier l'identité.

  • Les arbres de Merkle rendent pratique la vérification de revendications complexes sans télécharger d'énormes quantités de données.

Lorsqu'ils sont combinés avec des mécanismes de consensus, ces outils créent un système où chaque participant peut vérifier indépendamment l'historique complet du système en utilisant uniquement ses propres ressources informatiques. Pas d'autorités de confiance, pas de secrets partagés, pas de points centraux de défaillance.

C'est pourquoi la blockchain représente un changement si fondamental. Les systèmes traditionnels assurent la sécurité en contrôlant l'accès et en limitant la participation. La blockchain assure la sécurité en rendant la vérification peu coûteuse et universelle tout en rendant la fraude coûteuse et évidente.

Comprendre ces principes fondamentaux est crucial car ils définissent ce que la blockchain peut et ne peut pas faire. Ils expliquent pourquoi les transactions blockchain sont irréversibles (le coût économique pour inverser une transaction finalisée est conçu pour être prohibitivement élevé), pourquoi les systèmes blockchain peuvent fonctionner sans autorités centrales (chacun peut tout vérifier indépendamment), et pourquoi le système reste sécurisé même lorsqu'il est complètement ouvert à la participation publique.

Blueshift © 2025Commit: e573eab