La blockchain … au chtijug !

Avant toute chose, un petit avertissement : j’ai mangé à Devoxx de la blockchain à foison. Et cette session du chtijug avait donc pour moi comme un goût … de trop peu.

Avant donc de lire ce compte-rendu, je vous encourage à jeter un oeil aux articles précédents

Et donc, c’est parti !

 Survolons donc la blockchain

Pour commencer, petit retour classique sur l’argent : le troc, puis la monnaie, la monnaie fiduciaire, et la crise boursière de 2008. Au passage, et là c’est mon avis, il me semble que toutes ces histoires du troc qui s’étend pour devenir la monnaie sont assez remises en cause par les économistes/historiens …
Ce qui nous amène comme d’habitude à Bitcoin et son échange de monnaie en P2P.
Bitcoin permet d’écrire la confiance dans le code (voir à ce sujet blockchain as a trust machine).
Vient ensuite le classique passage sur l’opposition entre les banques traditionnelles et le P2P qui va tout fracasser.
Pour Julien, ça n’est pas intéressant, alors que c’est tout le sel du sujet : décider où placer le curseur de la distribution de données va permettre (ou pas) le succès de l’implémentation.

Revenons à la technique : la blockchain, basée sur un livre de comptes public et distribué, et une méthode de construction de consensus.

Ce livre de comptes est découpé en plusieurs blocs. Pour créer un nouveau bloc, des acteurs de la blockchain sont incités à effectuer les calculs permettant d’initialiser le bloc suivant (ce sont les fameux mineurs). C’est l’un des points importants : tous les concepts de la blockchain se basent sur des incitations ou pénalités « économiques » favorisant ou empêchant des comportements. Ainsi, les mineurs sont récompensés par des transactions dans le livre de compte en leur faveur lorsqu’ils permettent d’initialiser un nouveau bloc.

Julien voit ça comme une base de données distribuée. C’est vrai au sens où les données sont distribuées. En revanche, les capacités d’indexation et de recherche sont … un peu faibles.

Après un aperçu très … vague de l’activité de minage, vient une comparaison entre bitcoin et les banques traditionnelles. Dans ce cas, la principale différence est que le réseau Bitcoin est totallement public. Oui, public : tous les comptes de tous les utilisateurs sont visibles. Il se trouve juste que ces comptes sont des UUID illisibles.

Le cas d’utilisation présenté ensuite est séduisant, avec la borne de paiement acceptant les bitcoins, mais irréaliste au vu des délais de validation des transactions : actuellement, il faut environ 5 blocs pour être sûr de la validation de la transaction, soit presqu’une heure … Difficile d’attendre tout ce temps pour acheter sa baguette.

L’un des intérêts de bitcoin est aussi que le langage de script embarqué dans les transactions permet des opérations plus complexes que le simple échange de bitcoin de gré à gré. On peut par exemple faire valider le paiement par N personnes parmi M, ou attendre le paiement jusqu’à une date donnée.

Vient ensuite le sujet des oracles. Un oracle permet d’injecter dans la blockchain des données externes. Le gros problème est que, comme toutes les transactions sont rejouées sur tous les noeuds, il faut que les valeurs renvoyées par les oracles soient indépendantes de la date à laquelle ces oracles sont appelés.

Ce qui nous amène aux limites

  • le manque de scalabilité
  • la concentration des acteurs
  • les choix technologiques
  • la gouvernance du projet
  • la protection des clés

Heureusement, des blockchains, il y en a plein. Elles ont certes des valorisations inférieures, mais les évolutions sont encore nombreuses. Et elles ont des objectifs différents : certaines ont un objectif monétaire, ou applicatif … comme ethereum.

Dans ethereum, on peut mettre des transactions d’échange de valeurs, mais aussi des transactions définissant de nouveaux programmes (les fameux smart contracts). Evidement, ces programmes ne sont plus arrêtables à partir du moment où ils sont livrés dans un bloc ethereum.

Et encore une fois, etherscript et son quasi-scratch éminement lisible est lancé.

Dans les exemples d’utilisation, la gestion des cartes volées est anecdotique. En revanche, la gestion du carnet d’entretien automobile dans une blockchain est intéressante, au sens où elle entre précisément dans le champ de la confiance faible : les acheteurs automobiles ont peu confiance en les vendeurs, qui peuvent produire de fausses factures. Stocker les informations dans un tiers de confiance distribué dans ce cas est franchement utile.

Stratumn et les workflow de confiance

Passons maintenant à Seb, de Stratumn … qui nous a mis sa présentation sur internet

Stratumn imagine un paradigme de fonctionnement de la donnée, qui permette d’arrêter les workflow débiles type renouvellement de la carte de séjour : un tiers produit des documents pour un autre tiers que je vais transporter en tant que tiers de confiance.

Et là, la meilleure description de la blockchain est donnée : c’est en fait une base de notarialisation ou de timestamping (selon la qualité de votre accent). En effet, les blockchains permettent simplement de s’assurer qu’une donnée est dans un état à un instant grâce à plusieurs propriétés :

  • immuabilité
  • auditabilité
  • inviolabilité

Typiquement, dans Bitcoin, en inscrivant des transactions minimales, on peut ajouter dans la transaction un hash qui indique qu’une donnée était dans un état donné avant que la transaction ne soit inscrite.

Ils ont donc créé chainscript.io qui permet de définir un workflow dans la blockchain. Alors j’ai un doute sur le concept de chainscript. Je m’explique : l’intérêt de la blockchain est de fournir une auditabilité totale. Or avec chainscript, on ne met dans la blockchain que des hashes. Et en fait, des hashes construit à partir d’innombrables transactions chainscript. Du coup, l’auditabilité en prend un sacré coup.

En revanche, je retiens comme un concept aussi fort que le théorème CAP la trinité des preuves établie par Seb :

  1. preuve d’existence
  2. preuve de calcul
  3. preuve de propriété

Avec ces trois éléments, on peut prouver que l’opération a bien été effectuée d’une façon immuable et inviolable. Et ça, c’est la clé de toutes les blockchains, à mon sens, et l’élément qui permettra d’en tirer un modèle économique, qu’il soit basé sur une blockchain privée ou publique.

Finalement, une bonne session, à part le buffet (qui a été le premier buffet à moitié loupé du chtijug).

Et pour finir, un dernier tweet de l’un de nos joyeux organisateurs qui va élargir le débat

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s