Repositionner la blockchain, et le vocabulaire associé, dans la technologie des registres distribués

de | 23 septembre 2017

La blockchain s’est popularisée dans l’actualité ces trois dernières années. La majorité des publications présente le fonctionnement théorique de la blockchain, en 6 étapes, basé sur les principes de la bitcoin, créant ainsi de la confusion entre les deux sujets. Par ailleurs, au regard des nombreuses “solutions de blockchain” qui fleurissent (Ethereum, HyperLedger Fabric, Ripple, etc.) , il est difficile d’appréhender les différences entre elles. Dans cette publication, je cherche à (re)clarifier des éléments de langage et donner quelques clés de lecture qui permettent de comprendre les différences entres les solutions et leurs mises en oeuvre.

Pour commencer, j’utiliserai dans la suite de cette publication le terme “technologie des registres distribués”, en anglais Distributed Ledger Technology – DLT, en lieu et place de la blockchain. En effet, la blockchain est l’implémentation de la technologie des registres distribués. Il existe de nombreuses implémentations de cette technologie :

  • Blockchain qui est utilisé par Bitcoin, Ethereum et les différents projets HyperLedger
  • Tangle qui est utilisé par IoTA
  • Hashgraph dont l’implémentation à l’échelle reste à faire

La différence entre ces implémentations réside dans le mode de stockage des transactions dans le registre distribué. Par exemple :  

  • pour la blockchain : les transactions sont stockées dans des blocs liés les uns aux autres
  • pour IoTA : un graphe orienté acyclique est utilisé dans lequel les objets sont constitués de transactions

Il est important de préciser que la majorité des implémentations de la technologie des registres distribuées est basée sur la blockchain… ce qui explique probablement l’écart de langage qui confond technologie des registres distribués et blockchain.

Dans la suite de cette publication, j’utiliserai le terme blockchain, Tangle ou autre, lorsque je détaillerai un point spécifique de l’implémentation.

Nous avons vu précédemment que le mode de stockage est une propriété qui distingue une implémentation de la technologie de registres distribués 🙂 par rapport à une. Une seconde propriété concerne les règles qui régissent l’écriture des transactions dans le registre, ces règles sont désignés par “consensus”. L’objectif du consensus est d’assurer que seules des transactions légitimes sont écrites dans le registre distribué : le consensus est le fondement même de la confiance que feront les noeuds sur l’intégrité des données qu’ils accéderont. Les consensus sont implémentés à travers des algorithmes mathématiques avancés… que je ne détaillerai pas dans cette publication (ouf !). Vous trouverez à la fin de la publication un lien vers une source intéressante sur le sujet.

Le choix du mécanisme de consensus est directement lié au modèle de déploiement du registre distribué :

  • Registre distribué public : le registre peut être lu par n’importe quel noeud qui rejoint le réseau. Le consensus est généralement basé sur la résolution d’un problème mathématique complexe qui permet au gagnant d’écrire dans le registre. Le gagnant est rémunéré par le réseau ou prend une commission sur les transactions qu’il a validées. Dans les blockchains publics, nous parlons de mining.
  • Registre distribué privé : le registre peut être lu uniquement par des noeuds autorisés. Concernant le consensus, la validation peut-être faite par un ou plusieurs noeuds spécifique du réseau et autorisés à écrire dans le registre. Le consensus est basé sur le fait que les membres autorisés doivent s’accorder sur la liste des transactions à écrire dans le registre distribué proposé.
  • Registre distribué en consortium : il s’agit d’un modèle hybride entre les modèles privés et publics : seuls quelques membres autorisés peuvent valider les transactions.
    • Le registre distribué est public
    • Le consensus repose sur le modèle de registre distribué privé

Par ailleurs, des services complémentaires distinguent les déclinaisons de la technologie des registres distribués et leurs implémentations ;

Certaines implémentations sont dédiées aux transactions dédiées aux transferts de crypto monnaies (Bitcoin, Ripple, etc.) pour certaines dédiées aux micro-transactions qui consistent à des transferts de très petits montants où l’approche à la commission n’a pas de sens (IoTA)

D’autres proposés des services de contrat intelligents (smart contracts) et qui permettent de programmer l’exécution d’un certain nombre de tâches avant de conclure la transaction. La preuve de l’exécution des tâches est stockée dans le registre (Ethereum, HyperLedger Fabric, etc.)

Depuis peu, nous voyons de plus en plus de hard forks dans les différentes implémentations : un hard work est une scission du registre distribué dans un nouvelle branche. Cette nouvelle branche devant être gouvernée par de nouvelles règles, l’alimentation en transactions de l’ancienne branche principale avec les anciennes règles devant s’arrêter, normalement… ce qui n’a pas été la cas pour le hard fork, de cet été, de la bitcoin. La communauté des développeurs de bitcoin n’a pas réussi à trouver un consensus sur la nouvelle taille d’un bloc, un comble 🙂  . Il y a eu deux courants de pensée : augmentation modérée et augmentation massive de la taille d’un bloc. Résultat : création, à travers un hard fork, d’une seconde bitcoin : la bitcoin cash dont le registre s’enrichit en parallèle que le registre de la bitcoin.

Les hard work permettent d’adresser les aberrations dans le registre comme se fut le cas dans ethereum où un hard fork a été réalisée suite au piratage du fond theDOA. Le hard fork a permis d’annuler l’ensemble des transactions liées au vol des actifs du fond.

Pour terminer, voici tableau qui résume la publication qui sera mis à jour dans le cadre des travaux du groupe de travail, que je co-préside, Blockchain/Distributed Ledger du Cloud Security Alliance :  

 

Distributed ledger technology
Blockchain Tangle Hashgraph
Implementation Bitcoin Ethereum HyperLedger Fabric Ripple IoTA ?
Modèle Public Public Privé Consortium ?
Consensus Proof-of-work

(PoW)

Proof-of-work

(PoW)

Byzantine Fault Tolerance

(BFT)

Federated Byzantine Agreement Monte-Carlo par chaînes de Markov
Services Crypto monnais Smart contract

Crypto monnais

Smart contract Crypto monnais Crypto monnais

Micro-transactions

Hard fork 2017 : Bitcoin

Bitcoin Cash

2016 : theDAO fork

2017 : Serenity pour le passage vers le consensus Proof of Stake (PoS)

Voila, j’espère avoir (re)positionner simplement les fondamentaux et le bon vocabulaire associés à la technologie des registres partagés.

Dans ma prochaine publication sur le sujet, je reviendrai sur la véracité du caractère innovant de cette technologie qui est clamé par les gens.

Sources :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *