Holochain: vers un internet véritablement décentralisé

Damien Douté

Une technologie alternative à blockchain avec une conception à l’opposé permettant d’aller plus loin dans la décentralisation d’internet.

Source: Wikimedia Commons

Le Web centralisé

Bien qu’internet soit techniquement une infrastructure décentralisée, nous avons progressivement concentré notre utilisation sur des logiciels centralisateurs (Facebook, Twitter, gmail…). Les corporations gérant ces logiciels bénéficient d’un pouvoir conséquent sur nous, ses utilisateurs, leur permettant de dicter les règles du jeu, transformant de fait internet en minitel 2.0. Nous cédons le contrôle de nos données et nos moyens de communication à ces corporations alors qu’elles n’ont pas forcement nos intérêts à cœur. Cela pose divers problèmes sociétaux & juridiques, tel que le droit à l’oubli ou le droit à la portabilité des données.

Une solution envisagée est de rendre ces corporations démocratiques et de propriété collective. C’est le mouvement des plateformes coopératives, notamment connu pour sa campagne pour transformer Twitter en coopérative.

Une autre solution consiste à remplacer les technologies centralisatrices utilisées par ces logiciels, par des technologies décentralisatrices, permettant ainsi le développement de logiciels alternatifs, profondément décentralisés, pair-à-pair. Des logiciels peu gourmands en ressources que tout le monde peut héberger avec un matériel informatique modeste.

Holochain, et son projet mère, Ceptr, s’inscrit dans cette problématique en proposant une infrastructure logiciel permettant la création de logiciels distribués dans le but de redonner aux individus et aux communautés la maîtrise de leurs données et outils de communication.

S’inspirer du vivant

Holochain est une technologie en développement dont une première version fonctionnelle est disponible en open source depuis mi-2017.

L’architecture de Holochain s’inspire des principes organisationnels des systèmes vivants.
Comment la nature fait-elle pour s’organiser? Est-ce que dans votre corps il y a une cellule “chef” qui dit aux autres cellules quoi faire? Est-ce que dans une forêt, un arbre central organise les préparations pour l’hiver? Ou peut-être que les arbres se mettent d’accord par “consensus global”? Bien évidemment que non! Pourtant ces systèmes fonctionnent et sont extrêmement résilients.

Ces systèmes fonctionnent car chaque entité, chaque agent, est autonome et réagit en fonction des signaux qu’il perçoit de son environnement. Ses réactions sont régies par un ensemble de règles de fonctionnement qu’il possède, c’est son code ADN. Les cellules d’un même organisme partagent le même code ADN, ce qui en fait des règles communes de fonctionnement.

Un humain et son ADN

Intégrité des données sur un réseau distribué

Holochain reprend ce principe. Chaque agent, chaque nœud du réseau, possède les règles communes de fonctionnement : le code source de l’application distribuée, appelé Nucleus. En consultant son exemplaire du Nucleus, le nœud peut vérifier la validité des informations qu’il reçoit des autres nœuds (les signaux). Si l’information est valide, le nœud va la stocker et la propager à son tour à ses voisins (gossip). Ainsi seul les données intègres sont propagées et consultables sur le réseau. Ce système garantit l’intégrité des données sur un réseau distribué sans serveur ou registre central.

Il est important de noter que le stockage de l’information est fait en fonction du point de vue subjectif de chaque agent (agent-centric), plutôt qu’un point de vue objectif de la donnée (data-centric). Ce principe holographique donne le nom à Holochain (contraction de holographic hash-chain).

Quel différence avec BitTorrent?

BitTorrent permet le stockage et partage, en pair-à-pair, d’un fichier sur un réseau d’ordinateurs. Cela fonctionne sur des données statiques, qui ne changent pas en cours de route. Holochain permet la même fonctionnalité mais avec des données dynamiques, typiquement, la base de données d’une application web (comme Facebook, Uber, Airbnb, etc).

Comme pour BitTorrent, Holochain n’impose pas à chaque nœud de posséder l’ensemble des données, mais de seulement en posséder une partie (DHT). Vu que chacun en possède une partie, on peut retrouver l’ensemble en parcourant le réseau. Il y a bien sûr quelques redondances pour accroître la résilience du réseau et ne pas avoir à dépendre d’un nœud en particulier.

Table de hachage distribuée (DHT)

Imaginez la base de données de Facebook (ou Uber, ou Airbnb…) fonctionnant sur un torrent, où tout le monde héberge, partage et met à jour une partie de la base de données en temps-réel.

Pour garantir l’intégrité de cette base de données partagée, toute information ajoutée ou modifiée doit provenir d’une source (un nœud) dont l’authenticité peut être vérifié et dont les règles communes d’utilisations ont été respectées. Pour cela, Holochain utilise un système de chaîne cryptographique, appelée hash-chain, qui est locale et privée au nœud. Par conséquent, chaque nœud possède sa propre hash-chain locale de données privées. Un nœud peut autoriser, à sa discrétion, un autre nœud à consulter sa chaîne locale. Aussi, lorsqu’un nœud décide de modifier la base de données partagée, il doit d’abord inscrire l’information dans sa hash-chain locale et ensuite la faire auditer par d’autres nœuds qui vont vérifier si cette ajout respecte les règles communes. Chaque nœud décide quelles données privées il souhaite partager sur la base de données commune, il a donc la souveraineté de ses données.

Une Holochain est l’ensemble de ces trois éléments: la base de données partagée de données publiques (DHT), les hash-chain locales de données privées (local hash-chain), et un ensemble de règles communes (Nucleus).

Pour reprendre l’analogie. Dans un équivalent holochain de Facebook, les messages publics sont cohébérgés par tous, chacun héberge ses messages publics et privés, et tout le monde peut vérifier que les autres ont utilisés le bon code source pour générer leurs données.

Un écosystème d’applications Holochain

Chaque application holochain opère sa propre holochain, selon ses modalités. Elle est donc indépendante des autres applications et ne nécessite pas de service d’hébergement coûteux. Puisque les utilisateurs sont également les hébergeurs, plus il y a d’utilisateurs plus la capacité d’hébergement augmente. Il n’y a donc pas de limite d’échelle.

Si une communauté souhaite changer les règles communes pour l’adapter à son contexte, elle le peut en modifiant le Nucleus détenu par chacun de ses membres. Cette évolution équivaut à forker la holochain.

Par conséquent, cette communauté ne fera plus parti du réseau initial à moins que les autres nœuds suivent aussi cette évolution ou à moins qu’elle souhaite opérer dans les deux versions en incorporant un protocole d’interopérabilité entre les deux (bridge).

Le Nucleus étant l’ensemble des règles régissant la modification d’une base de données, Holochain ne se limite pas aux cas d’usages simples comme les monnaies ou contrats intelligents, mais peut être utilisé pour tout type d’application. On peut actuellement créer des Nucleus en Javascript et Lisp. Une des applications de démonstration de la technologie est un clone de Twitter appelé Clutter.

‘clutter’ signifie troupeau de chats en anglais.

Ainsi une communauté n’est plus dépendante du développeur du logiciel initiale pour le faire évoluer selon ses besoins. Elle a la souveraineté de ses outils de communications.

Prévoyant qu’un utilisateur possède une multitude d’applications holochains partageant des fonctions similaires, une application holochain sera suffisamment légère pour tourner sur smartphone et n’ira chercher que l’information qu’elle aura besoin pour effectuer ses tâches.

Résumons

Holochain est le mariage entre bitTorrent et blockchain inspiré des principes organisationnels des systèmes vivants.
Ce n’est pas une technologie de monnaie numérique anonyme mais une infrastructure pour application réellement distribuée, pair-à-pair, sans limite d’échelle, à la fois légère et sécurisée, et permettant de séparer données publiques et privées.

Holochain permet la création d’applications web ou chacun est souverain de ses données et a la possibilité de le faire évoluer pour les besoins de sa communauté.

La suite

Si vous voulez contribuer à l’essor de cette technologie, une campagne indiegogo et une Offre Communautaire est en cours pour Holo, la plateforme holochain de décentralisation du web. Plusieurs hackathons sont en préparations pour aider l’émergence des premières applications.

Si vous êtes intéressé à rejoindre la communauté ou simplement discuter, le serveur de discussion en ligne est ici. Vous pouvez me retrouver sur le canal #Montreal.

Ressources


Merci de m’avoir lu jusqu’ici. Si vous avez trouvé l’article intéressant, n’hésitez pas à le partager et diffuser autour de vous.

Vous pouvez également m’aider en me faisant un retour honnête et constructif en privé sur le Mattermost Holochain ou publiquement dans les commentaires.

Damien Douté

Written by

technologie numérique, intelligence collective, auto-organisation, monnaies // digital tech, collective intelligence, self-organization, currencies

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade