Sécurité numérique

Comment fonctionne une blockchain ?

Date:
Mis à jour le 13/07/2021
Bien que le terme "blockchain" fasse désormais partie de notre lexique moderne, il reste beaucoup de confusion sur ce qu'est une blockchain, ce qu'elle fait et comment elle fonctionne. Explications avec Daniel Augot, chercheur Inria et porteur d'une chaire «Blockchain and B2B platforms» soutenue par CapGemini, NomadicLabs, et la Caisse des Dépôts.
Comment fonctionne la blockchain
@Pixabay / photo Pete Xresch

Le principe

Une blockchain est une technologie qui permet de partager des informations entre plusieurs utilisateurs, qu’elles soient financières, informationnelles ou matérielles, et ce de manière entièrement automatisée et sécurisée. Plus précisément, elle peut être définie comme un réseau de pair-à-pair (peer-to-peer) contenant un grand livre partagé, dont le contenu est validé et sécurisé par un algorithme de calcul dit "minage" ou bien par des clés cryptographiques.

Elle se compose de trois concepts importants : les blocs, les nœuds, et les mineurs. Lorsqu’une transaction est partagée sur le réseau pair-à-pair, elle est ainsi collectée par les mineurs et, pour des raisons d’efficacité, traitée par lots (appelés blocs).

Chaque bloc est constitué de quatre composants : le hachage qui permet de faire référence au bloc précédent, toutes les transactions qui y sont enregistrées, un nombre arbitraire donné en cryptographie, appelé nonce, et enfin le "hash" du bloc, unique.

Les mineurs créent ainsi de nouveaux blocs faisant suite aux blocs déjà existants, par un processus appelé "minage". Grâce à cela, il est quasiment impossible d’extraire un bloc existant pour le modifier, ou de le falsifier. Une fois vérifié par des milliers d’ordinateurs, le bloc est ajouté à un nœud, appelé chaîne de blocs et le mineur peut être, typiquement, récompensé financièrement. D’où l’idée de "blockchain".

Trois mécanismes de calcul pour un seul et même résultat

N’importe quel mineur peut soumettre une information et décider de la stocker sur une blockchain.

Pour qu’un bloc puisse être validé dans les règles de l’art, un mécanisme d’autocontrôle peut ainsi être utilisé. Celui-ci, qui vise à répondre à la question « comment pouvons-nous nous assurer de la validité de chaque transaction ? », permet aux autres utilisateurs de passer en revue les transactions proposées dans un bloc et décider par consensus s’il est possible de l’ajouter ou non au réseau.

Toutes les blockchains n’ont pas les mêmes mécanismes de validation de blocs. C’est d’ailleurs ce qui va les différencier les unes des autres. Il existe à ce jour trois principaux mécanismes : la preuve de travail, la preuve d’enjeu, ou bien des algorithmes de consensus qui viennent de l’informatique distribuée (qui existent depuis une trentaine d’années).

1 – La preuve de travail (ou Proof-of-Work)

Les blockchains les plus ouvertes n’ont pas de notions d’identités. Sur le principe, chaque utilisateur peut ainsi créer plusieurs identités sans être réellement identifié afin d’inonder le réseau, dans le but de résoudre une grande quantité de blocs.

Pour contrer cette problématique, ces blockchains utilisent le mécanisme de la preuve de travail, qui représente la résolution d’une importante énigme cryptographique. Pour résoudre cette énigme et, par conséquent, valider un bloc, il faut ainsi que l’ordinateur soit assez puissant pour effectuer ces calculs. « Ce mécanisme est relié au fait que les utilisateurs ne puissent pas être clairement identifiés, selon le principe même d’une blockchain ouverte. Il faut donc des mécanismes pour empêcher certains utilisateurs de frauder pour prendre la main sur les calculs », explique Daniel Augot. La preuve de calcul a également pour intérêt de faire en sorte que le registre soit immuable et irréversible, en rendant presque impossible la réécriture des blocs précédents. Une manière supplémentaire de freiner les abus.

Mieux encore : si des blocs commencent à être produits trop rapidement, un mécanisme d’auto-ajustement se met en place en ajustant la difficulté des calculs à la puissance de calcul des ordinateurs, freinant ainsi la production de blocs. Une solution amenant à une autre problématique : l’importante consommation énergétique que cela entraîne.

2 - La preuve d’enjeu (ou Proof-of-stake)

La deuxième proposition est la preuve d’enjeu. Celle-ci, plutôt que de demander aux mineurs de consacrer des ressources matérielles (ordinateurs puissants et coûteux) pour sécuriser le réseau, se caractérise par une désignation aléatoire d’un mineur pouvant ajouter un bloc à la blockchain, en lui demandant de mettre en jeu des cryptomonnaies.

Ainsi, pour avoir une chance de vérifier les transactions d'un bloc - et de percevoir les frais associés - les mineurs doivent bloquer un minimum de fonds virtuels, qu'ils ne peuvent pas dépenser. « On va se référer à une ressource virtuelle qui est la quantité de fonds que les utilisateurs ont dans leur porte-monnaie virtuel, et l’avantage, c’est que les utilisateurs ont tout intérêt à ce que cela fonctionne », explique Daniel Augot. « Si un validateur se déconnecte au moment de la création d’un bloc ou ne le valide pas, il peut perdre une partie de son argent pour avoir porté préjudice aux autres », précise le site de l’Ethereum.

Le principal avantage de ce mécanisme de validation est qu’il permet de réduire l’importante dépense d’énergie liée à la preuve de travail. Certains estiment, en revanche, que ce système de validation ne présente pas un aussi bon niveau d’immutabilité.

3 – La blockchain permissionnée

Dans certains cas, les mécanismes de validation par preuve de travail et preuve d’enjeu des blockchains publiques ne sont pas toujours adaptés. La transparence totale et la décentralisation des informations (et donc l’accessibilité par tous, qui apparaissent comme un gros avantage de ces blockchains publiques, peuvent en effet rebuter les industriels qui veulent échanger entre eux des informations plus ou moins confidentielles.

C’est ici qu’intervient la blockchain permissionnée. Partiellement décentralisée, celle-ci voit son réseau accessible seulement à un nombre limité d’utilisateurs. Chaque nouveau membre doit ainsi être coopté par les membres déjà existants dans le consensus, et aura des droits d’accès différents à la donnée en question. Les validateurs sont connus, et totalement transparents entre eux.

« L’idée, c’est de faire coopérer des acteurs qui ont des intérêts différents mais qui ont tout intérêt à ce que certaines informations soient partagées », explique Daniel Augot, avant de préciser « par exemple, entre le moment ou la voiture est créée et celui où elle va à la casse, il y a beaucoup d’intervenants dessus. L’idée, c’est que toutes ces personnes soient identifiées et qu’elles administrent une blockchain, qu’elles coopèrent au fur et à mesure du temps pour faire évoluer le carnet de bord de manière traçable et fiable en même temps que le suivi de la voiture ». Une problématique qui se pose aussi également quand on cherche la traçabilité dans l’agroalimentaire.

L’essentiel sur : la blockchain