Qu'est-ce qu'une blockchain ?
Vous avez forcément entendu parler du bitcoin, le cas d'usage le plus connu de la blockchain, mais qu'est-ce qu'une blockchain en réalité ?
Article publié le 24/05/2022, dernière mise à jour le 04/10/2023
Grâce à Tim Berners-Lee, le World Wide Web a littéralement changé notre quotidien, révolutionné notre apprentissage et le nombres d'informations disponibles.
Malheureusement, l'abondance (exponentielle) de ces données a révélé ces dernière années un problème autour de la confiance accordées à ces informations et des institutions qui les génèrent/contrôlent.
Comment pouvons-nous faire confiance aux informations ?
Les géants de l'industrie technologique ont peu à peu détruit la confiance d'une grande partie d'entre nous envers la provenance, la récolte et le partage de nos données.
Et si la Blockchain était un début de solution ?
L'histoire courte de la blockchain
Même si les débuts de la blockchain arrivent un peu plus tard, une thèse de 1982 du cryptographe David Chaum propose un protocole similaire a la blockchain.
Sa thèse s'intitule: "Systèmes informatiques établis, maintenus et approuvés par des groupes mutuellement suspects"
La "Blockchain" (chaine de bloc en Français) a réellement été un sujet d'étude pour la première fois en 1991, par deux chercheurs : Stuart Haber et W. Scott Stornetta.
Ces derniers voulaient mettre en place un système où les documents horodatés (qui mentionne l'heure à laquelle il a été créer) ne seraient ni falsifiés ni obsolètes.
En 1992, le système fut amélioré en incorporant le concept d'arborescence de Merkle qui permet de combiner plusieurs documents en un seul bloc.
La première blockchain sera inventée en 2008 et dévoilée au public le 3 janvier 2009, par une personne dont on ne connait pas la réel identité mais apparaissant sous le personnage de Satoshi Nakamoto.
Cette implémentation de la blockchain fut le noyau central du Bitcoin
Qu'est ce qu'une blockchain ?
Pour faire simple, la blockchain est une base de données.
C'est à dire qu'on peut y ajouter des informations, qui, une fois inscrites (dans notre chaîne de blocs), sont impossible à modifier ou à supprimer.
Les données peuvent être :
- Un contrat de travail
- Une reconnaissance de dette
- Des cours
- Des articles
- Des scores dans un jeu
- Etc...
En réalité il n'y a aucune limite technique sur le type de données à stocker, toute la nuance réside dans la manière de stocker ces données.
La différence avec une base de donnée classique ?
Une blockchain possède deux caractéristiques principales qui la différencie d'une base de données classique.
1) La structure de donnée
Une blockchain regroupe les informations dans des groupes appelés Blocs.
Chaque bloc contient trois parties :
- Les données : Les données sont stockées de manière immuable (impossible à être modifié) dans le registre de la blockchain et contiennent toutes les données brutes de transaction.
- Le hash : L'identifiant unique représentant (mathématiquement le contenu actuel du bloc, sous une forme réduite). Le concept de hashage est expliqué dans cet autre article du blog !
- Le hash du bloc précédent : Pour former une chaîne, chaque bloc inclus le hash du bloc précédent. Ce qui augmente sa sécurité, car s'il y a une modification, le hash serait différent et rejetterait automatiquement la tentative de fraude. Le premier bloc a comme hash précédent le bloc originel la valeur "00000".
L'algorithme de hashage utilisé pour le Bitcoin par exemple est l'algorithme SHA-256.
2) Le stockage de données
Les bases de données classique ont une structure centralisée, à peu près comme ceci :
Le stockage se fait en un point central, sur un serveur principal, avec d'autres serveurs servant à la redondance ou au partage des données (sharding), mais tous géré par un noeud commun.
Ce qui fait que c'est un système vulnérable car il y a un point de défaillance unique (Single Point of Failure)
La blockchain quant à elle, est une base de données décentralisée, que l'on représente plutôt comme une toile d'araignée :
Une base de donnée décentralisée fonctionne de manière distribuée et stocke ses informations sur un réseau de nœuds de stockage (appelés couramment des "nodes").
Chaque nœud, possède une copie complète et synchronisée du grand livre (le grand livre est l'enregistrement de chaque opérations/transactions effectué dans une blockchain).
Dans une architecture distribuée, si un nœud ne fonctionne plus, un autre prend le relais.
À noter qu'il existe des dizaines de systèmes distribués différents, de protocoles et d'outils, mais ces derniers sont souvent basés sur des technologies centralisées, et la décentralisation se fait au niveau de l'application logique (comme PeerTube ou Mastodont par exemple).
Seule la blockchain travaille au niveau de la donnée directement, et son intérêt réside également dans la confiance et la vérification des données, pour empêcher toute falsification.
Comment la blockchain empêche-t'elle la fraude ?
Ce qui permet a une blockchain d'empêcher la falsification de ses données, c'est le système de validation par un algorithme de consensus.
Proof of Work
Comme le Proof of Work (PoW) ou "Preuve de Travail" en Français, il existe différents algorithmes de consensus, et chaque blockchain décidera du processus utilisé pour parvenir à un accord sur l'état actuel du grand livre.
Si le concept de Proof of Work vous est inconnu, nous y avons consacré un article sur Code-Garage.
Utilisé sur Bitcoin et Ethereum par exemple, le PoW met en compétition des noeuds de la blockchain (dénommé les mineurs) dans un seul et unique objectif : résoudre des problèmes cryptographiques complexe.
Cet effort (de calcul) permet de prouver que l'on est légitime à aider à la validation des blocs. Une fois résolu, le bloc deviendra valide et sera ajouté à la blockchain, et les mineurs seront récompensés par des crypto-monnaies.
Se reliant au bloc précédant, ce nouveau bloc permet de créer une chaîne de bloc (d’où le nom de "blockchain")
Si cette méthode de consensus a l'avantage d'être simple à mettre en place, il y a cependant une faille importante (parmi d'autres, comme sa consommation d'énergie) dans cet algorithme :
Si une personne ou un groupe venait à posséder 51% des nœuds actifs (ceux des mineurs contrairement aux utilisateurs qui eux sont passifs), il auraient alors le contrôle du réseau de nœud.
Ils seraient donc en mesure de falsifier l'historique des transactions présentent sur la blockchain.
Proof of Stake
Il existe un autre algorithme de consensus appelé le Proof of Stake (PoS), signifiant "Preuve de Participation" et crée comme alternative à la "Proof of Work".
Ce mécanisme consiste à mettre en compétition les noeuds pour valider les blocs, comme pour les mineurs, mais en basant la possibilité de valider ces derniers en fonction du montant de crypto-monnaies déjà acquises par le passé.
C'est à dire que plus vous possédez grâce a votre engagement auprès d'une blockchain, plus vous aurez la chance de miner le bloc suivant, et donc d'obtenir de nouvelles crypto-monnaies en récompense.
Ici aussi une faille importante existe : les validateurs avec les plus grandes participations peuvent avoir une influence incontrôlable.
En conclusion, il existe encore beaucoup de possibilités pour créer de nouveaux processus de consensus pour résoudre les problèmes existants. Tout est encore a faire dans cet écosystème technique !
Aucun commentaire pour l'instant