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

La Blockchain est à la mode. La scène numérique en a fait l’une de ses marottes, et pour cause : elle représente l’une des ruptures technologiques majeures de notre temps.

Pour autant, la technologie de la Blockchain n’a pas surgi ex nihilo, soudaine vague déferlante et inattendue. Elle est plutôt l’aboutissement d’une évolution constante, le fruit d’expériences avant-gardistes (dont le célèbre Bitcoin), la fille d’un mélange de technologies (cryptographie asymétrique, protocole d’échange pair-à-pair, puzzles mathématiques, arbre de Merkle…), de théories (politiques et économiques) et de besoins (confiance dans l’échange dématérialisé entre deux partie-prenantes).

Pas de panique ! L’important pour nous, commun des mortels, non-ingénieur, non-mathématicien, simples utilisateurs potentiels, est de saisir le concept de ce qu’est la Blockchain et de ce qu’elle peut nous apporter. Il s’agit, avant tout, d’en comprendre la nature, d’en démystifier le fonctionnement, pour être capable d’y placer sa confiance.

Car tout est là : la Blockchain est une technologie dont l’objectif premier est d’établir sans intermédiaire centralisé une CONFIANCE entre deux partie-prenantes.

L’ambition des lignes qui suivent est de brosser un portrait accessible de ce qu’est cette technologie, de son fonctionnement et de ses potentielles applications. Fins connaisseurs, ingénieurs, geeks érudits, passez votre chemin. Au mieux, vous n’apprendrez rien. Au pire, vous considérerez certaines ellipses pédagogiques comme des erreurs impardonnables, pourtant nécessaires.

Je vous conseille, si vous êtes réellement néophyte des technologies du digital, de parcourir une première fois les concepts sans vous attarder sur les Bonus. Vous y reviendrez ensuite pour vous y plonger avec beaucoup plus de plaisir.

Précisons aussi que l’on usera souvent de l’exemple Bitcoin, parce que sa valeur illustrative est forte et donne aux concepts une existence concrète. C’est aussi la première expérience Blockchain réussie à grande échelle, fondatrice de la plupart des grands concepts repris dans d’autres implémentations du système Blockchain, comme Ethereum.

Vous êtes prêts ? On y va 🙂

 

ETABLIR UNE CONFIANCE PARTAGEE

L’ambition de la Blockchain est, ni plus ni moins, de remettre en question le monopole de tous les intermédiaires qui centralisent les échanges entre personnes en contre-partie d’une garantie absolue. Pensez aux systèmes monétaires des Etats, aux banques et aux organismes de certifications, mais aussi à Facebook, Twitter, Tindr ou Uber. La confiance indispensable qu’ils génèrent repose intégralement sur un concept centralisateur de contrôle. Avec la Blockchain, l’idée est de passer du schéma 1, au schéma 2.

Schema_Centralise_VS_Distribue

 

Deux avantages principaux à cela :

  • La confiance ne repose plus sur un seul acteur dont la compromission, volontaire ou accidentelle, a pour conséquence l’effondrement de la confiance pour toutes les partie-prenantes qui gravitent dans son orbite.
  • Deux partie-prenantes peuvent opérer un échange sans intermédiaire, c’est-à-dire sans captivité, technique ou financière.
Bonus : Quelques exemples de perte de confiance...

Lorsque l’on parle d’échange entre deux partie-prenantes, on pense immédiatement aux flux financiers. C’est parfaitement logique puisque le principe de monnaie repose exclusivement sur la confiance que celle-ci est capable d’inspirer et de maintenir chez ses utilisateurs. Sans confiance, pas d’échange de valeurs financières. Nous n’allons pas refaire l’histoire (passionnante) de la monnaie à travers le temps. Mais il est un point important à mettre en avant : la monnaie fiduciaire (du latin fides, la confiance), repose depuis longtemps sur la capacité d’un émetteur à garantir la valeur d’échange d’une pièce ou d’un billet. Confiance qui est naturellement captée par les dépositaires d’une autorité politique et/ou économique. En qui, au Moyen-Âge, avoir confiance sauf dans la stabilité du seigneur local ? Et aujourd’hui, de l’Etat ou des banques institutionnelles ? Cette question est encore plus légitime avec la généralisation de la monnaie scripturale, c’est-à-dire la matérialisation de la possession d’une valeur par une écriture de compte. Quand l’immense majorité des valeurs financières mondiales sont aujourd’hui des écritures de comptes, le livre de compte et ceux qui en garantissent l’intégrité sont la clé de voûte du système.

Et bien la Blockchain est à la fois un livre de comptes et un protocole permettant d’en garantir l’intégrité de façon distribuée, plutôt que centralisée. L’exemple Bitcoin est utile ici, car il est la première expérimentation à grande échelle de l’utilisation de la technologie Blockchain pour la mise en place d’une monnaie alternative où la confiance est établie de façon distribuée. Nous nous en servirons comme illustration pour les concepts qui suivent. Mais l’on verra plus avant que le Blockchain est applicable à bien d’autres paradigmes.

 

LES CONCEPTS DE BASE

Concept 1 : Le “Ledger” (Livre de comptes)

La Blockchain, ou chaîne de blocs, peut être comparée à un livre de comptes retraçant de façon exhaustive les transactions de ses partie-prenantes. Le schéma ci-dessous en est une représentation :

Representation_Blockchain

Chaque bloc de la chaîne est constitué d’un ensemble de transactions qui ont été contrôlées et figées par le système. Une fois intégrées dans un bloc, lui-même inséré dans la chaîne à la suite directe du précédent, il n’existe aucun moyen théorique de modifier le contenu de ces transactions. La chaîne de blocs est immuable, ce qui est une bonne chose pour un livre de compte, et le premier constituant de la confiance.

Ce “ledger” a un autre avantage : il établit une règle d’antériorité dans les échanges. Chaque bloc est lié au précédent par référence à son “identifiant” (son “hash”, comme nous l’expliquerons plus tard). Ainsi, impossible de dépenser une valeur que l’on ne possède pas encore. En effet, les valeurs échangées sont strictement scripturales : elles n’ont d’existence et de propriétaires que parce que l’on garde la trace infalsifiable de leurs changements de propriétaire, depuis leur genèse.

Dernière propriété primordiale, ce livre de compte est partagé par toutes les partie-prenantes du système distribué. A chaque instant, il existe un consensus sur le contenu du “ledger que le protocole Blockchain assure par des moyens que l’on verra plus avant. Ainsi, aucune entité centralisée n’a la responsabilité unique de garantir l’intégrité du livre de compte. Chaque partie-prenante, comme membre du réseau pair-à-pair (nœud), est récipiendaire et garante de l’intégrité du “ledger”.

 

Concept 2 : La transaction, un changement d’état

Alors, quel est le “véhicule” de ces échanges de valeurs ? Comment peut-on déterminer qu’une valeur x a été transférée d’un propriétaire A à un propriétaire B ?

Les transactions (ces éléments intégrés aux blocs de la chaîne) sont le moyen normalisé de représenter ce déplacement de valeur. Et elles le font en explicitant un changement d’état entre au moins deux adresses. Pour comprendre ce qu’est une adresse, imaginez une boite aux lettres à la localisation unique. Dans cette boite aux lettres, une valeur a été déposée par une transaction précédente. Par exemple, 10 bitcoins (BTC).

Une transaction déclare qu’une adresse 1, détenant une valeur a, souhaite transférer une valeur b sur une adresse 2. Voyez cela comme un virement bancaire. La transaction marque un changement d’état entre les deux adresses.

Representation_Transaction

Bonus : Le système de change dans le protocole Bitcoin...

Ce principe extrêmement classique de changement d’état, propre au monde scriptural (les mouvements bancaires ne fonctionnent pas autrement), combiné à la chaîne de blocs qui retrace l’intégralité des transactions depuis le début, est très puissant. A tout moment, n’importe quelle personne en possession de la chaîne de blocs est en capacité de retracer l’historique et l’intégrité d’une valeur sur une adresse donnée.

Mais une question vous taraude certainement : comment sait-on à qui appartiennent les adresses qui détiennent les valeurs ?

On a écrit plus haut que A et B possédaient des adresses. Pour éviter que n’importe qui en connaissance d’une adresse puisse en prendre le contrôle, ce qui rendrait le système absurde, le protocole Blockchain s’appuie sur les technologies et concepts éprouvés de cryptographie asymétrique.

La cryptographie asymétrique établit une relation infalsifiable entre deux éléments : la clé publique et la clé privée. Ces deux éléments ont ensemble deux utilités principales :

  • Un moyen de chiffrement des données transmises, servant à en garantir l’intégrité,
  • Une authentification de l’origine du message.

L’objectif n’est pas ici d’expliquer ce qu’est la cryptographie asymétrique. Pour comprendre en détail, vous pouvez aller voir ici, , ou encore suivre ce superbe cours de Stanford sur Coursera). Mais il est important de comprendre comment est créée une adresse et comment l’on s’assure de son propriétaire.

Lorsqu’une personne s’engage dans une transaction fondée sur la cryptographie asymétrique, celle-ci génère, à l’aide d’un programme, une clé publique et une clé privée. Ces deux clés sont mathématiquement liées par une fonction à sens unique comportant une brèche secrète (pour creuser, par ici). Cela signifie qu’il est extrêmement compliqué, long et coûteux (pour ne pas dire impossible) de reconstituer une clé privée à partir de sa clé publique, mais très rapide et simple de vérifier l’association entre les deux.

Dans le cas Bitcoin, une adresse est dérivée d’une clé publique par un certain nombre de procédés algorithmiques qui assurent son unicité (pour plus de détails, voir ici).  A cette adresse correspond donc une clé privée unique. Rappelez-vous la boite à lettres : tout le monde connaît son adresse. Mais une seule personne en détient la clé. Vous pouvez déposer un contenu dedans, comme un courrier serait livré. Mais seule la personne disposant de la clé privée peut ouvrir la boite et disposer de son contenu. Il en va de même pour les adresses qui servent à créer des transactions. Pour utiliser une adresse contenant une certaine valeur en “entrée” d’une transaction, une partie-prenante doit faire la preuve qu’elle dispose aussi de la clé qui correspond à cette adresse. Sans preuve, le système rejettera la transaction.

Cela implique, en miroir, que si vous perdez la ou les adresses publiques sur lesquelles vous détenez des fonds, vous perdrez avec la jouissance de ces valeurs ! De même, si vous perdez la clé privée, vous ne pourrez jamais plus revendiquer votre possession sur la ou les adresses publiques qui sont liées à la clé. Enfin, si une tierce personne venait à prendre connaissance de votre clé privée, celle-ci, pour autant qu’elle connaisse aussi vos adresses publiques, pourraient très rapidement transférer vos valeurs vers une adresse en sa possession. Et vous ne pourriez plus rien y faire. C’est l’un des dangers pour les néophytes sur Bitcoin : perdre l’usage de valeurs est très facile sans les précautions adéquates. Pour lire quelques exemples classiques sur ce sujet, voir ici.

Enfin la transaction est prête : vous connaissez l’adresse publique de la partie-prenante qui doit être payée, vous possédez (et êtes en mesure de le prouver) une ou des adresses publiques contenant les valeurs adéquates, tout cela a pris la forme d’un message numérique normalisé. Qu’advient-il ensuite ?

La transaction est diffusée au réseau. A l’intégralité du réseau, par propagation (broadcast). Vous avez informé le réseau de votre volonté d’opérer cette transaction et de la voir validée, intégrée dans un bloc et entérinée de façon définitive.

Cela, c’est à travers le concept 3 qu’on le comprend.

 

Concept 3 : La “Proof of Work” (Preuve de travail), les mineurs et la validation des transactions

Comment les transactions sont-elles insérées dans les blocs ? Qui se charge d’en déterminer la validité et comment avoir confiance dans ces insertions ? Et surtout, comment être certain qu’une transaction ne pourra plus être renversée ?

Quand une transaction est diffusée (broadcast), elle prend place dans une liste d’attente propre à chacun des nœuds du réseau. Chaque utilisateur du système reçoit donc les transactions d’autres utilisateurs du réseau qu’ils souhaitent voir vérifiées et validées.

On l’a vu, les transactions ont pour nature d’être intégrées dans un bloc, qui lui même sera intégré dans la chaîne, créant ainsi un historique ordonné et transparent des transactions. Or, n’oublions pas que nous sommes dans un consensus distribué. Aucune autorité centrale n’existe pour garantir que l’insertion d’un bloc dans la chaîne est valide. Il doit donc exister un moyen pour le réseau de maintenir le consensus de façon dynamique : une seule et unique chaîne de blocs doit exister entre toutes les partie-prenantes du réseau. D’autre part, le réseau doit se prémunir d’insertions illégitimes qui pourraient être tentées par un nœud en particulier.

Pour comprendre la réponse à ces problématiques, il est nécessaire d’énoncer quelques principes fermement ancrés dans le code technologique de la Blockchain :

  • La chaîne de blocs devant être considérée comme référente par le réseau est celle qui est la plus longue (nous verrons ce que cela signifie),
  • L’intégration d’un nouveau bloc dans la chaîne est soumise à la présentation d’une preuve de validité vérifiable par toute partie-prenante du réseau.

Première question : comment se prémunir contre une partie-prenante qui bombarderait le réseau de nouveaux blocs à intégrer à la chaîne, avec pour conséquences l’intégration de transactions frauduleuses ou la saturation du réseau, dans les deux cas l’effondrement du système ?

La réponse que les développeurs de la Blockchain ont trouvé est très astucieuse : pour proposer un bloc au réseau pour intégration à la chaîne, il est nécessaire de résoudre un puzzle mathématique.

Bonus : Le principe de puzzle mathématique...

Ceux qui  s’y attellent sont les fameux “mineurs”. Qui sont-ils ? Potentiellement n’importe quelle partie-prenante du réseau. En pratique, des spécialistes du minage équipés de machines spécialisées dans ce type de traitement informatique. Pourquoi une machine spécialisée ? Car du fait de ce puzzle mathémtique, le processus de création d’un nouveau bloc demande non seulement une puissance de calcul importante, mais idéalement une puissance de calcul supérieure à celle des autres mineurs. En effet, dans le système Blockchain, les mineurs sont en compétition.

Expliquons pourquoi. Le danger principal qui guette un consensus distribué est la domination d’une partie-prenante sur toutes les autres. Par exemple, si une partie-prenante unique était en capacité de créer l’intégralité des nouveaux blocs de la chaîne, il n’y aurait plus aucun moyen de s’assurer de son intégrité, sauf à avoir confiance dans cet intermédiaire unique. Ce qui nous fait revenir à une forme classique de “confiance” et vide de son sens le consensus distribué.

L’association du puzzle mathématique et de la compétition ouverte introduit une notion de probabilité dans l’équation. L’idée est qu’un mineur, même s’il possède une machine très puissante, ne pourra jamais produire plus de puissance de calcul que l’intégralité des autres machines participant au minage. Sa probabilité de résoudre le puzzle mathématique avant les autres est donc celle d’un ratio Capacité de calcul propre / Capacité de calcul totale. En théorie, le système s’assure donc une forme de répartition aléatoire de la création de blocs.

A chaque nouveau bloc valide, tous les mineurs, en recevant ce bloc, sont informés que la compétition pour un nouveau bloc est ouverte. Ils tentent alors d’être les premiers à résoudre le puzzle mathématique.

Pour s’assurer qu’un mineur ne continue pas de miner sur sa version obsolète de la chaîne, puisqu’un nouveau bloc a été accepté par le réseau, le système Blockchain comporte un principe supplémentaire, introduit plus haut : la version de la chaîne totalisant la plus grande valeur computationnelle est la seule référence pour le réseau. Il n’y a donc aucun intérêt pour un mineur de continuer de miner sur sa version de la chaîne : il ne ferait que dépenser de la puissance de calcul pour un bloc qui ne sera jamais plus accepté par le réseau.

Bonus : La valeur computationnelle de la chaîne...

Mais alors pourquoi les mineurs prennent-ils part à cette compétition ? Pourquoi dépensent-ils un budget conséquent pour acheter des machines performantes et payer une note d’électricité conséquente ? C’est que résoudre le puzzle mathématique et être à l’origine de l’insertion d’un bloc dans la chaîne est récompensé. Dans Bitcoin, par exemple, créer un bloc valide rapporte aujourd’hui 25 BTC, plus les frais éventuellement présents dans les transactions intégrées dans le bloc. Au cours du jour (08/02), cela représente approximativement 8475 euros.

Pour résumer, le système jouit donc d’une double protection :

  • Celle d’une logique économique qui rend financièrement non-rentable les tentatives de falsification de la chaîne de blocs : il faudrait déployer des moyens au moins égaux à ceux de l’ensemble du réseau, pour des coûts faramineux (matériel + électricité + logistique…),
  • Celle d’une incitation financière qui récompense les efforts de fiabilisation des mineurs qui participent dans les règles du jeu.

Incidemment, c’est aussi par ce biais que Bitcoin assure une forme de création monétaire. La seule source de nouveaux bitcoins injectés dans le système est celle des récompenses octroyées aux mineurs. Impossible, par exemple, de faire “marcher la planche à billets”. Ce qui n’empêche pas cette cryptomonnaie d’accuser une volatilité parfois violente. Mais cela, nous le verrons dans la partie 2 de ce dossier.

 

Et vous y voilà : vous avez parcouru les grands principes de fonctionnement d’un protocole Blockchain. Il existe évidemment une multitude de raffinements supplémentaires, mais si vous avez assimilé ces 3 concepts (Ledger/Transaction/Proof of work) et leurs principes d’implémentation, vous pouvez considérer que vous comprenez comment fonctionne une Blockchain.

Mais ne nous arrêtons pas en si bon chemin. La suite du programme est tout aussi passionnante :