Blockchain Article 1: concepts fondamentaux

Cet article a pour vocation de vulgariser le concept de blockchain. Il sera suivi d’un second article plus technique qui illustrera comment utiliser un service de blockchain avec les technologies Microsoft.

Concept

Née avec le bitcoin, la blockchain est une technologie de stockage et de transfert d’information sécurisée, décentralisée et sans intermédiation dans un réseau peer-to-peer.

Toute nouvelle information (transaction) est inscrite sous forme de bloc dans une chaîne (un livre de compte) réputée infalsifiable que chaque acteur de la chaîne partage.

A chaque instant, il est possible de connaître la chronologie d’une information échangée dans la chaîne (par qui) car les blocks contiennent la signature public d’un membre mais le contenu de la transaction reste privé. Il faut en posséder la clef privée pour le lire.

blog ai3 chain-1 Blockchain Article 1: concepts fondamentaux

Exemple d’une transaction dans la chaîne BitCoin.

 

Quelles applications pour une blockchain ?

On attribue 3 types d’application à la blockchain :

  • Le transfert d’actifs,
  • Le registre,
  • Les « smart contracts » (mini programmes distribués)

Dans tous les cas, l’objectif est de remplacer des tiers de confiance centralisés qui monopolisent parfois un pouvoir économique, politique ou social sans apporter de valeur ajoutée pour le consommateur final.

Comment fonctionne une blockchain ?

  1. Deux clients de la chaîne effectuent une transaction. A transmet une information à B.
  2. La transaction est inscrite dans un bloc.
  3. Des nœuds du réseau participant à la chaîne (mineurs) valident le bloc par des méthodes cryptographiques.
  4. Le bloc est validé et daté et la transaction est validée, B reçoit l’information.
  5. Le bloc est propagé à tous les membres de la chaîne.

Focus sur le consensus décentralisé : la preuve de travail

Il s’agit du mécanisme qui permet de garantir la validité d’une transaction  au sein de la chaîne et qui est une solution du problème des généraux byzantins . La preuve de travail consiste à fournir aux autres membres le résultat d’un calcul. Le calcul doit être couteux en ressources mais le résultat doit être facilement vérifiable.

Dans notre cas, il s’agit d’éviter que des nœuds du réseau mal intentionnés tentent de produire un bloc contenant de fausses informations.  Voici le fonctionnement :

 

  1. Certaines transactions sont en attente
  2. Des nœuds spéciaux du système (les mineurs) créent localement une version du prochain bloc en exécutant un calcul complexe (1)
  3. Le premier nœud qui résout le problème envoie le résultat à tous les autres nœuds du réseau qui peuvent vérifier facilement ce résultat (2)
  4. Le mineur victorieux peut être rémunéré (il prend une commission sur la transaction)
  5. Le bloc est ajouté à la chaîne
  6. La nouvelle version de la chaîne et propagée à tous les nœuds (3)

 

  • Dans le cas du bitcoin, le calcul consiste à trouver un double hash SHA-256 d’une chaîne qui contient les transactions en attente. Un nœud gagne si son hash commence à minima par n zéro
  • Il faudrait posséder une majorité de nœuds malveillants sur le réseau pour valider un faux bloc.
  • Pour cette raison, la chaîne est mise à jour de façon régulière (de 10 minutes à une heure pour le bitcoin) ce qui induit une latence dans la mise en œuvre des transactions.

blog ai3 Blockchain-1-1024x421 Blockchain Article 1: concepts fondamentaux

Focus sur les contrats

Dans certaines chaînes, une transaction peut contenir un programme avec une mini base de données : un contrat. Les contrats sont répliqués dans tous les nœuds par construction de la chaîne et si un utilisateur exécute une méthode du programme qui met à jour la base, alors cette commande est répliquée sur tout le réseau.

 

Par exemple, on peut implémenter un contrat de location d’un logement dans la chaîne en pré câblant les conditions du contrat :

  • Le bailleur reçoit le montant du loyer en caution à la date d’entrée
  • En fin de contrat, le bailleur retourne la caution
  • En cas de preuve de dégradation (*), le loueur transfert une somme d’argent au bailleur

(*) on pourrait imaginer automatiser ce point avec l’internet des objets.

 

Dans cet exemple, pas besoin d’agent immobilier pour rédiger le contrat ou de juge pour régler un problème de paiement.

 

Quelles sont les limitations d’une blockchain ?

Le choix de la sécurisation par preuve de travail induit une latence élevée pour la validation des transactions et limite le nombre de transactions par jour. Bitcoin atteint aujourd’hui 350000 transactions avec une latence d’environ 15 minutes (parfois une heure) loin du milliard de transactions quotidiennes par carte bancaire du système bancaire institutionnel. Une piste d’amélioration est un changement de paradigme dans la fourniture de la preuve de validité des blocs (la preuve d’état).

 

Quelques exemples d’implémentation

Les applications d’une blockchain sont nombreuses et devraient exploser avec l’avènement de l’internet des objets. Si certains services sont maintenant mieux connus du grand public comme la monnaie virtuelle Bitcoin, d’autres services restent encore au stade de l’expérimentation. On pense par exemple à Monegraph (propriété intellectuelle d’œuvre et conditions d’utilisation) ou La Zooz (un Uber décentralisé sans tiers pour prendre des taxes …).

 

 

Microsoft BAAS

Microsoft fournit des instances de blockchain sous forme de service dans Azure.

La création d’une application avec cette technologie fera l’objet du prochain article.

blog ai3 baas Blockchain Article 1: concepts fondamentaux

One thought on “Blockchain Article 1: concepts fondamentaux

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.