LE COIN DES CURIEUX

infos & life style

 

Article n°1 : Introduction à la blockchain 

Nous allons plonger lentement dans le monde des crypto-monnaies mais il est nécessaire d’en comprendre tous les tenants et aboutissants et quoi de mieux pour commencer que décrypter la technologie derrière les cryptomonnaies, la blockchain. 

La blockchain est plus ancienne que certains pourraient le croire, elle a été pour la première fois décrite par W. Scott Stornetta et Stuart Haber en 1991 lorsqu’ils ont voulu mettre en place une solution informatique permettant la non falsification ou altération de documents horodatés. Cette solution était une blockchain cryptographique afin de seulement stocker des documents horodatés. Pour donner suite à ça, la notion de protocole d’arbre de Merkle fut incorporée au projet en 1992 pour permettre au projet de gagner en efficacité en y allouant un jeton pour démontrer la preuve de travail (Proof Of Work) et permettre de résoudre certains problèmes.

L’arbre de Merkle (ou arbre de hachage) est en cryptographie, une grande structure de données contenant un résumé d’information d’un volume de données. L’arbre de hachage a pour principe de vérifier l’intégrité d’un ensemble de données sans pour autant avoir la totalité des données au moment de la vérification. 

Un exemple d’arbre de Merkel : 


Pour expliquer ce schéma très brièvement on a en bas les données dans les blocs L1 à L4. Ensuite cet arbre est constitué d’un ensemble de valeurs d’empreintes (hash) qui sont interdépendantes. Ces dernières sont reliées informatiquement deux à deux afin de calculer un hash parent. On répète l’action jusqu’à un hash final au sommet. Donc pour garantir l’intégrité d’un bloc il faut posséder les hash voisins (frères), oncles et le hash du sommet. Sachant que le hash sommet est le seul qui doit être récupéré de manière certaine pour confirmer l’intégrité de l’ensemble des données présentes dans l’arbre.

La définition la plus connue et la plus simple de la blockchain est la suivante : 

La blockchain est une technologie de transmission d’informations et de stockage, sécurisée et fonctionnant sans organe de contrôle central. Il s’agit d’une base de données distribuée (bdd) dont les informations sont transparentes, vérifiées et groupées à intervalle réguliers en blocs, formant ainsi une chaîne. Cette chaîne peut être considérée comme un registre distribué contenant l’historique de tous les échanges effectués entre ses utilisateurs depuis sa création.



Le réseau est donc lui distribué en plusieurs nœuds et chaque nœud détient une copie du réseau ou une capacité de validation/vérification des transactions. Ce sont chacune de ces structures individuelles (bloc) du registre qui par leur rassemblement constitue le réseau blockchain (chaîne de bloc). Donc chaque nœud occupé soit un rôle de validateur (Vérification/Validation des transactions) ou un rôle de registre (Entretien du registre de transaction pour permettre la robustesse du réseau. Les nœuds s’assurent du respect des règles de consensus en téléchargeant des copies du réseau).

Pour faire tout cela, il faut une grande puissance de calcul afin de trouver la solution mathématique de chaque bloc. Ce travail est rémunéré par la distribution de token et est ce qu’on appelle « Proof-of- Work ». Les nœuds validateurs sont plus communément appelés mineurs. Il existe plusieurs types de blockchain, publiques, privées ou de consortium.

Les blockchains publiques dont proviennent les crypto-monnaies, ne requièrent pas permission spécifique à l’entrée, ni lors de la réalisation des transactions. Tous les acteurs sont au même niveau et les nœuds sont contrôlés en Peer to Peer (P2P). Pour ce qui est des blockchains privées elles ont d’autres but et son par exemple étudiés pour d’autres aspects avec des modèles de consensus différent des blockchains publiques.

Le premier lien avec les crypto-monnaies remonte à 2008 avec le célèbre Bitcoin, cette dernière est la première blockchain appliquée à une cryptomonnaie, conceptualisée par Satoshi Nakamoto en 2008. Elle avait le rôle de composant principal du bitcoin, où elle sert principalement de registre public à toutes les transactions sur le réseau. De nombreuses autres crypto-monnaies ont été créées par la suite, toutes avec un mécanisme particulier mais elles ont toutes une chose en commun, la blockchain comme colonne vertébrale.

Les blockchains sont décentralisées et opèrent grâce au réseau de nœuds, c’est comme cela que la blockchain a permis de créer des systèmes entiers exempts de confiance, où les transactions sont opérées naturellement sans organe de contrôle. Les participants du réseau doivent se mettre d’accord sur l’état de la blockchain (réalisation de consensus), mais atteindre un consensus sur des réseaux distribués de manière fiable est très compliqué.

De là se pose une question, comment les nœuds s’accordent sur une décision alors que certains peuvent être défaillants ou malhonnête ? Cette question a donné naissance au problème des généraux byzantins qui a suivi le concept de tolérance aux pannes byzantines.


Problème des généraux byzantins et BFT (Byzantine Fault Tolerance) :

Le problème des généraux byzantins est un dilemme logique qui a pour mise en scène des généraux ayant des problèmes de communication pour s’accorder sur une décision stratégique. 

Le dilemme suppose que chaque général, est situé à différents endroits autour d’une ville à assiéger, ces mêmes généraux doivent se mettre d’accord, attaquer ou partir, ici peu importe la décision, ce qui compte est la prise de décision commune, un consensus afin d’être coordonné 

Donc, chaque général doit prendre une décision (Oui ou non), la prise de décision est définitive et les généraux doivent se mettre d’accord et exécuter le choix de manière synchronisée.




Les problèmes de communication dont il est question plus haut sont les suivants, un général peut communiquer avec un autre seulement à travers des messages qui sont transmis par un messager, vous l’aurez compris donc le problème principal est que les messages peuvent être égarés, retardés ou détruits. Quand bien même le message arriverait à destination, plusieurs généraux peuvent choisir d’agir de manière malveillante pour embrouiller la situation.

Ce dilemme, appliqué à notre contexte de blockchain, chaque général est représenté par un nœud dans un réseau et les nœuds doivent trouver un consensus sur une situation donnée. Expliqué autrement, la majorité des nœuds d’un réseau distribué doivent impérativement être en accord pour exécuter la même action pour que le consensus ne tombe pas à l’échec.

Pour éviter cela et arriver à un consensus dans un système distribué, il faut avoir au moins 2/3 de nœuds de réseau que l’on sait honnête et fiable. L’inverse est aussi vrai, si la majorité du réseau agit de manière malicieuse, le système est en proie aux défaillances et au hack (Attaque des 51% pour plus de recherches).

Nous parlons donc ici en blockchain de BFT (= Byzantine Fault Tolerance), qui représente un système capable de de résister aux problèmes vus plus haut, un système BFT donc fonctionne même certains nœuds agissent de manière malveillante.

Il existe de nombreuses façons de construire un système BFT et ainsi permettre à la blockchain d’atteindre la tolérance byzantine, l’un de ces moyens sont les algorithmes de consensus

Un algorithme de consensus un est mécanisme par lequel une blockchain trouve un consensus, les implémentations les plus courants sont la PoW (Proof Of Work), regardons le Bitcoin. 

Le protocole du bitcoin décrit les règles principales du système et c’est l’algorithme de consensus Proof of Work qui définit comment ces règles sont suivies pour trouver le dit consensus ; ce concept de PoW est ancien mais le(s) créateur du Bitcoin en a développé une version modifiée qui en tant que système BFT a permis la création du Bitcoin, et ce dernier est considéré encore aujourd’hui comme l’une des solution les plus pertinentes aux problèmes byzantin

En effet, L’algorithme Proof of Work n’est pas tolérant à 100% au problème byzantin mais d’autres facteurs comme le minage coûteux ou autre techniques cryptographiques sous-jacentes, PoW s’est révélé être une implémentation parmi les plus sécurisés et fiable pour la blockchain.


Ajouter un commentaire

Loading