Kévin Palop

Kévin Palop

Consultant AMOA chez Arsia Mons
En recherche de progression et d'expérience, j'estime que la réussite passe par la remise en question constante des acquis et une forte capacité d'adaptation.
Afin de mettre à l'épreuve cette conviction, et après avoir travaillé chez KPMG et Capgemini, j'ai choisi d'intégrer ARSIA MONS en 2013, où l'esprit d'entreprendre et la prise d'initiatives sont fortement encouragés.
Kévin Palop

INTRODUCTION

Le Bitcoin vit aujourd’hui l’une de ses plus grandes crises de gouvernance.

Dans un système fondé sur le consensus, l’évolution du code source régissant le réseau distribué, et donc l’intégralité des échanges, est un sujet extrêmement sensible. Jusqu’à présent, le consensus de communauté avait résisté. Mais aujourd’hui deux chapelles s’affrontent sur la façon de traiter l’une des grandes problématiques de la Blockchain appliquée au monde réel : la scalabilité du système.

Dans cet article, nous verrons comment la Blockchain doit trouver des solutions techniques pour être en capacité de rivaliser avec la rapidité et le volume des transactions bancaires courantes. Nous verrons aussi comment la chaîne de blocs peut aussi poser des problèmes très pragmatiques d’encombrement.

6 points pour saisir la complexité de tels systèmes distribués appliqués au monde réel :

  • Le phénomène de latence et ses conséquences,
  • La gestion de la malveillance,
  • Le temps de validation de la transaction et la scalabilité du système,
  • Le poids de la Blockchain,
  • La problématique de l’incitation au minage et son efficience (économique, écologique…),
  • La gouvernance des systèmes distribués.

LE TEMPS DE VALIDATION DE LA TRANSACTION ET LA SCALABILITE DU SYSTEME

Dans un monde où vous ne supportez plus d’attendre que le livre commandé à l’autre bout de la planète n’arrive pas le lendemain dans la boite aux lettres, pourriez-vous attendre une heure que votre paiement soit vérifié ? Bien sûr que non.

Le temps de validation est une vraie problématique de la Blockchain appliquée au monde réel. Les deux principes de “Proof of work” et de profondeur de bloc (voir article précédent) nécessaires pour s’assurer que la transaction ne peut être renversée rendent ce temps incompressible dans une implémentation comme celle du Bitcoin. Or, si la Blockchain a l’ambition, un jour, de remplacer des systèmes centralisés de paiement comme Visa ou Mastercard, la technologie va devoir résoudre une équation subtile : réduire le temps de validation d’un bloc, sans sacrifier la sécurité que cela apporte au système.

En vérité, les travaux sont déjà bien avancés. Rootstock, par exemple, est un projet très intéressant de ce point de vue. Il s’agit d’une “side chain”, un protocole parallèle adossé au protocole Bitcoin. Ses promesses sont celles d’un système aux performances proches d’un Paypal (nombre de transactions / seconde, rapidité de la validation…), additionné d’un environnement de “smart contracting”, soit la possibilité d’associer à la transaction des éléments de code (conditions de déclenchement, actions associées à la validation du paiement…). Comment cela est-il possible ? Et bien, cela ne va pas sans concessions.

Le principe d’une « side chain » renvoie fortement à celui d’une hypothèque. Il s’agit d’immobiliser une valeur extraite d’un circuit principal, ici le Bitcoin, pour appliquer, grâce à cette garantie, d’autres règles et conditions. Concrètement, en utilisant Rootstock, vous « envoyez » des bitcoins dans la chaîne Rootstock par l’intermédiaire d’une transaction normée (pegged transaction). Ce transfert de valeur a pour effet de « bloquer » l’utilisation de ces mêmes valeurs dans le protocole Bitcoin : en réalité, vous avez confié les « outputs » contenus par une ou plusieurs adresses Bitcoin à Rootstock, qui les conserve pour vous, et s’en sert de garantie pour vous permettre d’opérer des paiements sans les conditions contraignantes du protocole Bitcoin. A tout moment, vous pouvez « renvoyer » vos « outputs » immobilisés dans le circuit originel (two-way pegged blockchains).

Rootstock essaie donc d’allier les puissantes sécurité et fiabilité créées par le protocole Bitcoin à la souplesse et réactivité d’une « side chain« , au sein de laquelle des règles plus adaptées à la vie commerciale s’appliquent.

D’autres projets comme Ethereum ont parié sur la capacité directe d’un protocole de Blockchain à offrir des validations de transaction beaucoup plus rapides que celles de Bitcoin, sans sacrifier la sécurité induite par ce temps de vérification et de minage. Le sujet est complexe et je vous conseille, pour aller plus loin sur le sujet, de lire cet article, par Vitalik Buterin, leader du projet Ethereum.

La compétition est intense entre ces deux projets et il est difficile de dire aujourd’hui lequel a le plus d’avenir. Cela mériterait par ailleurs un article à part entière. Mais il est certain que la question de la scalabilité (temps de validation + volumétrie de transactions) est l’un des sujets clés dans l’application de la Blockchain au monde réel. Nous ne manquerons pas d’y revenir plus en détails dans la partie du dossier consacrée à Ethereum.

 

LE POIDS DE LA BLOCKCHAIN

Plus de 60 go. C’est le poids de la chaîne complète du bitcoin à ce jour, en augmentation constante.

Encore acceptable pour un PC (quoiqu’un ultrabook et son SSD ne puisse probablement pas se le permettre). Mais concernant les Smartphones… Si vous souhaitez aujourd’hui entrer dans le monde du Bitcoin pour miner, il vous faudra télécharger la Blockchain qui la sous-tend. Comptez entre 2h et plusieurs jours, selon la bande passante dont vous avez le privilège de bénéficier. 

Bien sûr, au-delà de ce premier coût temporel d’entrée, la mise à jour de la Blockchain est ensuite incrémentale et ne représente plus un lourde charge de bande passante (quoique plusieurs jours de mise à jour puissent encore peser sur les connexions les plus faibles). Mais le poids total de la chaîne reste, lui. Non seulement il reste, mais il croit, proportionnellement à la généralisation de son usage.

Poids Blockchain

Cette problématique, comme d’autres dans ces lignes, font de la Blockchain une technologie parfois difficilement applicable au public général qui a intégré des attentes d’immédiateté et d’ubiquité du service, par le canal de son Smartphone.

Face à ce problème, la voie du nœud léger (« light node », utilisant un protocole « SPV », pour « Simplified Payment Verification« ), par analogie avec le client léger des applications informatiques, arrive aujourd’hui à maturité : de nombreux logiciels portefeuilles électroniques (« digital wallets« ) remplissent cette fonction pour les utilisateurs lambda.

Le postulat est que tous les utilisateurs d’une Blockchain n’ont pas la nécessité de télécharger l’intégralité de la chaîne. En réalité, la majorité des utilisateurs d’une Blockchain sont des acheteurs et des vendeurs. Ce qu’ils souhaitent, c’est authentifier leurs transactions et en recevoir la confirmation, sans avoir à télécharger l’intégralité des transactions réalisées depuis la naissance de la chaîne.

Souvenez-vous du concept d’arbre de Merkel, rapidement évoqué dans la partie 1 de ce dossier. Le fait, dans ces structures mathématiquement liées, de pouvoir identifier une modification de l’intégrité d’un tout selon ses parties, recèle un potentiel intéressant pour le développement de “nœuds légers”.

Grâce à ces structures, il est possible de ne télécharger de la chaîne complète que ce qui permet la vérification et l’intégrité de la transaction en cours, soit la preuve qu’une transaction a bien été introduite dans un bloc précis ET que ce bloc est situé à une profondeur raisonnable dans la chaîne. On parle ici déjà de réduire le poids de la chaîne par 20.

Ci-dessous, une représentation d’une structure en arbre de Merkel d’un bloc : il s’agit simplement d’une succession de hash hiérarchisés, depuis les transactions, jusqu’au « Root hash« , la racine. Dans une telle structure, seule une partie du tout est nécessaire pour vérifier l’intégrité de l’ensemble.  Pour un petit rappel sur ce qu’est un hash et ce qu’il vient faire dans l’affaire, je vous renvoie à la partie 1 du dossier.

slider
images not found

Mais vous aurez compris que ces solutions “light nodes” ne vont pas sans poser de réelles questions conceptuelles : le poids de la Blockchain est à la fois un facteur bénéfique à la confiance ET sa conséquence néfaste. Or, si des nœuds légers peuvent apporter des solutions à ce problème, ils ne vont pas sans la contre-partie de nœuds lourds, ou complets. Car certains membres du réseau doivent rester garants de l’intégralité de la chaîne, sans quoi le système s’effondre.

Dilemme intéressant : la Blockchain a pour nature d’être distribuée, mais elle a besoin, pour des raisons pratiques, d’établir des points de concentration. On verra d’ailleurs dès le prochain article que ce n’est pas le seul exemple de phénomène de centralisation au cœur du système Blockchain.

La question reste aujourd’hui ouverte : quel est le juste milieu entre la distribution, comportant une charge individuelle importante, et la concentration, à l’encontre de la nature du système ? Le sujet est passionnant car, comme tous les points d’équilibre, sa recherche est un mélange de solutions technologiques, de développement des usages et d’établissement de règles implicites entre les partie-prenantes du réseau.

Une alchimie subtile qu’il convient toujours de garder à l’esprit.

Pour continuer votre lecture, c’est par ici, où l’on discute de l’incitation au minage et des problématiques de gouvernance associées à la Blockchain.