Pour ce troisième article d’une série sur la blockchain, Albéric Piot, un de nos Consultants Supply Chain, répond à cette question que nous nous posons tous : concrètement, comment la blockchain fonctionne-t-elle et en quoi est-elle si sécurisée ? Albéric vous éclaire en identifiant les process clés de cette technologie qui garantit des transactions infalsifiables grâce à la seule puissance de son réseau et sans autorité centrale de contrôle.
Un point pour mieux comprendre les mécanismes de la blockchain et appréhender les enjeux qu’elle représente dans certains secteurs, comme la Supply Chain.
Albéric,
Consultant Supply Chain
Après le premier article d’introduction et le second qui explique les concepts cryptographiques de base d’une blockchain, je souhaite présenter avec ces quelques lignes le process se cachant derrière cette technologie. L’objectif n’est pas de rentrer en détail dans la technologie, mais plus de comprendre les principales étapes du fonctionnement d’une blockchain.
Il est en effet important d’identifier les process clefs pour se rendre compte de la puissance de cette technologie et ainsi mieux appréhender les enjeux qu’elle représente dans un grand nombre de secteurs comme celui de la Supply Chain par exemple.
Notons tout d’abord qu’il existe plusieurs types de blockchain : les blockchains de type « registre » qui permettent de stocker des données, les blockchains permettant des transferts d’actifs financiers et enfin les blockchains plus sophistiquées permettant d’exécuter des contrats.
Chacune de ces trois typologies de blockchain présente des spécificités de fonctionnement. Cependant, il existe un certain nombre de points communs et process de base que je vais présenter dans la suite de cet article.
Comme présenté dans les articles précédents, nous pouvons considérer la blockchain comme un grand registre public, anonyme et distribué.
Avant l’apparition de la blockchain, les échanges de pair à pair que nous faisions relevaient plus du « partage ». Lorsque nous envoyons une vidéo par mail à un ami par exemple, nous restons propriétaire du fichier car c’est en réalité une copie du document qui est envoyée. Ce schéma d’échange n’est donc pas adapté si l’on souhaite transférer de la valeur.
Lorsque nous envoyons de la valeur en effectuant un virement bancaire par exemple, l’entité tierce (ici la banque) vient garantir la transaction. La banque vient s’assurer que la somme à virer est débitée du compte de l’émetteur et que cette somme est ajoutée au compte du destinataire.
Quelles sont les fonctions nécessaires à un système permettant d’effectuer des transferts de valeur en s’affranchissant des entités tierces ?
Les propriétés de base de la blockchain permettent de répondre à cette question.
LES RÔLES DES UTILISATEURS AU SEIN D’UNE BLOCKCHAIN
La particularité des blockchains publiques est le fonctionnement en réseau de pair à pair ouvert : c’est-à-dire que n’importe quel ordinateur peut rejoindre le réseau sans demande préalable. Chaque utilisateur peut choisir librement d’exercer la ou les fonctions qu’il souhaite :
Pour les blockchains privées, ces rôles sont répartis et il faut avoir une autorisation préalable pour exercer une ou plusieurs de ces fonctions.
Focus sur les étapes clefs de fonctionnement d’une chaine de blocs.
Rappel du fonctionnement simplifié d’une blockchain (issu du premier article d’introduction) :
Lors d’un échange via une blockchain, l’utilisateur A documente les informations ou les caractéristiques de la transaction qu’il souhaite réaliser via la blockchain. Ces éléments sont ensuite placés dans un bloc avec d’autres transactions ce qui permettra par la suite un séquencement des vérifications. Ce bloc est soumis à la vérification du réseau puis placé au bout de la chaine de bloc. C’est à la fin de cette dernière étape que la transaction est considérée comme conforme et qu’elle est donc validée.
Pour information la durée d’une transaction sur la blockchain Bitcoin est de 10 min ce qui est bien plus rapide que si nous effectuons une transaction par virement bancaire.
Nous pouvons donc identifier trois étapes clefs : la diffusion des écritures, la construction d’un bloc et l’ajout de ce dernier à la chaine de bloc.
Le développement d’une blockchain repose sur un cycle répété de ces étapes.
Step 1 : diffusion des écritures
Lorsqu’un utilisateur soumet une nouvelle écriture à la blockchain, ces données entrent dans le système via un nœud simple. Ce dernier vérifie que la structure des informations est correcte et que cette nouvelle écriture est légitime : c’est-à-dire qu’elle n’est pas en contradiction avec les informations déjà présentes dans la blockchain.
Par exemple, si vous effectuez une transaction sur la plateforme Bitcoin, le nœud vérifiera que vous avez les fonds nécessaires, que vous êtes identifié et autorisé à effectuer cette transaction.
Une fois validée par un nœud simple, cette écriture est ajoutée à une liste d’attente locale et diffusée aux autres nœuds du réseau. Chaque nœud qui reçoit une nouvelle écriture validée par un autre nœud effectue lui aussi que ces informations sont cohérentes avec les données qu’il possède, puis il l’ajoute à sa liste d’attente.
A l’issue de cette étape du processus, les informations non conformes sont rejetées et les autres sont diffusées à l’ensemble des nœuds du réseau. Elles sont stockées dans des listes d’attente pour traitement. Pour information, chaque transaction de la blockchain Bitcoin est stockée à cette étape en plusieurs dizaines de milliers d’exemples.
Step 2 : l’opération de minage
Dans cette étape, les mineurs (utilisateur ayant choisi la fonction « construire des blocs ») récupèrent les opérations dans leur liste d’attente pour les regrouper dans des blocs. Ils calculent le hash de chaque bloc (voir article précédent présentant les grandes notions de cryptographie utilisées dans la blockchain).
Cette opération est très consommatrice informatiquement mais le respect et la validité de cette opération est facilement vérifiable par les autres nœuds. Dans la majorité des blockchains utilisant ce process, cette opération de minage est rémunérée pour pousser le réseau à se développer, et ainsi gagner en rapidité et en sécurité.
Une fois que le mineur a créé un bloc conforme, il le diffuse avec le hash associé, aux autres nœuds du réseau. Quand un nœud reçoit un bloc, il interrompt la construction du bloc en cours qui n’a quasiment plus de chance d’être validé. Il élimine de sa liste d’attente les informations qui sont contenues dans le bloc qu’il vient de recevoir. Il diffuse également le bloc reçu aux autres mineurs et commence à construire le bloc suivant.
Step 3 : construction de la chaine.
Cette opération est réalisée par des nœuds spécifiques que nous appelons « nœuds complets ».
Quand un nœud complet reçoit un bloc d’un nœud simple, il vérifie s’il ne l’a pas déjà reçu (dans ce cas, il le rejettera). Il vérifie également si les informations qui constituent le bloc sont valides. Une fois validé, il pourra l’ajouter à la chaine locale.
Afin que tous les exemplaires de chaine soient identiques (i.e. que chaque nœud complet ait la même chaine de blocs) il existe un mécanisme de consensus propre à chaque blockchain. Je ne rentrerai donc pas ici en détail sur ces mécanismes de consensus, mais comprenez par là qu’il s’agit d’un ensemble de règles permettant à chaque nœud complet du réseau d’avoir au final la même chaine de bloc.
Notons tout de même qu’il existe deux grands mécanismes de consensus : la Proof of Work (utilisé notamment dans la blockchain Bitcoin), et la Proof of Stake.
Proof of Work : ce mécanisme repose sur le principe que la probabilité qu’un bloc soit validé est proportionnelle à la puissance de calcul mise en œuvre. Plus un nœud mets de la puissance de calcul à disposition plus il aura de chance de valider un bloc.
Proof of Stake : ici la probabilité qu’un bloc soit validé est proportionnelle à la valeur détenue par le nœud. Par exemple, si un nœud possède 5% de la valeur totale présente dans la blockchain, il aura 5% de chance de valider un bloc. L’avantage majeur du Proof of Stake par rapport au Proof of Work est qu’il consomme moins d’énergie. Notons par exemple que la consommation des calculs de la blockchain Bitcoin (basé sur le mécanisme de Proof of Work) est égale à la consommation annuelle électrique de l’Irlande !
Il existe d’autres mécanismes de consensus qui présentent chacun leurs avantages et leurs inconvénients et qui impactent le temps global de génération d’un nouveau bloc (10 min pour la chaine Bitcoin vs 12 secondes pour la blockchain Ethereum par exemple).
Le fonctionnement des blockchains est ainsi basé sur la répétition permanente de ces étapes. Notons tout de même que chaque blockchain présente ses spécificités de fonctionnement. C’est cette redondance des process de construction et de vérification qui confère à la blockchain sa particularité et sa puissance en termes de rapidité et de sécurité.
La connaissance des principes de fonctionnement de la blockchain est essentielle. Aujourd’hui la blockchain est trop souvent utilisée comme un mot à la mode associé uniquement à la blockchain Bitcoin. Il est important de vulgariser son fonctionnement pour le rendre accessible par tous.
Les opportunités que représente la blockchain dans le secteur de la Supply Chain sont majeurs et passionnantes. Cette technologie peut en effet générer des bénéfices très importants…