? La Blockchain et l’émergence des " distributed consensus engines " (archive)

Source originale du contenu

Je vais y aller à la hache. Mon propos ne sera pas chirurgical, précis ; il sera assez grossier.

hache

Grossier d’abord parce que je vais vous parler de choses qui sont émergentes et qui n’ont pas encore de formes précises mais produisent beaucoup de protentions, c’est à dire beaucoup d’attente.

Tout le monde a entendu parler du Bitcoin, ce système de transfert d’argent, mais probablement peu a entendu parler de la blockchain, qui est la technologie sous-jacente au Bitcoin.


Le Bitcoin est à la croisée de différentes technologies parmi lesquelles : les protocoles Peer-to-peer, les mécanismes de cryptographie, les systèmes de gestion de version de code, les bases de données distribuées , etc.

Même si, en apparence, il n’y a rien de nouveau, la blockchain est une réelle innovation dont les conséquences ont encore du mal à être appréhendées. Ceux qui se sont intéressés à la blockchain la comparent volontiers au web de part l’ampleur des conséquences qu’elle pourrait avoir.

De fait, il y a beaucoup de discours prophétiques à son sujet ; c’est le temps des prophéties et des prophètes de la blockchain.

ismael

Salim Ismail, qui est l’ambassadeur de l’Université de la Singularité – et qui passe son temps à cataloguer et à qualifier toutes les innovations technologiques – a déclaré,  en Juillet 2015 à Paris, lors de la conférence USI : «  The blockchain is THE most disruptive technology I have EVER seen ». Cela donne le ton.

In the beginning was Satoshi Nakamoto

Le principe du bitcoin a été publié en 2008 et mise en oeuvre en 2009 par le mystérieux Satoshi Nakamoto. 

nakamoto

Il permet de surmonter un problème de taille qui est celui du double paiement dans les transactions financières (double spend problem) : comment s’assurer qu’un montant ne sera pas dépensé deux fois ? Comment ne pas se faire remettre un chèque en bois ? etc.

Traditionnellement il faut faire appel à des tiers de confiance que sont typiquement les banques. Mais, même avec un tiers, le risque de fraude est toujours présent, les systèmes bancaires centralisés facturent ce risque (et bien d’autres services encore), ce qui conduit à rendre très difficile des micros-paiements qui ne supportent pas les frais induits par les structures centralisées.

Satoshi Nakamoto précise, dans son papier fondateur sur le BitCoin, sont intention avec la création du Bitcoin :

« Un système de monnaie électronique entièrement en pair-à-pair permettrait d’effectuer des paiements en ligne directement d’un tiers à un autre sans passer par une institution financière »

Avec la blockchain, le fait qu’une transaction soit acceptée ou rejetée est le fruit d’un consensus distribué et non d’une institution centralisée.


La manière dont ce consensus distribué peut être réalisé renvoi aux travaux sur les systèmes informatiques distribués où l’on parle de « problème des généraux byzantins ».

byzantins

Ce problème classique de l’informatique distribué dans un environnement non sécurisé peut s’expliquer par la métaphore des généraux byzantins suivante : dans le schéma ci-dessus l’armée A fait le siège de l’armée B, A1 et A2 doivent attaquer ensemble pour gagner contre B. Pour cela ils doivent s’envoyer des messages : d’abord de A1 vers A2 pour proposer le moment et l’heure de l’attaque, mais A2 peut douter du message qu’il recevra de A1 (B en a eu connaissance, et peut-être l’a-t-il modifié, etc ). De même A1 attend le message de confirmation de A2 pour ne pas se retrouver à attaquer seul. Mais quand il reçoit ce message il peut lui aussi douter de son origine et de son contenu.

Résoudre ce genre de problème, c’est ce qu’on l’on fait quand on fait de la conception de logiciels distribués, tolérants aux pannes et aux erreurs (avec une logique que l’on qualifie de Design for Failure), et capables de se coordonner dans un environnement non fiable et asynchrone.

Satoshi Nakamoto (cf. Bitcoin expliqué par son fondateur) donne les principes de sa solution pour opérer le bitcoin et résoudre les problèmes du double paiement et des généraux byzantins :

« nous proposons une solution au problème de double-dépense en utilisant un serveur horodaté distribué en pair-à-pair pour générer des preuves informatiques de l’ordre chronologique des transactions. Le système est sécurisé tant que des nœuds honnêtes contrôlent ensemble plus de puissance de calcul qu’un groupe de nœuds qui coopéreraient pour réaliser une attaque. »

Au coeur du Bitcoin, ce « serveur horodaté distribué en pair à pair » qui à la fois est la blockchain (en tant que technologie de stockage distribuée) et produit la blockchain (en tant que livre de compte ouvert, public et distribué où l’on peut lire l’enchainement des transactions horodatées, et ce depuis la toute première transaction).

Les miners de la blockchain

miner

Dans le réseau de pair à pair de la blockchain, les miners sont des noeuds du réseau qui, en « travaillant », produisent des preuves de travail. Preuves qui les autorisent à ajouter une transaction dans la chaîne (un block est créé toutes les dix minutes)

Après les dockers, voici les miners.

L’aspect novateur de la résolution proposé par Satoshi Nakamoto c’est donc de faire travailler les machines, c’est à dire les CPUs, pour pouvoir ajouter un block à la blockchain. Chaque block est le fruit d’un consensus machinique et algorithmique.

La puissance de calcul est au coeur du protocole et de l’économie du bitcoin : l’intégrité de la blockchain est garantie par le fait que la puissance de calcul nécessaire pour falsifier le réseau couterait plus cher qu’elle ne rapporterait et aussi parce que tout miner qui souhaiterait falsifier la blockchain se retrouverait en compétition avec l’ensemble des autres miners.

La preuve de travail qui est demandée au miners est donc une preuve de calcul via les technologies ce cryptage (des message cryptés – des énigmes – sont proposés aux serveur en maîtrisant la complexité du cryptage pour que cela prenne environ 10 min ) ; c’est la clé de voute du Bitcoin.

proofofwork

Les nouvelles protentions de la Blockchain

La Blockchain créée de nouvelles attentes (c’est à dire des protentions qui polarisent les attentions).

Ce qu’apporte la blockchain, c’est l’avènement d’un réseau décentralisé non plus seulement de transport ou de transfert, mais de transaction. En ce sens, c’est un système transactionnel sécurisé à très bas coût. Ce que la blockchain peut apporter, c’est une automatisation distribuée des transactions qui peut rendre caduque toutes les formes d’organisations et d’institutions qui se posent en tiers de confiance ou de certification dans un contexte transactionnel (propriété, bien, argent).

Du coup, cela place toute l’économie traditionnelle de la transaction en porte à faux. Et pas  seulement les industries qui se font « ubériser » , puisque cela peut aussi ubériser Uber ; tout comme booking.com, Airbnb, Twitter, Paypal, c’est à dire que tous ceux qui ont court-circuité les industries traditionnelles se retrouvent eux-mêmes potentiellement sur la sellette.

Ce qui me fait dire que si le Web a permis l’automatisation de la relation ( et de la mise en relation), la  Blockchain permet l’automatisation de la transaction en supprimant les tiers.

La blockchain apporte également un élément très important : on parle souvent de transparence, puisque l’ensemble des transactions sont publiques. Mais je préfère souligner le fait qu’il n’y a pas d’asymétrie de l’information (asymétrie illustré par le tableau de De la Tour) ; il n’y a pas un point de vue panoptique qui soit privilégié.

asymetrie

Ainsi, avec la blockchain, tout le monde voit la même chose, là où avec les géants du web plus personne ne voyait la même chose, à force de profiling : par exemple, plus aucun d’entre nous n’a la même page de résultat sur Google pour une recherche donnée.

La blockchain sans le Bitcoin

De même que la blockchain du bitcoin a montré sa puissance en appliquant des protocoles de transaction distribués à la monnaie, de même cette technologie peut être utilisée dans d’autres champs d’activité que la transaction monétaire.

Exemples : systèmes de vote, gestion décentralisées des DNS (cf. le projet Namecoin).

Désormais la technologie blockchain peut être utilisée pour des transactions qui vont au delà d’une simple transaction de paiement et qui contiennent des instructions beaucoup plus complexes (des instructions conditionnelles et programmables), on parle alors de contrats. Contrats qui peuvent être publiés sur la blockchain pour qu’ils s’exécutent automatiquement sous certaines conditions, raison pour laquelle on utilise l’expression de « Smart Contracts ».

On est donc au coeur des technologies de transfert, surtout si l’on se réfère au Littré qui nous rappelle que « transfert » est un terme d’origine financière et juridique ; on transfère des droits, des actions, des biens et des propriétés.

La blockchain n’est pas le web

Par ailleurs, la blockchain est une nouvelle forme d’espace public, différente du Web. Si le web est un système de publication décentralisé, la blockchain est un système de consensus distribué. Du web à la blockchain, on passe d’une infrastructure de publication à une infrastructure de certification.

La blockchain peut ainsi jouer un rôle similaire à un protocole de transfert et remplacer le Web, surtout quand ces transferts doivent donner lieu à des transactions certifiantes et sécurisés, ce que ne sait pas faire le web sans faire intervenir des organisations certifiantes centralisées.

Ainsi, la blockchain apporte une infrastructure de confiance algorithmique distribuée. En plus court : consensus-as-a-service (consensus à la demande).

Consensus et dissensus

Ici, il ne faut pas confondre deux choses : d’une part la topologie distribuée de la technologie blockchain et, d’autre part, le produit de cette technologie qui est la chaîne linéaire des transactions (celle que l’on télécharge quand on se connecte la première fois – fichier d’environ 30 Go).

Or la topologie linéaire d’une chaine n’est précisément pas celle d’une arborescence. La blockchain n’est donc pas une technologie de dissensus mais de consensus, et tout ce qu’on appelle les forks de la chaîne – les bifurcations –  sont ici systématiquement élaguées.

Je dis çà pour bien préciser que la blockchain n’est pas un système herméneutique qui  enregistrerait l’ensemble des interprétations et arguments pour retracer un débat par exemple.

Ce n’est pas le GitHub des forks et des dissensus mais un système de « consensus distribué ». Mais il est possible que la Blockchain puisse,  en retour (parce que tout çà, c’est systémique), permettre de poser la différemment question d’un système  herméneutique (qui outille le dissensus)..

L’explosion cambrienne de la Blockchain

La blockchain se présente donc comme une infrastructure de certification dont toute application pourrait bénéficier nativement si elle s’appuie dessus. 

ethereum

Des projets comme Ethereum ou Eris cherchent à proposer un environnement, un framework,  capable de faire tourner n’importe quelle application sur la base d’une blockchain. Là où çà se complique, c’est que Ethereum et Eris s’appuient sur des blockchains différentes. En effet Etherum repose sur une blockchain publique là où Eris repose sur une blockchain privée. Mais il y a aussi d’autres solutions alternatives comme Tendermint (merci Nicolas Sauret).

Aussi, si j’ai parlé de LA blockchain depuis le début de cette note, sachez pourtant qu’il n’y a pas UNE blockchain mais de nombreuses, et toutes avec des variantes. Il faut donc souligner qu’il y a une explosion des blockchains, ce qui contribue à la difficulté de cerner le sujet et ses enjeux.


Sachez que l’on parle aujourd’hui d’explosion cambrienne de la blockchain.

Le fait que la technologie blockchain puisse servir d’infrastructure a de nouvelles applications amène à parler de DApps, pour « Distributed Applications » . Des premières initiatives existent, tels que :

Dans une logique prophétique, nous pourrions rajouter la possibilité d’avoir des agents intelligents (au sens de l’intelligence artificielle) qui pourrait exécuter des tâches pré-spécifiées selon certains conditions ou évènements ajoutés à la blockchain.

Rajoutons à ce tableau que la blockchain pourrait jouer un rôle décisif dans l’interconnexion des objets : l’internet des objets (IoT) pourrait bien se révéler être la Blockchain des Objets (BoT).

D’ailleurs pour Mélanie Swan, auteur de Blockchain, Blueprint for a new economy  :

« The blockchain could be an Occam’s razor, the most efficient, direct and natural means of coordinating all human and machine activity ; it is a natural efficiency process. »

swan