Site des duniterriens belges

May 27, 2018

La blockchain, qu'est-ce que c'est ?

Attention, peinture fraiche : article en cours d'écriture

C'est écrit partout, on en parle aux réunions, ça fait partie des arguments en faveurs des cryptomonnaies en général, ... La blockchain, ou en français la chaîne de blocs, mais qu'est-ce que c'est ? À quoi ça sert ? Pourquoi est-ce important ?

Comme cet article de contrepoint.org l'explique très bien, les données numériques sont plus faciles à copier que du papier. Si on souhaite utiliser de la monnaie numérique, comment être sûr que la monnaie qu'on a reçue ait bien disparu du compte de l'autre ? Il y a un risque, celui de "double dépense" (ou double-spending, en anglais). Malgré ce problème initial, est-il possible de mettre en place une monnaie numérique fiable ? Oui!

La première solution consiste à mettre en place un registre, centralisé, permettant de garder une trace de chaque unité de monnaie et des échanges entre utilisateurs. C'est le système utilisé par l'euro, le dollars et les autres monnaies conventionnelles mais aussi par les Sels ou la Minuto. Ce système pose différents problèmes...

  • Il est fragile (si l'autorité centrale tombe, le système s'arrête).
  • Il repose sur de la confiance envers un tier (état, société privée, association, ...).
  • Il est opaque pour les utilisateurs.

À ce problème de départ, une solution a été trouvée : La chaine de blocs.

C'est un livre de compte partagé par tout le réseau, une base de données distribuée1. Ce système offre de nombreux avantages :

  • Il est solide et résilient.
  • Il ne repose pas sur la confiance envers un tier mais sur l'ensemble du réseau.
  • Il est très difficile à falsifier2.
  • Il repose sur des programmes libres.
  • Il favorise la transparence3.

(Il y a différents inconvénients également, notamment le fait que la méthode pour valider les blocs est énergivore. C'est un problème que Duniter a limité et beaucoup de gens travaillent sur des méthodes de consensus moins énergivores. Et en même temps, rappelons-nous qu'on met beaucoup plus d'énergie pour décider en démocratie que dans une tyrannie.)

D'accord pour le principe, mais comment cela fonctionne-t-il ?

Tout ce qu'il se passe (transactions, certifications, etc.) est écrit dans des "blocs" de données. Chaque bloc est signé numériquement. La signature du bloc 1 est contenue dans le bloc 2. La signature du bloc 2 est contenue dans le bloc 3. Concrètement, cela signifie qu'on ne peut pas modifier le bloc 1 sans changer la chaîne de signatures. Et commme la chaîne de blocs est détenues par tous les nœuds du réseau, personne ne peut la modifier et puis la remplacer discrètement. La sécurité est assurée par la décentralisation.

Dans le cas de Duniter, la chaine de blocs est contenue dans une base de données SQLite. Cgeek, le développeur principal de Duniter, a écrit un post sur le forum expliquant comment explorer la base de données de Duniter. On peut installer par exemple sqlitebrowser et ouvrir la base de données qui se trouve dans le dossier ~/.config/duniter/duniter_default/duniter.db (sous Linux).

blockain

À l'heure où j'écrit ces lignes, il y a plus de 123 000 blocs dans la base de données. Chaque bloc comporte toute une série de champs.

Un extrait :

  • hash - La signature du bloc
  • currency - Le nom de la monnaie, "g1" dans notre cas
  • previousHash - La signature du bloc précédent
  • membersCount - 59 au départ, plus de 1000 aujourd'hui
  • monetaryMass - Masse monétaire totale
  • transactions - Les transactions entre utilisateurs
  • certifications - Les certifications entre utilisateurs
  • identities - Les identités du bloc
  • joiners - Les utilisateurs qui deviennent membres

On peut par exemple regarder tous les hash et previousHash :

blockain

On voit bien que le hash de chaque bloc se retrouve dans la case previousHash du bloc suivant. La chaîne de blocs, c'est ça, cette châine de signatures numériques (hash), liées les unes aux autres.

ARTICLE À COMPLÉTER

Je terminerai sur une citation :

Internet a permis de décentraliser l'information (...). La blockchain et les tokens permettent de décentraliser la valeur (...). ( Clément Jeanneau - source )


  1. https://fr.wikipedia.org/wiki/Blockchain 

  2. Certaines cryptomonnaies ont été victimes de failles qui ont permis à certains de tricher mais le problème ne vient pas de la chaine de blocs en elle-même. 

  3. Dans le cas de Duniter, la transparence est même totale puisqu'on peut tout voir (échanges, certifications, montants sur les comptes, ...).