Site icon Blog de la Transformation Digitale

Blockchain – Tout le fonctionnement en 7 étapes

Blockchain : tout le fonctionnement en 7 étapes

Un récent article sur ce même blog, intitulé Blockchain : Est-elle aussi inviolable qu’on le prétend? a suscité de nombreuses réactions. J’ai ainsi pu m’apercevoir que le fonctionnement de cette nouvelle technologie nécessitait d’y consacrer un nouvel article pour en expliquer le fonctionnement. La technologie des chaînes de blocs est à la fois complexe et très simple. Je vous propose d’essayer de la comprendre. Son importance prend aujourd’hui une grande ampleur. Loin de n’être qu’un support pour les transactions en crypto-monnaies, c’est une technologie qui impacte tous les secteurs de l’économie.

En 2017, l’esprit du Bitcoin est vraiment sorti de la lampe magique. Après des années de silence, la valorisation de Bitcoin est soudainement passée d’environ 1 000 dollars à près de 20 000 dollars. Beaucoup de gens se sont réinventés en tant que «professionnels de la crypto-monnaie».

Oui, il y avait beaucoup d’argent à gagner pour une courte période. Mais voyons les choses en face. même malgré une récente remontée, cette fête est maintenant terminée. Il n’en reste pas moins que la technologie des chaînes de blocs existe bel et bien. Et surtout , elle peut être utile  à beaucoup de métiers dans le cadre de la transformation numérique.

Introduction

Le fait est que même si c’est surtout l’argent qui a engendré des poussées d’adrénaline, c’est la technologie qui a permis de lancer le processus. Et cette technologie, blockchain, a toujours un potentiel énorme. Le moment est peut-être venu pour les développeurs, les entrepreneurs et les particuliers curieux de prendre le train des blockchains et de s’en inspirer. Mais cela nécessite une meilleure compréhension du fonctionnement de la technologie. Malheureusement, la plupart des explications actuelles sont couvertes par un jargon technique complexe. Souvent, elles sont beaucoup trop superficielles et manquent de détails en profondeur. Tout cela nuit à une compréhension claire. Alors par où commencer? Permettez-moi de vous suggérer de commencer par la lecture de cet article. En une dizaine de minutes je vais vous expliquer ce qui est considéré comme si révolutionnaire à propos de cette technologie. Cela vaudra bien votre temps. Bonne lecture.

Qu’est-ce qu’une blockchain?

Tout d’abord, une blockchain est un concept numérique pour stocker des données. Ces données sont fournies sous forme de blocs. Alors imaginez des blocs de données numériques. Ces blocs sont chaînés les uns aux autres. Et c’est ce qui rend leurs données immuables. Lorsqu’un bloc de données est chaîné à d’autres blocs, ses données ne peuvent plus jamais être modifiées. Il demeurera accessible au public, à quiconque voudra le voir, exactement comme lors de son ajout à la blockchain. C’est assez révolutionnaire, car cela nous permet de garder une trace de pratiquement tout ce à quoi nous pouvons penser. Cela va des droits de propriété, des identités, des soldes bancaires jusqu’aux dossiers médicaux. Il n’y a plus aucun risque de falsification de ces dossiers au fil du temps.

Imaginons que j’achète une maison maintenant et que j’ajoute une photo des droits de propriété à une blockchain. Alors je pourrai toujours et à jamais prouver que je détenais ces droits à ce moment précis. Personne ne peut changer cette information une fois qu’elle est dans une chaîne de blocs. Bon, il y a un moyen, mais c’est extrêmement compliqué et coûteux. Par conséquent, je vous suggère de nous y intéresser plus tard. Donc, une Blockchain est un moyen de sauvegarder des données et de les rendre immuables. Cela sonne bien, mais la grande question est bien sûr de savoir comment cela fonctionne.

Les 7 étapes du fonctionnement d’une chaîne de blocs

Le fonctionnement global d’une blockchain se décompose en 7 étapes. En voici le détail.

Etape 1 : Les données de transaction

Très bien, commençons par un exemple. Nous allons considérer la blockchain Bitcoin. La blockchain Bitcoin est la plus ancienne blockchain. Les blocs de la chaîne de blocs Bitcoin comportent environ 1 Mo de données chacun. Mi-2018, elle comptait environ 525 000 blocs, soit un total d’environ 525 000 Mo stockés dans cette blockchain. Les données de la blockchain Bitcoin existent de façon séparée, en dehors des données de transaction. Celles-ci sont, elles, relatives aux transactions Bitcoin. C’est un registre gigantesque de toutes les transactions Bitcoin ayant eu lieu, depuis la toute première transaction Bitcoin jusqu’à ce jour. Dans cet article, nous supposerons qu’une blockchain stocke des données de transaction, comme le fait la blockchain Bitcoin.

Etape 2 : chaînage des blocs (avec un hash)

imaginons une suite de blocs de données de transactions.

Trois blocs, contiennent tous des données de transaction. Rien de vraiment spécial pour le moment. Vous pouvez le comparer à des documents Word autonomes qui décrivent simplement des transactions financières qui ont eu lieu et leur impact sur certains soldes. Le document 1 décrirait ensuite de manière chronologique les premières transactions survenues jusqu’à 1 Mo. Ensuite, les transactions suivantes seraient décrites dans le document 2 jusqu’à 1 Mo, et ainsi de suite. Ces documents sont les blocs de données. Ces blocs vont maintenant être liés (ou chaînés) ensemble. Pour ce faire, chaque bloc obtient une signature numérique unique qui correspond exactement à la chaîne de données de ce bloc. Si quelque chose change à l’intérieur d’un bloc, même d’un seul chiffre, le bloc recevra une nouvelle signature. Comment ça marche? Cela est réalisé grâce à un algorithme de hachage et sera expliqué en détail plus tard à l’étape 3.

Le chaînage avec les signatures

Supposons que le bloc 1 contienne deux transactions : la transaction 1 et la transaction 2. Imaginons que ces transactions représentent un total de 1 Mo. Dans la réalité, sur 1Mo on stocke un grand nombre de transactions. Ce bloc de données obtient maintenant une signature pour cette chaîne de données spécifique. Disons que la signature serait «X32». Voici donc à quoi ressemblera la bloc 1 :

N’oubliez pas qu’un changement d’un caractère des données seulement du bloc 1 entraînerait désormais une signature complètement différente! On va maintenant lier les données du bloc 1 au bloc 2 en ajoutant la signature du bloc 1 aux données du bloc 2. La signature du bloc 2 est maintenant partiellement basée sur la signature du bloc 1. En effet, elle est incluse dans la chaîne de données du bloc 2.

Voici à quoi cela ressemble:

Les signatures relient les blocs les uns aux autres, ce qui en fait une chaîne de blocs. Imaginons que nous ajoutions un troisième bloc à cette chaîne de blocs. Voici à quoi cela ressemble:

Modification d’une transaction

Imaginons maintenant que les données du bloc 1 soient modifiées. Disons que la transaction entre Damien et Georges est modifiée et que Damien aurait maintenant envoyé 500 bitcoins à Georges au lieu de 100 bitcoins. La chaîne de données du bloc 1 est maintenant différente. Cela signifie que l’algorithme attribue une nouvelle signature au bloc modifié. La signature qui correspond à ce nouvel ensemble de données n’est plus X32. Disons qu’il s’agit maintenant de «W10». Voici donc ce qui se passe :

La signature W10 ne correspond plus à la signature précédemment ajoutée au bloc 2. Les blocs 1 et 2 sont maintenant considérés comme n’étant plus chaînés. Cela indique aux autres utilisateurs de cette blockchain que certaines données du bloc 1 ont été modifiées. Or la blockchain doit être immuable. Ils rejettent donc cette modification en revenant à leur enregistrement précédent de la blockchain où tous les blocs sont toujours enchaînés (l’enregistrement où Damien a envoyé 100 BTC à Georges). Le seul moyen pour qu’une modification ne soit pas détectée est que tous les blocs restent chaînés.

Cela signifie que pour que la modification ne soit pas détectée, la nouvelle signature du bloc 1 doit remplacer l’ancienne dans les données du bloc 2. Toutefois, si les données du bloc 2 changent, le bloc 2 aura également une signature différente. Disons que la signature du bloc 2 est maintenant «PP4» au lieu de 9BZ. Maintenant, les blocs 2 et 3 ne sont plus enchaînés!

Garantie d’intégrité d’une chaîne de de blocs

Les blocs d’une blockchain sont accessibles au public. Donc, si une modification est censée rester non détectée sur une blockchain, tous les blocs doivent rester correctement chaînés. A défaut, les gens peuvent voir que certains blocs ne sont pas correctement reliés les uns aux autres. Cela signifie que la modification d’un seul bloc nécessite une nouvelle signature pour chaque autre bloc qui le suit jusqu’à la fin de la chaîne. Ceci est considéré comme presque impossible. Pour comprendre pourquoi, vous devez comprendre comment les signatures sont créées par l’algorithme de hachage.

Etape 3 : Création de la signature (hash)

Fonctionnement de l’algorithme de hachage

Imaginons un nouveau bloc 1. Le bloc 1 est maintenant un enregistrement d’une seule transaction. Thomas envoie 100 bitcoins à David. Cette chaîne de données spécifiques nécessite maintenant une signature. En blockchain, cette signature est créée par une fonction de hachage cryptographique. Une fonction de hachage cryptographique est une formule très complexe qui prend n’importe quelle chaîne d’entrée et la transforme en une chaîne unique de sortie à 64 caractère. Vous pouvez par exemple insérer le mot ‘Cloche’ comme chaîne d’entrée dans cette fonction de hachage. Il existe d’autres variantes des algorithmes de hachage, mais nous l’utilisons pour cet exemple. Vous verrez que le résultat de cette chaîne de données est le suivant:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

Si un seul caractère de l’entrée change, y compris un espace, une lettre majuscule ou l’ajout d’un point, par exemple, la sortie sera totalement différente. Si vous ajoutez un point à ce mot et que vous le définissez comme «Cloche.», vous verrez que le résultat de cette chaîne de données spécifique sera désormais le suivant:

B9B324E2F987CDE8819C051327966DD4071ED72D998E0019981040958FEC291B

Principes du hachage cryptographique

Si je supprime le point, j’obtiens de nouveau le même résultat que précédemment.

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

Une fonction de hachage cryptographique donne toujours la même sortie pour la même entrée. Mais elle donne une sortie différente pour chaque entrée différente. Cette fonction de hachage cryptographique est utilisée par la blockchain Bitcoin pour donner aux blocs leur signature. Dans ce cas, l’entrée de la fonction de hachage cryptographique correspond aux données du bloc et la sortie correspond à la signature qui s’y rapporte. Regardons à nouveau le bloc 1. Thomas envoie 100 bitcoins à David.

Imaginons maintenant que la chaîne de données de ce bloc se présente comme suit:

Bloc 1 Thomas -100 David +100

Si cette chaîne de données est insérée dans l’algorithme de hachage, le résultat (signature) sera le suivant:

BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF

Construction de la chaîne de blocs

Cette signature est maintenant ajoutée aux données du bloc 2. Disons que David transfère maintenant 100 Bitcoins à Jimi. La blockchain ressemble maintenant à ceci:

La chaîne de données du bloc 2 est maintenant la suivante maintenant :

Block 2 David -100 Jimi +100 BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF

Si cette chaîne de données est insérée dans l’algorithme de hachage, le résultat (signature) sera le suivant:

25D8BE2650D7BC095D3712B14136608E096F060E32CEC7322D22E82EA526A3E5

Et ainsi, on a la signature du bloc 2. La fonction de hachage cryptographique est utilisée pour créer la signature numérique pour chaque bloc unique. Il existe une grande variété de fonctions de hachage, mais la fonction de hachage utilisée par la blockchain de Bitcoin est l’algorithme de hachage SHA-256. Mais comment les signatures empêchent-elles quelqu’un d’insérer simplement une nouvelle signature pour chaque bloc après en avoir modifié un ? La réponse est que seuls les hachages (signatures) répondant à certaines exigences sont acceptés sur la blockchain. Ceci est le processus de minage (mining en anglais) qui est expliqué à l’étape suivante.

Etape 4 : Quand la signature est-elle qualifiée et qui signe un bloc?

Une signature n’est pas toujours qualifiée. Un bloc ne sera accepté dans la blockchain que si sa signature numérique commence, par exemple, par un nombre consécutif de zéros. Par exemple, seuls les blocs dont la signature commence par au moins dix zéros consécutifs peuvent être ajoutés à la blockchain. Cependant, comme expliqué à l’étape 3, chaque chaîne de données n’a qu’un seul hachage lié à celle-ci. Que se passe-t-il si la signature (hash) d’un bloc ne commence pas par dix zéros? Eh bien, pour trouver dans le bloc une signature répondant aux exigences, la chaîne de données d’un bloc doit être modifiée à plusieurs reprises jusqu’à ce que cette chaîne de données spécifique conduise à une signature commençant par dix zéros.

Les données de transaction et les métadonnées (numéro de bloc, horodatage, etc.) devant rester inchangées, une petite donnée spécifique est ajoutée à chaque bloc sans utilité, sauf pour être modifiée à plusieurs reprises afin de trouver une signature éligible. Cette donnée s’appelle le nonce d’un bloc. Le nonce est une chaîne de chiffres complètement aléatoire (remarque: les images montrent également d’autres caractères, mais un nonce ne peut être composé que de chiffres).

Processus de qualification des signatures

Pour résumer ce qui vient d’être expliqué, un bloc contient maintenant

  1. les données de transaction,
  2. la signature du bloc précédent et
  3. un nonce.

Le processus de modification répétée du nonce et de hachage des données du bloc pour trouver une signature éligible est appelé minage et c’est ce que font les « mineurs ». Les mineurs dépensent de l’électricité sous forme de puissance de calcul en modifiant constamment la composition des blocs (nonce) et en le hachant jusqu’à ce qu’ils trouvent une signature (sortie) éligible. Plus ils disposent d’une puissance de calcul élevée, plus ils peuvent hacher rapidement différentes compositions de blocs et plus ils ont de chances de trouver plus rapidement une signature éligible. C’est une forme d’essai et d’erreur. Vous pouvez l’imaginer comme ceci:

En quoi consiste le minage?

Tout utilisateur d’un réseau de chaînes de blocs peut participer à ce processus en téléchargeant et en démarrant le logiciel de minage correspondant à cette chaîne de blocs spécifique. L’utilisateur utilisera simplement sa puissance de calcul pour tenter de résoudre le nonce d’un bloc. Voici un exemple de bloc de transactions ajouté récemment à la blockchain Bitcoin, bloc 558781 :

Extrait de blockchain.com (explorateur de blockchain)

Comme vous pouvez le constater, le hash (signature) de ce bloc et celui du bloc précédent commencent tous deux par plusieurs zéros. Trouver un hachage comme celui-là n’est pas facile. Il faut beaucoup de temps et de temps de calcul, voire beaucoup de chance. Il arrive parfois qu’un mineur ait une chance incroyable et trouve une signature valide avec très peu de puissance de calcul en quelques minutes. Un exemple extrêmement rare s’est produit récemment sur le bloc 523 034.

Un très petit mineur avec très peu de puissance de calcul a rapidement trouvé une signature éligible. Tous les autres mineurs réunis disposaient de 7 trillions de fois plus de puissance de calcul. En comparaison, les chances de gagner le rang 1 du loto sont de un sur 20 millions, ce qui signifie qu’il est 350 000 fois plus facile de remporter le rang 1 du loto que pour ce mineur de l’emporter par rapport au reste du réseau. Quoi qu’il en soit, il est important de comprendre que trouver une signature éligible est difficile.

Etape 5 : Comment cela rend-il la blockchain immuable?

La blockchain est-elle vraiment inviolable?

Comme je l’ai expliqué à l’étape 3, la modification d’un bloc le détachera des blocs suivants. Pour qu’un bloc modifié soit accepté par le reste du réseau, il doit être chaîné à nouveau aux blocs suivants. Vous voyez où ça va? J’ai expliqué précédemment que cela nécessite que chaque bloc qui vient après obtienne une nouvelle signature. Et cette signature doit répondre aux exigences! Donner à tous ces blocs une nouvelle signature sera très coûteux en temps et en argent. Toutefois cela ne semble pas impossible. Cependant cela est considéré comme impossible, et voici pourquoi.

Supposons qu’un mineur corrompu ait modifié un bloc de transactions et essaie maintenant de recalculer de nouvelles signatures pour les blocs suivants afin que le reste du réseau accepte sa modification. Le problème pour lui est que le reste du réseau calcule également de nouvelles signatures pour de nouveaux blocs. Le mineur corrompu devra également calculer de nouvelles signatures pour ces blocs au fur et à mesure qu’ils seront ajoutés au bout de la chaîne. Il doit absolument garder tous les blocs liés, y compris les nouveaux qui sont ajoutés constamment. Donc, à moins que le mineur ait plus de puissance de calcul que le reste du réseau (donc au moins 51%), il ne rattrapera jamais le reste du réseau à la recherche de signatures.

Le principe de l’attaque à 51%

Des millions d’utilisateurs exploitent la blockchain Bitcoin. On peut donc supposer qu’un seul acteur ou entité défaillant sur le réseau n’a jamais plus de puissance de calcul que le reste du réseau, ce qui signifie que le réseau n’acceptera jamais aucune modification du réseau blockchain, rendant la blockchain immuable. Une fois que les données ont été ajoutées à la blockchain, elles ne peuvent plus jamais être modifiées.

Il y a une exception cependant. Et si un mauvais acteur avait plus de puissance de calcul que le reste du réseau combiné? Théoriquement oui, c’est possible. Il s’agit d’une attaque à 51% (j’ai écrit un article à ce sujet). Et cela a déjà eu lieu sur diverses chaînes de blocs. En réalité, une attaque à 51% de la blockchain de Bitcoin serait beaucoup plus coûteuse à exécuter qu’elle ne rapporterait en retour. Cela nécessiterait une énorme quantité de matériel, d’équipements de refroidissement et d’espace de stockage pour la puissance de calcul. Mais il y aurait aussi un risque de poursuites. Plus important encore, cela porterait gravement atteinte à l’écosystème de la blockchain elle-même. La conséquence serait une baisse significative en valeur des retours potentiels en Bitcoin.

En théorie le risque d’attaque à 51% est faible

Tenter une attaque à 51%, c’est pratiquement essayer de combattre seul tous les autres utilisateurs d’une chaîne de blocs. C’est également la raison pour laquelle plus les utilisateurs participent au processus de minage, plus la blockchain devient sécurisée.

Bravo chers lecteurs pour être arrivés jusqu’ici! Si tout va bien, vous comprenez maintenant pourquoi une blockchain est considérée comme immuable. Une question importante se pose cependant. Comment empêche-t-on les mineurs d’ajouter des données corrompues à la blockchain (comme des données de transaction falsifiées)? C’est techniquement impossible. Je reviendrai avec plus de détails sur les transactions sur la blockchain dans un prochain article.

Etape 6 : La Gouvernance de la blockchain. Qui définit les règles?

La blockchain de Bitcoin suit un modèle de gouvernance de de type démocratique. Elle met donc à jour son enregistrement des transactions conformément à ce que la majorité de ses utilisateurs considèrent être la vérité. Le protocole blockchain le fait automatiquement en suivant toujours l’enregistrement de la plus longue blockchain. En effet, il suppose que cette chaîne représente la majorité. Après tout, il faut la majorité de la puissance de calcul pour créer la version la plus longue de la blockchain. C’est également ainsi que la majorité du réseau rejette automatiquement la modification d’un bloc. Elle rejette automatiquement un bloc modifié, car celui-ci perd son chaînage à la chaîne la plus longue.

Sur la blockchain Bitcoin, l’historique de toutes les transactions et les soldes du portefeuille sont publics (blockchain.info). Tout le monde peut consulter n’importe quel portefeuille ou transaction ayant eu lieu depuis la toute première transaction (le 3 janvier 2009). Tout le monde peut vérifier publiquement les soldes des portefeuilles. Mais les propriétaires de ces portefeuilles restent en grande partie anonymes. Voici un exemple de portefeuille contenant encore 69 000 Bitcoin, d’une valeur d’environ 287 millions de dollars au moment où je rédige cet article Il a été utilisé pour la dernière fois en avril 2015, pour ne montrer aucune activité depuis. Vous constaterez qu’il est monté à plus de 600 millions de dollars il y a juste un an. Ce qui, au passage, montre la volatilité du Bitcoin.

Etape 7 : Qu’en est-il des crypto-monnaies?

Les crypto-monnaies sont fondamentalement une forme modifiée de Bitcoin. La plupart des crypto-monnaies sont construites sur leur propre protocole blockchain qui peut avoir des règles différentes de celles de la blockchain Bitcoin.

Le Bitcoin est censé être une monnaie. Cela signifie donc qu’il est explicitement supposé fonctionner en tant que monnaie. Monero est une crypto-monnaie avec la même fonction. Mais son protocole blockchain a implémenté des règles supplémentaires. Ce qui en fait une devise plus privée (les transactions sont beaucoup plus difficiles à suivre). Les crypto-monnaies peuvent toutefois recevoir n’importe quel type de valeur, en fonction de leur émetteur. On pourrait les appeler des «jetons». Ces jetons peuvent donner aux propriétaires le droit à «quelque chose». Cela va d’une licence de jeu ou  un accès aux réseaux sociaux jusqu’à l’alimentation électrique ou à l’eau potable, par exemple. On peut attacher toute sorte de valeur à un jeton de ‘crypto-monnaie’.

La blockchain ne se limite pas aux crypto-monnaies

Toutes ces transactions de crypto-monnaie sont enregistrées sur différentes chaînes de blocs. elles peuvent être échangées en ligne via des plateformes d’échange de crypto-monnaie tels que Binance. C’est le nouvel argent d’Internet. Le marché boursier est un bon exemple d’industrie susceptible d’être touchée. Il y a de fortes chances pour qu’on enregistre à l’avenir les actions des sociétés et les autres droits de propriété sous forme de jetons sur une blockchain.

Mais les blockchains ne se limitent pas à enregistrer une valeur matérielle sous forme de jetons. Les Blockchains ont également le potentiel d’enregistrer en toute sécurité des données sous forme de dossiers médicaux, d’identités, de récits historiques, d’enregistrements fiscaux et bien d’autres choses encore. C’est la raison pour laquelle cette technologie est si importante. Et je n’ai même pas mentionné la décentralisation (un autre aspect important de la blockchain).

Quitter la version mobile