14 min read

Blockchain : Potentiel et défis d'une révolution en cours

Blockchain : Potentiel et défis d'une révolution en cours

Lorsqu'on parle de Blockchain, on entend souvent parler de cryptomonnaies. Rapidement, le débat tourne autour du réchauffement climatique, de la cybercriminalité, du blanchiment d'argent ou de la spéculation. Ces inquiétudes sont légitimes mais elles ne sont que l’arbre qui cache la forêt. Les crypto-actifs ne sont qu'un des nombreux cas d'usage de la Blockchain.

Les technologies sous-jacentes que l'on place sous le terme de "Blockchain" sont puissantes et vont transformer le Web. Plus encore, la Blockchain a le potentiel de transformer notre rapport à la donnée, la façon dont on la crée, la détient, la consomme et la partage. Ce potentiel de disruption va de la propriété intellectuelle à l'authentification sur Internet, en passant par la transparence de l'information et la sécurité juridique.

Parce que la Blockchain n'appartient à personne, sinon à tous, et qu'elle apporte transparence et sécurité des transactions jusque dans la vie quotidienne, elle est un bien public.

Voyons ensemble pourquoi.

Nb : Cet article est avant tout une tentative de vulgarisation. Je prendrai volontairement certains raccourcis pour simplifier le propos, même si j'essaierai de ne pas m'arrêter à de simples analogies pour illustrer le potentiel de ces technologies. Par ailleurs, je n’aborderai que la Blockchain publique (en opposition aux Blockchains privées ou de consortium).

Un terreau favorable à l'apparition de la Blockchain

La Blockchain est apparue avec Bitcoin dans un contexte particulier. En effet, Bitcoin est apparu en 2008 dans un contexte de crise financière puis économique, entraînant une perte de confiance des citoyens dans le système financier international.

La promesse de Bitcoin est simple : créer un système de monnaie électronique sans intermédiaire, qui permettrait à des individus de réaliser des transactions monétaires sans passer par une institution financière, donc sans tiers de confiance.

Dans un système bancaire traditionnel, les échanges monétaires ont besoin d'un intermédiaire de confiance. En effet, si Damien souhaite envoyer 100$ à son ami Jérémy, l’État a besoin de s'assurer que les conditions d'exécution sont réunies (Damien a le droit de dépenser ces 100$ et a bien été débité de cette somme, Jérémy a le droit de recevoir ces 100$ et en a bien été crédité). Pour cela, il faut un intermédiaire de confiance, un acteur qui soit responsable de vérifier ces conditions, de sécuriser les transactions et d'assurer leur bonne exécution. C'est le rôle de la banque.

Bitcoin offre la possibilité de répondre à ce même besoin mais sans que les transactions ne soient autorisées ou exécutées par une autorité centrale.

Avec la Blockchain, les transactions, au lieu d’être inscrites dans une base de données centralisée (très vulgairement, comme le fait une banque), sont inscrites dans un registre distribué (un livre de compte partagé). Fondamentalement, Bitcoin est un réseau d’ordinateurs (qu’on appelle des nœuds) qui partage ce registre : chaque nœud contient la même copie de ce registre et y ajoute les nouvelles transactions. Ainsi, à la différence d’une banque, personne n’est propriétaire du registre Bitcoin, puisqu’il partagé par tous.

La Blockchain n’est rien d’autre que la technologie qui permet au Bitcoin de fonctionner ainsi. Ce sont les propriétés de la Blockchain qui permettent au Bitcoin de réaliser des transactions décentralisées :

  • Décentralisation : chaque nœud du réseau (ordinateur participant au réseau) est indépendant et autonome. Cela permet non seulement d'assurer la redondance de la donnée (elle est enregistrée partout, garantissant ainsi sa disponibilité) mais aussi l'authenticité de cette donnée. Car chaque donnée est inscrite dans le registre de chaque nœud, permettant à chaque nœud d'avoir sa propre copie, identique à celle des autres.
  • Immuabilité : les données, ainsi que leur ordre d’exécution, ne peuvent être modifiées ou supprimées une fois enregistrées sur la Blockchain. L’historique des transactions est ainsi irréversible. En effet, chaque nœud sur le réseau a une copie du registre. Pour modifier les données, il vous faudrait détenir plus de 50% du réseau, ou attaquer autant d’ordinateurs dans le monde entier.
  • Transparence : pour fonctionner, une Blockchain doit être transparente. Autrement dit, sa logique d’exécution (le code pour « faire tourner la Blockchain ») et les données qui y sont enregistrées (des transactions monétaires dans le cas de Bitcoin) sont publiques. Elles sont donc vérifiables par tous et c’est ce qui garantit que personne ne peut modifier les données inscrites. On sait alors qui a réalisé quelle transaction, pour quel montant, à quel destinataire et à quel moment.
  • Confidentialité : La confidentialité est garantie par le fait qu’il n’est pas nécessaire de donner ses informations personnelles pour se « connecter » à la Blockchain. En observant uniquement les données inscrites sur la Blockchain, on ne peut donc pas savoir qui est derrière telle identité et telle transaction. En revanche, dans la pratique, il est tout à fait possible de relier une identité (qui existe sur la Blockchain) à une personne (qui existe dans le monde réel, en dehors de la Blockchain). C’est pour cela qu’on dira plutôt que la Blockchain est pseudonyme et non anonyme.

En d’autres termes, la Blockchain (et donc Bitcoin) est probablement l’un des pires moyens de blanchir de l’argent puisque toutes les transactions sont traçables et infalsifiables.

Ces propriétés peuvent peuvent être appliquées à bien d’autres cas d’usage que l’échange de valeur. En effet, lorsque l’on observe les premières années du Web, on constate que les acteurs qui prédominent aujourd’hui sont apparus dans la première moitié de sa vie. Ces entreprises qui font le Web sont les mêmes depuis le début (bien que certaines aient disparu) :

Les premières ères du Web : Web1 et Web2

Ces entreprises centralisent directement ou indirectement une vaste partie des données et de l’hébergement de contenus, tout en concentrant également les risques d’attaques ou de pannes. Qui sait réellement comment ses données sont traitées lorsqu’il s’inscrit sur un site en ligne ? A qui elles sont partagées ? Par qui elles sont réellement hébergées ?

La vraie révolution derrière la Blockchain : Le consensus

Mais il manque un élément pour que toutes ces propriétés puissent exister sur un réseau comme Bitcoin.

Sans autorité centrale, comment la communauté (c’est-à-dire les participants à un réseau Blockchain) peut-elle s’entendre sur ce qui doit être inscrit dans la Blockchain ? Le registre n’appartenant à personne, qui peut décider de ce qu’il faut inscrire sur ce dernier ?

Les nœuds doivent trouver collectivement un consensus pour s’entendre sur ce qui doit être inscrit sur la Blockchain. C’est là la véritable révolution derrière la Blockchain. On peut définir le consensus comme le mécanisme par lequel les participants se mettent d’accord sur les données à inscrire dans la Blockchain.

Pour l’illustrer, observons le fonctionnement du consensus avec l’exemple du Proof Of Work (utilisé par Bitcoin et premier du genre) :

Processus de minage dans un consensus PoW (version simplifiée)
  1. 2 utilisateurs, Sébastien et Damien, envoient chacun une transaction sur le réseau (leur identité sur la Blockchain est en réalité sous la forme 0xf31B1eb703e4378D3A107eAD74a906E2adc7c0b2), qu’ils signent avec leur clé privée. On peut voir une transaction comme un chèque : le montant inscrit n’a de valeur que s’il est signé par le propriétaire du compte.
  2. Une catégorie spécifique de nœuds (appelés les « mineurs ») va récupérer ces transactions en attente. Leur rôle est d’inscrire cette transaction dans la Blockchain (le registre distribué). Pour cela, ils vont d’abord vérifier les demandes de transactions (cette transaction est-elle valide ? Damien a-t-il les fonds suffisants pour réaliser sa transaction ? La transaction de Damien a-t-elle bien été signée par Damien ?) et les regrouper dans un bloc (pour les inscrire toutes d’un coup). Toutefois, pour avoir le droit d’inscrire ce nouveau bloc dans la Blockchain, les mineurs devront résoudre un problème mathématique complexe (mais dont la réponse est facilement vérifiable).
  3. Dès qu’un nœud a trouvé la réponse au problème mathématique (la réponse étant un nombre appelé « nonce »), il va l’ajouter au bloc, en plus des demandes de transactions (de Damien et Sébastien), de la signature du bloc précédent (le « hash », sorte d’empreinte cryptographique unique) et de la signature du présent bloc. Cette dernière signature est en réalité la « preuve de travail » du mineur. C’est la preuve qu’il a travaillé dur pour créer ce bloc (pour le réseau Bitcoin, le problème mathématique prend environ 10 minutes à être résolu).
  4. Le mineur envoie ensuite son bloc à tout le reste du réseau . Chaque participant pourra très facilement vérifier la validité du bloc et décidera de l’inscrire dans sa propre copie du registre distribuée, chez lui. Et de cette manière, le bloc va se diffuser à travers les nœuds du réseau jusqu’à atteindre une majorité de nœuds et faire partie ainsi de la Blockchain. Tout prochain bloc sera refusé s’il ne fait pas référence à ce nouveau bloc.
  5. Enfin, pour ce service rendu, le mineur sera récompensé dans la monnaie du réseau (en bitcoins pour le réseau Bitcoin par exemple). Le mineur est payé grâce aux jetons générés lors de la création du bloc et par les frais payés par les utilisateurs (lors de l’étape 1).

Ainsi, chaque mineur a intérêt à jouer le jeu et à agir de façon honnête. S’il tente d’ajouter une fausse réponse au problème mathématique, son bloc sera automatiquement refusé. S’il tente d’ajouter des transactions frauduleuses avec le bon nonce, il sera aussi très facile pour n’importe quel autre participant de voir cette manipulation puisqu’elle est publique. Son bloc sera alors également refusé et il aura travaillé pour rien (c’est une perte sèche pour lui car 10 minutes de calcul informatique représente une quantité d’électricité et donc d’argent non négligeable).

Grâce à ce consensus, un utilisateur du réseau peut être certain que :

  • chaque transaction est « honnête » ;
  • chaque transaction est irréversible ;
  • aucune transaction ne pourra être censurée : chacune de ses transactions pourra être exécutée (pour autant qu’il ait les fonds suffisants) ;

Et cela sera d’autant plus vrai que le réseau est grand et distribué à travers le monde.

Les propritétés fondamentale d'une blockchain publique

La deuxième génération de Blockchain : Les Smart Contracts pour décentraliser les applications

A partir de 2014, une nouvelle génération de Blockchain fait son apparition avec le réseau Ethereum. Ethereum a transposé les propriétés du Bitcoin à tout un tas d’autres cas d’usage. Au lieu d’inscrire seulement des transactions monétaires (« A envoie x unités à B »), Ethereum a permis d’inscrire une logique d’exécution (du code informatique) et le résultat de cette logique dans la Blockchain.

Ce code informatique est écrit dans des smart contracts, que l’on héberge sur la Blockchain (Ethereum en l’occurrence mais il en existe d’autres). N’importe qui peut ainsi voir :

  • la logique d’exécution (un peu comme si vous aviez accès au code exécuté en back-end par un site web) ;
  • les données générées par cette logique d’exécution.

On peut synthétiser cette évolution de la façon suivante :

  • Bitcoin est une plateforme d’échange de valeur décentralisée.
  • Ethereum (et les autres Blockchains de 2ème génération) est une plateforme d’exécution décentralisée.

Cette évolution ouvre un champ d’applications immense. Ethereum a ouvert la voie vers la création d'applications décentralisées, dont le fonctionnement et l'enregistrement des données et consultable, vérifiable par tous et immuable. Ethereum a apporté le concept de Blockchain programmable, en proposant une infrastructure d'hébergement pour des applications décentralisées.

Smart contracts & dApp : Comment ça marche ?

Cette deuxième génération de Blockchain transpose les attributs de la Blockchain pour créer des programmes informatiques immuables, vérifiables, irrévocables et produisant des données elles-mêmes immuables.

On peut définir un smart contract comme étant du code informatique exécuté sur la Blockchain par les nœuds du réseau et déclenché par des événements (autrement dit, un smart contract ne tourne pas « tout seul », il doit être appelé). Etant exécuté sur la Blockchain, ce code est donc :

  • immuable : une fois déployé, il ne peut être modifié ;
  • ouvert / transparent : le code est visible publiquement, comme n’importe quelle donnée stockée sur la Blockchain.

Un smart contract est donc un programme informatique nativement open-source. Mais cela va plus loin qu’un dépôt github puisque chaque utilisateur a la garantie que le programme est exécuté exactement tel qu’il le voit (c’est comme avoir accès au code informatique utilisé par votre banque ou par Google). De plus, les données générées par le programme sont inscrites de façon permanente et publique sur la Blockchain.

Processus de déploiement d'un smart contract (version simplifiée)

Dans l’illustration ci-dessus, voit qu’un smart contract peut être déployé sur la Blockchain en suivant le même processus que pour une transaction monétaire. Le smart contract est ajouté à un bloc, créé par un mineur puis ajouté de façon permanente à la Blockchain : il ne peut être supprimé, censuré ou modifié et vivra aussi longtemps que la Blockchain sur laquelle il est inscrit.

On comprend alors qu'une dApp, comme on le voit dans la représentation simplifiée ci-dessous, est composée de smart contracts, qui sont eux-même exécutés sur l'EVM (Ethereum Virtual Machine), que chaque noeud du réseau fait tourner.

Smart contracts
No alt text provided for this image

L’autre avantage, c’est que n’importe quel utilisateur de la Blockchain peut appeler maintenant ce smart contract (via une interface web, par exemple) : il aura la garantie que sa demande a été exécutée exactement comme prévu (il pourra le vérifier en consultant la Blockchain) et les nouvelles données créées par l’exécution de ce smart contract seront elles aussi inscrites sur la Blockchain de façon permanente.

Toutes ces transactions (déploiement ou exécution d’un smart contract ou transaction monétaire entre 2 utilisateurs) sont payées dans la monnaie du réseau (l’ether, ou ETH, pour le réseau Ethereum). Ainsi, l’ether n’est plus seulement un actif que l’on échange (comme pour le bitcoin), mais un moyen d’acheter de la puissance de calcul et de la capacité de stockage sur un réseau décentralisé, immuable, infalsifiable.

Quels cas d'usage ?

Les cas d’utilisation sont immenses.

Imaginez un historique décentralisé pour chaque voiture (sorte de Carfax décentralisé). Tous les événements de la vie de cette voiture y seraient enregistrées : ses accidents, les réparations effectuées, les achats / ventes, le nombre de kilomètres parcourus, etc. Toutes ces données seraient inscrites pour toujours, de façon irréfutables et 100 % publiques, sans pour autant divulguer l'identité du propriétaire. Tout nouvel acheteur aurait accès publiquement à cet historique, sans même avoir besoin de faire confiance à un garagiste ou au vendeur lui-même puisque personne ne pourrait effacer ou modifier une donnée gênante (comme le nombre de kilomètres parcourus). La Blockchain offre ainsi un outil séduisant pour sécuriser les transactions juridiques.

Imaginez pouvoir déployer un site web entièrement décentralisé. Avec ENS (sorte de DNS décentralisé basé sur des smart contracts Ethereum) et IPFS (plateforme de stockage de contenu décentralisée), il est possible de créer des sites web résistants à la censure, hautement disponibles (le contenu du site étant distribué sur plusieurs ordinateurs à travers le monde via IPFS) en très peu de temps.

La Blockchain apporte aussi une réponse originale et très pratique au problème d’identités sur le web. Le fonctionnement actuel présente plusieurs des problèmes de sécurité et d’expérience utilisateur, comme on le voit sur le diagramme ci-dessus, à gauche. Les bases de données des fournisseurs qui hébergent les données personnelles de millions d’utilisateurs deviennent ainsi particulièrement convoitées par des attaquants. La sécurité de vos données dépend finalement de la compétence et du sérieux d’un tiers sur lequel vous n’avez aucun moyen d’action.

Identité universelle sur le Web

Les dApp, en s’appuyant sur des smart contracts hébergés sur une même Blockchain, tirent profit de son système d’authentification. En effet, les adresses publiques, utilisées pour identifier les utilisateurs sur la Blockchain, permettent de :

  • ne jamais dévoiler l’identité réelle des utilisateurs
  • garantir la transparence des activités réalisées sur l’application
  • ne jamais avoir à gérer les données d’authentification : l’application ne stocke plus le mot de passe (ni même son hash), réduisant drastiquement la surface d’attaque.
  • Les utilisateurs bénéficient tous, nativement, de fonctions de « SSO », chaque utilisateur s’authentifiant toujours avec le même wallet sur chaque application (en générant une identité différente s’il le souhaite)

En d’autres termes, la Blockchain permet à l’utilisateur de reprendre la main sur ses données, de faciliter la gestion de ses comptes et de ses identités sur Internet. Ces nouvelles pratiques impliquent toutefois une responsabilité plus grande de l’utilisateur sur la façon de gérer sa propre identité.

Si le sujet vous intéresse, cette excellente présentation, plus technique, vous donnera un meilleur aperçu du potentiel et du fonctionnement des DID (Decentralized Identities).

Un autre cas d’usage intéressant est celui des DAO (Decentralized Autonomous Organizations). Ces organisations décentralisées permettent à leurs membres de s’unir, sans se connaître ni se faire confiance, et d’inscrire leurs propres règles dans une Blockchain. Ces règles sont inscrites dans des smart contracts, qui permettent de les faire appliquer (enforce) automatiquement (contrairement à un contrat juridique classique).

En reposant sur des smart contracts, ces organisations « auto-gérées » offrent des capacités puissantes :

  • proposer un système de vote infalsifiable et transparent (par exemple pour déployer une mise à jour sur un service web) ;
  • programmer des actions en cas de résultat d’un vote (le smart contract s’occupant automatiquement de réaliser les actions si 50 % des voies sont atteintes) ;

Les DAO permettent ainsi à l’utilisateur final d’avoir un rôle actif dans l’évolution et l’amélioration du service qu’il utilise.

Si ce modèle n’est pas toujours pertinent, imaginez les bénéfices qu’il peut apporter en termes de transparence, d’inclusion et fiabilité de l’information. Par exemple :

  • une association caritative récolterait des fonds sur un smart contract. Les utilisateurs pourraient ensuite s’entendre collectivement, et anonymement, sur les projets à financer. Si une proposition obtient la majorité des voies, les fonds seraient automatiquement (parce que la règle est inscrite dans un smart contract) transférés vers le projet souhaité ; et n’importe qui pourrait le vérifier.
  • Une communauté de freelances pourrait s’organiser en DAO et financer collectivement les dépenses communes (locaux, licences, portefeuille clients, etc.).

Conclusion

En somme, parce qu’une Blockchain n’appartient à personne (sinon à tous) et qu’elle offre un service accessible à tous, elle est un bien public.

Bien sûr, ses propriétés ne la rendent pas pertinente pour tous les usages. Mais elle devrait être considérée pour chaque application impliquant un tiers de confiance ou un intermédiaire.

Mais elle apporte aussi sont lot de défis :

  • Défis techniques : scalabilité (capacité à traiter plus de transactions, plus rapidement, pour plusieurs d’utilisateurs) ; interopérabilité entre les Blockchains ;
  • Défis socio-économiques : cadrer/réglementer leur usage et les tokens qui s’y rattachent ; positionnement face aux institutions traditionnelles (banques, banques centrales, organisations gouvernementales, etc.) ;
  • Défis éthiques et écologiques : réduire l’impact environnemental des Blockchains est un véritable défi. Toutes n’ont pas la même empreinte écologique et les progrès sur ce point sont réels depuis l’apparition de Bitcoin. Encadrer son usage à des fins criminelles est aussi un point qui doit être adressé, de façon dépassionnée et rationnelle.

Ce sont les progrès réalisés sur tous ces enjeux qui permettront son adoption.

Nous n’en sommes qu’au début : les années 2020 sont au Web3 (et aux Blockchains) ce que les années 1990 ont été au Web. Nous vivons actuellement une période d’effervescence similaire à celles des années 1990 qui donne naissance à de nouveaux projets chaque jour. Beaucoup sont dénués de sens ou sont de pures arnaques mais d’autres présentent un immense potentiel de disruption. C’est pour ceux-là qu’il faut continuer.