Depuis un certain temps, je réfléchis à comment utiliser des technologies de type blockchain / smart contracts pour assurer le partage d’information ou son stockage diffus. Ces technologies apportent un réel avantage car elles sont :

  • Sécurisées : La présence de la cryptographie à tous les étages assure la protection du système contre la plupart des attaques.
  • Décentralisées : Le stockage redondant et diffus du registre assure une réelle pérénité des données.
  • Anonymes : L’identification des acteurs ne se fait que par leur empreinte cryptographique, ce qui leur permet de sauvegarder leur anonymat tout en assurant un certain degré de certification lors de l’utilisation d’une solution assymétrique.
  • Autogérées : Le minage assure la rémunération des mainteneurs du réseau ainsi que san fonctionnement.

Tout cela pourrait être parfait s’il n’y avait pas quelques défauts :

  • Le système est un véritable «porc énergétique» puisqu’il met en jeu des calculs arbitrairement complexes, dont la majeur partie sera vaine, pour assurer la compétition des mineurs à la création de nouvelles entrées du registre.
  • Cette compétition est aussi la cause d’un autre défaut du système : l’incapacité d’enregistrer un nombre important de transactions par unité de temps.

Mon projet est d’utiliser une blockchain traditionnelle, destinée à stocker des données de contrôle, associée à des blocs de données organisés en graphe.

Dans la chaîne de contrôle, on stocke les données administratives : Qui publie quel bloc, à quelle date, quelle est sa somme de contrôle, sa signature cryptographique, etc.

On y trouve aussi des étiquettes, publiées par n’importe quel utilisateur et associées à un bloc de données.

Enfin, on peu aussi trouver des enregistrements qui décrivent comment obtenir un bloc à partir d’un autre, au moyen d’un algorithme publié au préalable sur cette même chaîne.