Blockchain Partie 1 – Les principaux composants et différents mécanismes de consensus
La blockchain est un sujet complexe au cœur de l’actualité, notre équipe de recherche Bletchley Park[1] a décidé d’effectuer un focus autour de cette technologie en trois parties. Cette première partie sera consacrée aux 3 principaux composants de la blockchain et les consensus les plus utilisés à l’heure actuelle.
Les principaux composants
Une blockchain peut être décrite comme un livre de donnée qui contient l’ensemble des transactions qui ont eu lieu depuis sa création. C’est ce que l’on appelle le « ledger ». Cette base de donnée est partagée et sécurisée grâce à un processus innovant qui permet d’effectuer des transactions sans utiliser de tiers.
Le processus innovant s’appuie sur deux composants qui sont partie intégrante de toute blockchain :
-
-
- Un network ou réseau d’utilisateurs
- Un protocole qui assure la validité et sécurité, appelé consensus
-
The network – réseau d’utilisateur
Pour pouvoir utiliser la blockchain de manière décentralisée, les participants possèdent tous l’état actuel de la blockchain. La blockchain est donc téléchargée et synchronisée sur les différents ordinateurs qui constituent le réseau.
Ces ordinateurs sont appelés nœuds, et ils travaillent ensemble dans un réseau peer-to-peer pour s’assurer que la blockchain est sécurisée et à jour. Lors de chaque ajout, après avoir vérifié qu’il est valide, chacun des nœuds actualise sa blockchain. L’utilisation d’un réseau peer-to-peer présente certains avantages :
- L’état de la blockchain est connu à chaque instant sans avoir besoin d’un tiers
- La sécurité de la blockchain est assurée par le réseau lui-même, ce qui réduit les coûts
- La blockchain ne peut pas être piratée ou corrompue, car un acteur mal intentionné devrait pirater des milliers d’ordinateurs en même temps, au lieu d’un seul serveur.
- La blockchain n’est jamais supprimée, car elle devrait être supprimée par tous les nœuds.
Fig. 1 : Comparaison entre un réseau avec un Serveur et Peer-to-Peer
Les avantages sont appréciables mais ne permettent pas d’assurer que l’information contenue dans chaque bloc soit vraie. Pour ce faire, le réseau doit pouvoir se mettre d’accord, cet accord s’appelle le consensus et varie selon les types de blockchain.
Les mécanismes de consensus
« The purpose of a consensus algorithm is to allow for the secure updating of a state according to some specific state transition rules, where the right to perform the state transitions is distributed among (…) users which are given the right to collectively perform transitions through an algorithm» – (Buterin, 2017)
« L’objectif d’un mécanisme de consensus est de permettre la mise à jour sécurisée de la blockchain en suivant des règles précises, sachant que le droit de modification est partagé parmi les utilisateurs qui ajoutent des blocks grâce à un algorithme » (Buterin, 2017)
L’innovation du bitcoin a été de mettre en place un consensus basé sur la cryptographie. Le consensus permet à tous les nœuds de travailler ensemble dans un réseau peer-to-peer sans avoir besoin de se connaitre ou de se faire confiance. Pour autant le consensus est simplement un protocole qui définit des règles que tous les participants du réseau appliqueront, ces règles s’appliquent sur :
- Comment ajouter un block
- Comment déterminer si un block est valide
- Comment résoudre les problèmes de conflits sur la validité[2]
Nous vous présentons ci-dessous quelques mécanismes de consensus expliqués de manière simplifiée. Il est néanmoins nécessaire de prendre en compte qu’il n’existe pas de mécanisme parfait, chaque consensus présente des avantages et inconvénients, il faut donc choisir un consensus ou autrement dit une blockchain en fonction du problème à traiter.
Proof of Work (PoW) – Bitcoin
Le mécanisme le plus connu à l’heure actuelle, utilisé par le Bitcoin : Proof of Work. Dans ce mécanisme, afin d’ajouter un block, les utilisateurs doivent résoudre un « casse-tête ». La résolution du casse-tête s’appelle aussi mining, et les miners sont les nœuds du réseau qui bénéficient, en récompense pour leurs calculs, de bitcoin et parfois de commission sur certaine transaction.
Il existe de multiples critiques à l’égard de l’algorithme PoW. La principale est son cout en énergie, en effet afin d’assurer que la blockchain ne sera jamais compromise le « casse-tête » est compliqué à résoudre, cela entraine une forte dépense énergétique. En outre, le consensus PoW a un temps de latence élevé pour la validation des transactions.
En termes de sécurité du réseau, PoW est sensible à l’attaque de 51%, qui fait référence à une attaque sur la blockchain par un groupe de mineurs contrôlant plus de 50% de la puissance informatique du réseau ce qui est très difficile à accomplir.
Proof of Stake (PoS) – Ethereum
Le consensus Proof of Stake est celui utilisé par Ethereum. Concernant le mécanisme PoS, les nœuds ont un statut différent, ce sont des validateurs. Plutôt que de miner les blocks, ils effectuent le travail de validation des transactions et touchent une commission. Le mining n’existe pas car tous les tokens (ou coins) existent dès le premier jour. C’est ensuite le hasard qui va sélectionner quel nœud aura la chance d’effectuer la validation et donc recevoir la récompense. La probabilité dépend du stake qui caractérise l’engagement des différents nœuds dans le réseau. Ainsi, si le nœud X possède 2 tokens et que le nœud Y possède 1 token, le nœud X a deux fois plus de chance d’être sélectionné pour valider un bloc. L’algorithme de PoS permet d’économiser beaucoup d’énergie et de ressources de calcul, à contrario du mining avec le consensus PoW.
Proof of Elapsed Time (PoET) – Hyperledger Sawthooth
« The validator with the shortest wait time for a particular transaction block is elected the leader. » (Hyperledger, Sawtooth documentation Introduction, 2018).This « leader »gets to create the next block on the chain.
Le PoET est un mécanisme de consensus développé par Intel Sawtooth Lake, une plate-forme de blockchain privée (permissioned) qui s’appelle désormais Hyperledger Sawtooth. Le consensus qui gère l’attribution de la création de block se base sur un tirage au sort, chaque participant attend une durée aléatoire fournie par le CPU, le premier participant qui a terminé son temps d’attente devient le leader et ajoutera le block suivant. Le participant doit bien-sûr inclure la preuve qu’il a bien attendu le temps qui lui était alloué et n’a pas triché. Cette sécurité est garantie par Intel Software Guard Extensions qui permet d’assurer que le tirage au sort n’est pas altéré par un logiciel externe. Ce consensus permet d’assurer que le rôle de « leader » est partagé entre tous les nœuds et réduit fortement le temps nécessaire pour l’ajout d’un block.
Proof of Authority (PoA) – Euthereum
Le consensus appelé Proof of Authority, peut être utilisé pour les blockchain privées et Ethereum l’utilise sur certains projets. Ce consensus dispose tout comme le PoS d’un réseau de validateurs qui vont tour à tour ajouter des blocks qui seront ensuite validés par les autres nœuds dit d’autorité. Une fois cette confirmation effectuée la blockchain est actualisée et l’intégralité des acteurs du réseau peut s’en servir (autorité ou utilisateurs). On obtient ainsi une blockchain plus rapide, demandant moins de ressources de calcul et ainsi une baisse de la consommation énergétique.
La blockchain tout comme de nombreuses technologies émergentes est parfois présentée comme « couteau Suisse ». De manière générale, il est important de se rappeler que quel que soit le projet la technologie n’est qu’un support qui permet de résoudre des problèmes ou de créer de la valeur. La définition du besoin et de la valeur ajoutée attendue est primordiale pour comparer les technologies disponibles et ainsi identifier la solution qui y répond au mieux.
Dans notre prochain article nous mettrons en avant différents cas d’utilisation par secteur où la blockchain nous parait pertinente et à forte valeur ajoutée.
Article écrit par Andrea Sebire (B-Com Bletchley Park)
[1] Bletchley Park est le Data Lab de HeadMind Partners, réalisant des expérimentations sur les technologies Data innovantes : IoT, IA (NLP, machine learning…), RPA, Blockchain. Il est notamment à l’origine du Chatbot interne HeadMind Partners.
[2] Si deux nœuds proposent un block valide au même moment