rzoze19 - stock.adobe.com

Cinq idées fausses sur la blockchain (qui ne doivent pas vous empêcher de la regarder)

La blockchain ne se résume pas à la cryptographie et aux cryptomonnaies. Nous démystifions ici cinq idées fausses, et très courantes, qui pourraient, à tort, détourner l'attention des décideurs IT de cette technologie qui ne manque pourtant pas d'atouts.

Les investissements dans la blockchain augmentent. Les projets sont plus matures et moins « médiatiques ». Il n’en reste pas moins que certaines idées fausses persistent. Certaines en empêchent même une adoption plus rapide. En voici cinq parmi les plus courantes, que nous nous proposons de corriger :

  1. Parce que tout le monde accède à la blockchain publique, elle n’est pas sécurisée.
  2. Il n’y a pas de confidentialité sur la blockchain.
  3. La blockchain n’est utile que pour les cryptomonnaies (et la spéculation).
  4. La blockchain est anarchiste et anti-gouvernementale.
  5. La programmation sur la blockchain est (trop) difficile.

1. La blockchain publique n’est pas sécurisée

La blockchain publique – c’est à dire qui ne limite pas l’accès à son réseau (comme Ethereum ou Bitcoin) – est sûre à bien des égards.

Tout d’abord, les données ajoutées à la blockchain publique ne peuvent être modifiées. Les blocs (c'est à dire les pages) d’une blockchain sont immuables. Si, dans un cas extrême, des données écrites sur une blockchain publique sont modifiées a posteriori, l’ensemble de la blockchain est corrompu et considéré comme invalide.

Par ailleurs, l’ajout de données à une blockchain publique est un processus complexe. Une majorité des ordinateurs du réseau de la blockchain – les nœuds – doivent accepter de valider et d’ajouter le bloc en question. Une entité – appelée « mineur », ou « validateur » – valide un bloc, puis les autres nœuds du réseau se mettent d’accord sur cette validation.

Une blockchain peut être constitué de centaines, voire de milliers de nœuds. Les ententes ou la prise de contrôle de la majorité des nœuds sont difficiles, voire impossibles (et en tout cas improbables).

Un mineur est rémunéré pour ajouter des données à la blockchain, mais il doit également faire un investissement important pour participer à l'écriture des blocs. Deux des techniques les plus populaires pour ce faire sont la preuve de travail et la preuve d’enjeu :

  • La preuve de travail (Proof of Work) signifie qu’un mineur consacre une puissance de calcul considérable pour être la première entité à valider et à former un bloc à ajouter à la blockchain.
  • La preuve d’enjeu (Proof of Stake) consiste à investir de l’argent à l’avance pour avoir le droit de vérifier et d’ajouter des données à la blockchain et d’être rémunéré en conséquence. Si un mineur commet une erreur ou pirate le système, il perd son investissement.

Logiquement, ceux qui investissent de manière importante (en argent ou en ressources de calcul) pour participer à la validation d’un nœud et d’une blockchain ne risquent pas de compromettre cet investissement en tentant de pirater le système.

Il est important de comprendre que la sécurité d’une blockchain n’est pas définie par le fait qu’une partie accorde à une autre partie l’accès et les autorisations à la blockchain en question. La sécurité vient du fait que la validation des écritures est accordée selon des principes et des pratiques régis par des processus qui sont essentiellement de nature mathématique.

2. Il n’y a pas de confidentialité sur la blockchain

Cette idée fausse est presque vraie sur les blockchains publiques où le registre (la base de données) est transparent.

Mais d’une part, si toutes les blockchains fonctionnent selon une architecture décentralisée, de pair-à-pair, elles ne sont pas toutes « publiques ». Il est également possible de créer des blockchains privées pour une organisation ou un groupe d’utilisateurs particuliers.

Le principe fondamental de la blockchain est que tous les nœuds de son réseau disposent des mêmes données et agissent de concert pour en ajouter de nouvelles. Si l’un des nœuds du réseau tombe, l’ensemble de la blockchain n’est pas affecté.

Mais aucune règle n’impose que les blockchains doivent être accessibles à tout le monde. Au contraire.

D’où les blockchains privées – également appelées blockchain de consortium, blockchain centralisée (ce qui semble être un oxymore, lire plus bas) ou encore blockchains à permission (« permissioned blockchains ») dont Corda est un bon exemple. Dans ce cas, les données de la blockchain ne sont accessibles qu’à des entités autorisées.

Tableau comparatif des avantages et inconvénients des différents blockchains
Avantages et inconvénients des différents blockchains.

D’autre part, les blockchains publiques – qui ne nécessitent pas une autorisation en amont pour y accéder et dont les plus connues sont Bitcoin et Ethereum – identifient les utilisateurs avec une adresse sous forme de valeur hexadécimale. Aucune information personnelle identifiable (PII) n’est stockée dans le cadre des transactions ; ces informations sont stockées ailleurs.

L’essentiel à retenir est qu’une blockchain peut être publique ou privée. Tout dépend de l’utilisation et de la configuration prévues pour la blockchain.

3. La blockchain, c’est que pour les cryptomonnaies (et la spéculation)

Les cryptomonnaies sont motorisées par des blockchains. Conséquence : de nombreuses personnes ne pensent à la blockchain qu’en termes de cryptomonnaies. C’est compréhensible vue l’attention considérable que les médias portent aux cryptos, avec l’ascension et la chute spectaculaires de fortunes issues de la spéculation ou de manipulations.

Mais la blockchain ne se limite pas à cela. Elle peut être utile dans bien d’autres cas.

La blockchain est essentiellement un mécanisme de stockage immuable de données. Et elle est devenue une plateforme applicative grâce à l’introduction de deux technologies connexes :

  • Les smart contracts, qui permettent de créer une logique stockée et exécutée sur une blockchain.
  • Les tokens (ou jetons) – dont les plus connus sont les NFT (jetons non fongibles) – qui sont un type particulier de structure de données stockée sur une blockchain.

Ces deux innovations ouvrent la voie à un grand nombre de cas d’usage bien au-delà de la cryptomonnaie. En fait, de nos jours, on décrit la blockchain comme une technologie de registre distribué pour bien marquer qu’il s’agit tout d’abord d’une technologie transposable, qui gère une base de données (immuable), de manière décentralisée (même dans les blockchains dites centralisées où le registre reste partagé entre plusieurs nœuds – elles sont « centralisées sur quelques nœuds » en comparaison des dizaines de milliers de nœuds des blockchains publiques).

Ces trois caractéristiques sont intéressantes et pertinentes pour un large éventail d’activités : gestion de la chaîne logistique, dans la finance, la traçabilité alimentaire, pour les programmes marketing (comme Toyota qui teste les NFT pour le programme fidélité des acheteurs de Yaris), dans le gaming, ou encore dans différentes administrations (cadastres, registres de commerce, etc.).

Tableau des différents cas d'usage des blockchains.
Différents cas d'usage des blockchains.

4. La blockchain est anarchiste et anti-gouvernementale

L’une des toutes premières réalisations de la blockchain (le bitcoin) était une monnaie numérique qui n’était soumise à aucune juridiction gouvernementale. Aujourd’hui, cependant, de nombreux gouvernements et de nombreuses institutions expérimentent – et souvent approuvent – les blockchains pour leurs propres besoins.

Le département californien des véhicules expérimente par exemple un projet avec des NFT sur une blockchain privée. En 2020, la très sérieuse Food and Drug Administration (FDA) a lancé un programme pilote avec KPMG, IBM et Walmart pour utiliser la blockchain afin d’identifier, de suivre et de tracer les médicaments sur ordonnance et les vaccins aux États-Unis.

Le gouvernement allemand a publié en 2019 sa stratégie en matière de blockchain et ouvert la voie à son utilisation dans des activités de gestion et d’administration. L’Autorité monétaire de Singapour encourage l’utilisation de la technologie. Et la Banque de France mène des expérimentations sur la tokenisation d’actifs et les paiements transfrontaliers.

Bien que certains partisans de la blockchain puissent avoir un penchant anarchiste, libertarien ou anti-gouvernemental, la technologie elle-même est agnostique. La blockchain ne fait pas de politique.

5. La programmation sur une blockchain est (trop) difficile

Tous les langages et tous les frameworks de développement exigent une formation – la fameuse « courbe d’apprentissage ». Il faut des mois, voire des années, pour acquérir une expertise Kubernetes. Apprendre à travailler avec Spring, le populaire framework Java, ne se fait pas en une semaine. Et dans la programmation web (côté client), React n’est pas foncièrement accessible non plus.

Il y a donc logiquement une « courbe d’apprentissage » pour programmer sur la blockchain, mais dans l’ensemble, pas plus que pour les autres frameworks. Et il est assez facile de s’y retrouver si vous avez de solides notions dans d’autres langages.

L’unité de base – si l’on peut dire – de la programmation sur un blockchain est le smart contract.

Parmi les smart contracts, ceux qui s’exécutent sur Ethereum – et sur les blockchains compatibles – sont parmi les plus populaires. Ces programmes tournent dans des machines virtuelles Ethereum (EVM). Ils sont généralement codés en Solidity. Solidity possède de nombreuses caractéristiques de la programmation orientée objet. Si vous comprenez Java, C# ou TypeScript, vous devriez assez facilement vous faire à Solidity.

Autre exemple, les smart contracts pour la blockchain Solana peuvent être écrits en Rust, C, C++ ou Python. La blockchain EOS supporte elle aussi le langage C++.

D'autres blockchains prennent en charge les smart contracts. Mais toutes ces plateformes souhaitent attirer les développeurs. Elles s’efforcent donc de leur faciliter la tâche. De nombreuses blockchains utilisent des langages existants. D’autres utilisent des langages spécifiques, mais même dans ce cas, ces langages ne doivent pas être vus comme des obstacles insurmontables.

Plus généralement, quelle que soit la blockchain, les développeurs doivent comprendre comment la blockchain en question fonctionne et comment elle est gérée. L’autre moitié de leur travail consiste à devenir suffisamment experts pour coder. Et oui, il y a une courbe d’apprentissage… mais elle n’est pas plus raide que celle de l’apprentissage de n’importe quel autre langage de programmation.

Conclusion

La blockchain n’est pas utile pour tout. Contrairement à ce que laissait croire l’euphorie de ses débuts, elle n’est pas adaptée à tous les cas d’usage. C’était évidemment excessif.

Il n’en reste pas moins que la blockchain est une technologie viable. Une forme d'excès inverse aujourd’hui pourrait faire oublier qu’elle est put être utile pour de nombreuses applications en entreprise ou pour des projets du secteur public.

Pour déterminer si la blockchain est pertinente (ou non) pour résoudre un problème, il faut s’appuyer sur des faits réels (ceux que nous venons d’essayer de vous exposer), et non sur des idées reçues – excessives dans un sens ou dans l’autre – que l’on entend encore trop souvent.

Pour approfondir sur Base de données