Les crypto-monnaies ne cessent de faire parler d’elles ! Et parmi les utilisations réputées, nous trouvons le bitcoin et sa technologie, la blockchain, centre de toutes les attentions.
Nombreux sont ceux qui pensent savoir ce qu’est la blockchain, ou en ont au moins une vague idée. Remettons ensemble les compteurs à zéro. Partons sur cette définition simple : la blockchain est une technologie de stockage et de transmission de données.
Mais alors… pourquoi la simple évocation du terme suffit à déchainer les passions ?
Pour commencer, la blockchain offre une multitude de champs d’application : banque, assurance, logistique, agro-alimentaire, énergétique…
La première étude sur les chaînes de blocs cryptographiquement sécurisées a été décrite en 1991 par Stuart Haber et W. Scott Stornetta. Ils voulaient mettre en application un système où les documents horodatés ne pourraient pas être falsifiés ou antidatés. En 1992, Bayer, Haber et Stornetta ont incorporé le concept d’arbre de Merkle au système (que nous verrons plus tard). Cela a amélioré son efficacité, en permettant à plusieurs documents d’être assemblés en un seul bloc.
Selon le chercheur Ittai Abraham, le premier système de certification décentralisé est celui de la société Surety, qui publie chaque semaine depuis 1995 un certificat cryptographique de sa base de données dans la rubrique « Annonces et objets trouvés » du New York Times.
La première chaîne de blocs a été conceptualisée par une personne (ou une équipe) connue sous le nom de Satoshi Nakamoto en 2008. Elle a été implémentée l’année suivante par Nakamoto en tant que composant principal du Bitcoin, où elle sert de registre public à toutes les transactions sur le réseau.
Cette technologie a été développée avec l’arrivée de la crypto-monnaie, en réponse aux banques traditionnelles, afin de permettre un paiement en monnaie électronique d’une personne à une autre.
Le bitcoin et la blockchain ont tous deux révolutionné la sécurité sur les échanges et le stockage de données. Avec la blockchain, il n’y a plus besoin d’une autorité centrale pour valider les transactions, qui résistent ainsi à la censure et sont anonymisées.
Le principe de la blockchain est de distribuer, plus précisément dupliquer, un registre (donc l’historique de transactions) entre plusieurs acteurs. Chaque personne du réseau possède l’intégralité de l’historique des transactions.
On peut alors se passer d’un organe central, d’un tiers de confiance car la confiance est mutuelle, répartie dans le réseau. Le fonctionnement est alors décentralisé.
En effet, une blockchain est une base de données qui contient l’historique de tous les échanges effectués entre ses utilisateurs. Et ce depuis sa création ! Il faut assimiler la blockchain comme étant un grand livre comptable public, anonyme et infalsifiable. Un livre où tout le monde peut écrire, impossible à effacer et indestructible.
Les échanges transactionnels entre utilisateurs sont regroupés par blocs. Chaque bloc est validé par les nœuds du réseau, appelés les mineurs.
Le rôle des mineurs est de valider le consensus, constitué de deux parties. Premièrement, la vérification de la transaction, savoir si l’expéditeur à la solde requis, le portefeuille, le destinataire etc… Et ensuite le PoW (Proof of Work), qui consiste en la résolution de problèmes algorithmiques. Cette étape va rallonger le temps de la transaction de manière artificielle afin de sécuriser la transaction. Les techniques de vérification dépendent de chaque blockchain.
Point important : toute blockchain fonctionne nécessairement avec une monnaie, ou “token” (jeton), qui récompense ceux qui sécurisent la blockchain.
On peut alors se poser les questions suivantes : s’il n’y a plus de tiers de confiance (communément une banque), qui va choisir le membre devant valider les transactions en cours ? Et comment procéder ?
C’est là qu’entre en jeu les fameuses “preuves de”. Elles permettent de déterminer quelle personne dans la pièce va être chargée d’écrire les transactions dans le registre partagé (blockchain).
Contrairement à ce que beaucoup de gens pensent, la Proof of Work ne consiste pas à vérifier que le débiteur possède bien les fonds en analysant les lignes précédentes du registre. Cette vérification fait partie du consensus. Elle ne demande que peu de ressources de calcul. La PoW est une autre partie du consensus, volontairement très gourmande en ressource. Cela permet de décourager les fraudeurs et ceux qui voudraient nuire à la blockchain.
Nous pouvons expliquer cela de la façon suivante : Consensus (validation) = vérification des transactions (simple et rapide) + PoW (plus compliqué)
La PoW a donc pour but de rendre l’écriture dans le registre artificiellement complexe et coûteuse en énergie électrique, dépendant des énergies renouvelables mais bien souvent détournés (ferme de minage), afin d’avoir un rendement meilleur.
Un bloc de la blockchain se compose de plusieurs transactions, de métadonnées comme l’horodatage, la signature du mineur, le “hash” du bloc précédent et le “hash” de toutes ces informations. Un “hash” qui sera lui même repris dans le bloc suivant (à chaque bloc N, on fait un “hash” du ”hash” N-1, d’où la notion de chaîne).
Pour rappel, une fonction de “hashage” permet, à partir d’une donnée en entrée, de calculer son empreinte numérique servant à identifier la donnée initiale sans qu’on puisse (en théorie) “remonter” jusqu’à elle.
Voici un visuel permettant de mieux comprendre :
Nous voyons ici que le bloc est constitué de deux parties : l’entête et le corps du bloc.
L’entête comporte six informations : le “hash” du bloc précédent, l’horodatage, le numéro de version, le hash maître de toutes les transactions (Merkle Root), le “nonce” partie variable qui permet d’atteindre la “cible” et la difficulté (la “cible”). Le corps contient le hash de chaque transaction.
Concrètement, la PoW Bitcoin consiste à calculer le “hash” du bloc que le mineur souhaite valider. Ce “hash” est calculé à partir des données du bloc et d’un aléa, appelé “nonce”, qui fait varier le hash de ce bloc parmi 232 possibilités.
Les mineurs effectuent des hashs cryptographiques sur l’entête de bloc (Voir schéma ci dessus). Par exemple, pour chaque nouveau “hash”, le logiciel de minage va “hasher” ensemble le hash du bloc précédent, l’horodatage, le numéro de version et le Merkle Root.
Une fois cela fait, on va générer un “nonce” aléatoire et le “hasher” avec le hash obtenu précédemment. Ce qui donne par exemple : 93ef6f358fbb998c60802496863052290d4c63735b7fe5bdaac821de96a53a9a
La complexité vient du fait qu’il faut que ce “hash” soit inférieur à une certaine valeur (la “cible”). Par exemple, la cible est : 1000000000000000000000000000000000000000000000000000000000000000
Donc n’importe quel nombre hexadécimal qui débute par un zéro serait accepté car inférieur à la cible.
Pour y arriver, il faut donc calculer beaucoup de “hashs” en faisant varier le “nonce” pour en trouver un compatible avec les exigences. Trouver le bon “nonce” revient à faire un concours de force brute. Le premier mineur ayant trouvé le bon hash se voit “récompensé” par un nombre arbitraire de tokens ou devise de la cryptomonnaie (6.25 Bitcoins à l’heure où j’écris ces lignes).
Cependant, on voit ici immédiatement l’inconvénient de la blockchain. Si le premier mineur est récompensé, tous les autres ont perdu en temps, énergie et puissance de calcul.
Malgré tout, l’avantage de la blockchain est de rendre trop coûteuses les tentatives de falsification massive. Chaque mineur a une copie intégrale des transactions constituées de blocs. Donc, pour falsifier la blockchain, il faudrait alors modifier plus de 50% des copies de blockchain des utilisateurs du monde entier pour prétendre avoir la “bonne” blockchain. De plus, si des soupçons de falsification existent, le cours du Bitcoin s’en trouverait irrémédiablement affecté négativement et n’aurait pas d’intérêt pour le fraudeur.
Vous l’aurez compris, la blockchain a radicalement changé notre façon d’appréhender la sécurité, le stockage et les échanges informatiques.
Cependant, la blockchain n’a pas que des intérêts. En effet, Bill Gates dénonçait sa consommation énergétique monstrueuse. A elle seule, la blockchain Bitcoin représente la consommation énergétique annuelle de la Nouvelle-Zélande…
Sa volatilité a également été critiquée. Elon Musk peut par exemple faire varier à l’envie le cours du Bitcoin, en l’acceptant par exemple comme devise pour acheter des véhicules Tesla, ou acheter des places pour aller dans l’espace avec Space X.
La Chine peut le faire baisser drastiquement, en rendant illégal le Bitcoin et en chassant les mineurs de crypto-monnaies, qui détournent de l’électricité.
Dans le camp des bonnes nouvelles, la blockchain a aussi été soutenue par Bill Gates pour une utilisation d’identité numérique décentralisée. Elle peut aussi être utilisée pour la traçabilité des produits, via la chaîne de fournisseurs, ou le vote électronique, ce qui rend le vote anonyme et rend les résultats infalsifiables.
La blockchain a, avec ou sans la crypto-monnaie, de beaux jours devant elle !