In Tribune expert

La Blockchain est un terreau fertile pour le développement de toutes les formes de charlatanisme : elle est une technologie nouvelle donc peu comprise ; elle a fait gagner beaucoup d’argent à des investisseurs en culotte courte qui s’imaginent volontiers comme les Jordan Belfort de l’ère digitale, tout comme elle en a fait perdre beaucoup à des curieux, bien moins loquaces sur la sagesse de leurs placements ; en outre, elle introduit une vraie rupture technologique qui donne lieu aux spéculations et aux espoirs les plus fous. Nous allons donc essayer, dans un premier temps, de comprendre ce qu’est la Blockchain ; ensuite, nous présenterons ses applications principales dans différents secteurs de l’économie ; enfin, nous éclaircirons les interactions potentielles que la technologie blockchain peut avoir avec le monde de la data.

Pour comprendre la blockchain : quelques bases de cryptographie

La cryptographie est l’art – militaire à l’origine – de transmettre un message secrètement. A l’époque de César, les généraux écrivaient leur message en décalant chaque lettre de 3 dans l’ordre alphabétique. « AVE » devenait « DYH », « CAESAR » devenait « FDHVDU », etc. C’était efficace, mais très facile à déchiffrer une fois qu’on en connaissait le principe. En complexifiant le décalage (par cycle par exemple : première lettre de 3, deuxième de 5, troisième de 9, puis on recommence, 3, 5, 9, etc.), on complexa le déchiffrage. Cette course entre le chiffrage et le décryptage (déchiffrage « mathématique » de ceux qui interceptent des messages et cherchent à les comprendre) a mené, pendant la seconde Guerre Mondiale, au décryptage de la machine Enigma et à l’invention du premier ordinateur par Alan Turing.

Pendant la seconde moitié du XXe siècle, une nouvelle méthode de chiffrement a vu le jour : la cryptographie asymétrique. Que nous le sachions ou non, nous l’utilisons tous les jours lorsque nous utilisons Internet.

Quelles en sont les briques élémentaires ?

  • Chaque utilisateur possède deux clefs: une clef privée dont il est l’unique détenteur et une clef publique, dérivée de la première, à laquelle tout le monde a accès
  • Une clef publique permet de chiffrer un message que seule la clef privée peut déchiffrer (problématique de sécurisation) ; symétriquement, une clef privée peut chiffrer un message que seule la clef publique peut déchiffrer (problématique d’authentification)
  • Une fonction de hash est une fonction facile à calculer, quasiment impossible à inverser. En d’autres termes, si calculer hash(x) est extrêmement simple et rapide, trouver x tel que hash(x) = y (y étant donné) est quasiment impossible. Elle possède également la propriété d’avoir comme ensemble image un ensemble simple. Par exemple, en appliquant une fonction de hash à un fichier texte contenant les Misérables, de Victor Hugo, on peut très bien obtenir hash (les_miserables.txt) = 23a43e520154hb325.

Ces trois notions sont extrêmement importantes pour comprendre ce qui va suivre et, pour ceux qui souhaiteraient en savoir plus, des ressources inépuisables sont disponibles sur le web.

Concrètement, si Alice veut envoyer un message à Bob, comment procède-t-elle ?

  • Elle écrit son message M, qu’elle chiffre avec la clef publique de Bob
  • Elle utilise une fonction de hash et calcule hash(M), qu’elle chiffre avec sa clef privée à elle
  • Elle concatène ces deux chaînes de caractère et les transmet à Bob.
  • Bob peut déchiffrer M à l’aide de sa clef privée et il est le seul à pouvoir le faire : le message est sécurisé
  • Bob peut déchiffrer, comme tout le monde, hash(M) à l’aide de la clef publique d’Alice. Il peut également recalculer hash(M) en prenant comme M le message déchiffré à l’étape précédente, et s’assurer que les deux hash(M) correspondent : le message est intègre. Le message est également authentifié puisqu’en ayant la correspondance entre les deux hash(M), il est certain que c’est bien Alice qui a envoyé le message, puisque sinon sa clef publique n’aurait pas déchiffré le bon message.

Cet algorithme de chiffrage/déchiffrage s’appelle SHA256 et est un des premiers algorithmes contenus dans le protocole Internet. Les briques qui le composent sont largement réutilisées par la technologie Blockchain, et nous allons voir en quoi.

Qu’est-ce qu’une blockchain ?

Une blockchain n’est PAS le Bitcoin, ce n’est PAS une monnaie, ce n’est PAS non plus une entreprise ! Une blockchain, c’est une base de données obéissant à une structure particulière : littéralement, c’est une « chaîne de blocs », chaque bloc correspondant à un ensemble de données.

Cette structure obéit à des contraintes précises, certaines étant générales, d’autres spécifiques à l’une ou l’autre blockchain. Une blockchain se modifie par empilement : contrairement à un fichier Excel qui représente une matrice dont on peut supprimer une ligne, insérer une colonne, etc…, une blockchain ne se modifie que par empilement. Une fois un bloc de données ajouté, il ne se retire pas. Les blocs, leur contenu, leur manière de s’ajouter les uns aux autres, voilà ce qui varie selon la blockchain, que l’on parle de Bitcoin, d’Ethereum ou d’autres blockchains moins populaires.

Pour comprendre le fonctionnement de la blockchain, nous allons prendre, puisque c’est le plus connu, l’exemple de la blockchain Bitcoin, qui n’est ni plus ni moins que la première blockchain (elle existe depuis 2008).

La Blockchain Bitcoin en quelques mots

Le Bitcoin est à l’origine un système de paiement, dont les principes et la philosophie ont été clairement exposés par l’auteur pseudonyme Satoshi Nakamoto dans cet article (https://bitcoin.org/bitcoin.pdf).

Pour comprendre le Bitcoin, prenons un exemple banal de transfert d’argent. Monsieur X veut envoyer de l’argent à un ami. Il est chez la banque A, son ami chez la banque B. Monsieur X se connecte à son compte en banque et fait, via le portail, une demande de virement ; la banque A vérifie que les fonds que X veut envoyer sont bien disponibles sur son compte et pour cela la banque vérifie l’historique des transactions de X. la banque A envoie ensuite l’argent à la banque B, qui crédite l’argent reçu sur le compte de l’ami de monsieur X. En somme, Monsieur X fait confiance à la banque A pour ne pas garder son argent, à la banque B pour bien restituer l’argent qui lui est confié. Tout ceci suppose également que le RIB de l’ami de monsieur X est enregistré, donc que le transfert d’information et d’argent entre les deux comptes est validé par les deux banques. Cela suppose également que les utilisateurs se servent de leur compte en ligne, sinon il faut aller au guichet, signer un papier, etc. Cela suppose enfin que les deux pays ont un accord si l’argent doit traverser les frontières (auquel cas un frais s’applique). Les frais de transfert – souvent nuls – sont cachés dans les frais de tenue de compte, ou dans le taux d’intérêt que la banque récupère en plaçant l’argent que Monsieur X lui prête en possédant un compte de dépôt rémunéré… à 0%. Bref, beaucoup de confiance, d’intermédiaires, de commissions.

Ce sont ces intermédiaires et ces commissions cachées que le système Bitcoin vise à détruire.

  • Dans la blockchain Bitcoin, les blocs sont des ensembles de lignes, chaque ligne correspondant à une transaction («X envoie 3 Bitcoin à Y » ou, pour être plus exact, « Le Bitcoin n°12345 change de propriété et passe de l’adresse x – celle de Monsieur X – à l’adresse y – celle de Monsieur Y », car chaque Bitcoin a un numéro de série, comme un billet de banque).
  • A la place des intermédiaires bancaires, on a N intermédiaires que l’on appelle les « mineurs ». Chaque mineur vérifie indépendamment des autres l’historique des transactions (vérifie que le même Bitcoin n’est pas envoyé deux fois à deux personnes différentes) et la validité des transactions, à l’aide des règles de sécurité cryptographiques évoquées ci-dessus (ici, le message M est simplement une ligne de transaction).
  • A chaque transaction de Bitcoin, tous les mineurs reçoivent instantanément la nouvelle transaction et ont le choix de la valider ou non;
  • À tout moment, les mineurs proposent un bloc de lignes, c’est-à-dire un ensemble de transactions qu’ils estiment valides. Ce bloc est un candidat à l’ajout dans la blockchain Bitcoin ;
  • Parmi tous les mineurs, un seul est choisi par un système de loterie (voir plus bas comment fonctionne cette loterie) et il propose un bloc aux autres mineurs.
  • A l’instant suivant, la proposition de bloc et la loterie recommence, à ce détail près : les mineurs vérifient le bloc qui vient d’être ajouté et ont le choix de valider ce bloc (c’est-à-dire de proposer un bloc par-dessus le bloc ajouté), ou de l’invalider (c’est-à-dire de proposer un bloc par-dessus le dernier bloc qu’ils estiment valide). Cette nuance est cruciale, car un mineur est rémunéré lorsque le bloc qu’il a ajouté est validé par ses pairs (au cours actuel, cette rémunération tourne autour de 100.000€, ce qui justifie l’emploi du mot « loterie »). Autrement dit, les mineurs sont incités économiquement à proposer des transactions valides, donc à ne pas frauder. On ne fait plus confiance à un intermédiaire unique pour sa réputation (les banques A et B), mais à un système global et anonyme dont le principe tend à lutter économiquement contre la fraude (la fraude coûtant plus d’argent que le respect des règles). L’aspect aléatoire de la sélection est donc crucial, car si les mineurs ne communiquent pas entre eux, alors si plus de 50% des mineurs sont honnêtes, les transactions valides seront validées et les transactions frauduleuses ne le seront pas.

Reprenons notre exemple : Monsieur X veut toujours envoyer de l’argent à son ami. Il a un portefeuille (un « wallet ») Bitcoin, il se connecte, rentre l’adresse du portefeuille de son ami (sans se tromper, sinon l’argent peut être perdu de manière irréversible), initie la transaction. Il ajoute des frais de transaction (qui lui sont suggérés par le site utilisé, les mineurs étant rémunérés par le système mais également par les frais de transaction à la discrétion des utilisateurs) qui va inciter les mineurs à ajouter sa transaction à leur bloc. La transaction se propage à tous les mineurs, qui l’ajoutent ou non à leur bloc. Si le mineur sélectionné par la loterie a ajouté la transaction de monsieur X à son bloc et que ce bloc est validé 1 fois, 2 fois, 3 fois, …, on considère que la transaction est entérinée et que l’ami de monsieur X a reçu l’argent. Pas de frais cachés, pas de frais transfrontaliers, pas de tiers de confiance, mais un système que l’on croit vertueux. Les seuls frais  sont les frais de transaction, en valeur absolue et non en pourcentage (donc très intéressant pour de gros montants…). Seul bémol, cette transaction est irréversible (étant donné la structure même de la base de données blockchain), il ne faut donc pas espérer appeler un quelconque service client si une erreur a été commise.

Les applications de la Blockchain

Le transfert d’argent est chronologiquement la première fonction de la technologie Blockchain et c’est encore celle qui est la plus utilisée aujourd’hui, grâce à Bitcoin. Les transactions sont valides car l’honnêteté des mineurs est assurée par l’incitation financière et par la loi des grands nombres ; le vol est impossible du fait de la signature digitale impossible à contrefaire (cryptographie asymétrique) ; le refus d’opérer un transfert est impraticable car les mineurs sont sélectionnés aléatoirement et, en pratique, installent un logiciel sur leur ordinateur qui valide pour eux les transactions, sauf intention délibérée de fausser les transactions.

Mais il n’est pas, loin s’en faut, la seule application de la technologie blockchain. On l’a compris, la blockchain est une structure de base de données dont l’augmentation répond à des règles de programmation (dans le cas du bitcoin, ces règles sont simplement des ajouts manuels à la condition que la transaction est valide). Le transfert de propriété de A à B est une opération très facile à coder, mais d’autres opérations, plus complexes, le sont aussi. Par exemple, un produit dérivé financier comme un futures est très facile à coder (transfert = prix actuel – prix fixé) ; sinon, une assurance sur retard de vol est également facile à coder (transfert = pourcentage du prix du billet si le retard est supérieur à un délai donné). Globalement, tout ce qui obéit à une logique algorithmique peut être écrit en « smart contract », c’est-à-dire en contrat à exécution automatique.

Pour ne prendre que quelques exemples (l’auteur de ces lignes n’ayant aucun intérêt financier dans les cryptomonnaies citées) :

  • Basic Attention Token (BAT) propose de révolutionner la publicité en ligne en remettant l’utilisateur, « producteur » d’attention, au centre du processus en le rémunérant par le visionnage de publicité. BAT propose donc un système où les entreprises paient des publicités en BAT à des annonceurs qui reversent une partie de leurs revenus aux utilisateurs, ces derniers ne pouvant dépenser ces BAT que dans un écosystème donné, en achetant des contenus premium en ligne (articles de presse, services numériques, etc.). La blockchain intervient en ce que la monnaie utilisée a des propriétés et des capacités de dépense qui dépendent du rôle de chacun et de l’écosystème.
  • Dans un style différent, Bernstein propose un service de propriété intellectuelle éprouvée par la blockchain. Très simplement, si vous écrivez un article, que vous ajoutez la date et votre signature électronique, et que vous hashez le tout (voir ce qu’est le hash ci-dessus), vous pourrez montrer à tout moment que c’est vous qui avez écrit un article, que vous avez signé, à telle date. La Blockchain, en validant les informations chronologiquement, permet de graver dans le marbre la préséance et la propriété d’articles, et c’est sur ce terrain que Bernstein opère.
  • L’article https://www.mycryptopedia.com/16-promising-blockchain-use-cases/ permet de comprendre différents problèmes et la manière dont la technologie blockchain pourrait permettre de les résoudre.

Quid du monde de la Data ?

La Blockchain est une technologie, la Data Science est, comme son nom l’indique, une science.

Quelles  sont les interactions entre ces deux mondes ?

  1. En amont d’abord : toute blockchain contient un processus de validation des données ajoutées. Une utilisation intelligente de cette technologie permettrait de s’attaquer à un problème qui fait perdre un temps considérable à tous les data scientists : les données manquantes, erronées, corrompues.
  2. En parallèle aussi : un accès aux données plus contrôlé (des algorithmes ayant accès à des données sensibles – comme les données de santé par exemple – sans que le data scientist y ait lui-même accès) permettrait d’ouvrir la voie à des progrès dans des domaines que la data science ne touche que de loin aujourd’hui ; des sujets communs existent également, comme la détection de fraude.
  3. En aval enfin : nous avons évoqué le fait que les mineurs étaient sélectionnés presque aléatoirement. En réalité, à chaque sélection, les mineurs doivent résoudre une équation impossible à résoudre intelligemment. En l’occurrence, ils doivent chercher X tel que |hash(X) – Y| soit inférieur à un seuil donné (Y étant donné également). On l’a vu, la fonction de hash étant chaotique, elle ne dérive pas, elle ne se minimise pas, donc la seule manière de résoudre cette équation est de tester des millions, des milliards de X différents avant d’obtenir un résultat. C’est ce test à l’aveugle qui crée l’aléa de la sélection, mais c’est aussi celui qui donne lieu à l’un des reproches les plus communs envers la blockchain : une puissance de calcul énorme (donc une électricité correspondante) est consommée pour ces calculs, et c’est parfaitement inefficace. Des travaux sont en cours pour mettre cette puissance de calcul à profit, notamment pour des algorithmes de data science gourmands en calcul, mais la question de l’aléa, crucial dans la blockchain, est difficile à concilier avec des algorithmes qui ont besoin de calculs précis et déterminés.

Dans une optique différente, les blockchains les plus célèbres ont bénéficié d’un engouement immense et ont besoin de la data science pour analyser les quantités phénoménales de données générées par ce processus. Les entreprises qui ont créé ces blockchains ont beaucoup de données, une culture de la donnée et de la technologie, et enfin un budget pour cette analyse. Ils sont donc à même de contribuer aux progrès de la Data Science.

Cette fécondation mutuelle entre deux mondes qui aujourd’hui ne se croisent pas est au stade de spéculation, donc au stade d’opportunité. Il appartient aux data scientists curieux, ainsi qu’aux crypto-enthousiastes éclairés, de trouver les intersections intéressantes et de se mettre au travail !

Merci à Dorian LAGADEC & Allassane MAMANE, auteurs de l’article, pour le partage cette vision.

Recent Posts
AVISIA