Holochain : le dépassement de la Blockchain ?

Publié par

En explorant l’univers de la blockchain et des devises numériques, je me suis embattu dans un projet open-source qui mérite d’être approfondi pour mieux comprendre les enjeux, les écueils et les alternatives de ces nouvelles technologies.

Une des limites considérables des technologies blockchain actuelles telles que le Bitcoin ou l’Ethereum, c’est l’énorme dépense énergétique des calculs de force brute utilisés dans les systèmes de Proof of Work ou Proof of Stake. 

En gros, avant qu’un bloc de transactions soit ajouté à la chaine, plusieurs nœuds du réseau doivent confirmer sa validité à travers des calculs algorithmiques complexes pour le décrypter, fournir une preuve de travail, recevoir une compensation et atteindre le consensus sur l’ensemble des données de tous les participants, bloc après bloc.

C’est un processus qui demande un pouvoir de calcul important et donc qui implique une dépense énergétique et des commissions très élevées, en plus de délais considérables dans les transactions. Tout cela réduit la scalabilité d’une blockchain, c’est-à-dire sa capacité à s’adapter à un volume d’échanges croissant et donc d’être adoptée sur très large échelle.

A titre comparatif, actuellement le Bitcoin traite 4 transactions par seconde, alors que le circuit VISA arrive à traiter presque 2000 transactions par seconde. Sur le long terme, seulement une blockchain scalable pourra donc remplacer efficacement les circuits et les systèmes d’échange traditionnels.

C’est là que Holochain rentre en jeu car ce n’est pas une blockchain proprement dite mais plutôt une structure composée de plusieurs chaines, utilisant le hachage, les signatures numériques et des tables de hachage distribuées pour assurer l’authenticité des données échangées.

De cette manière, Holochain élimine le besoin d’atteindre un consensus absolut et renouvelé en permanence sur la totalité des données à travers les preuves de travail, mais limite ce besoin exclusivement aux échanges de données sensibles.

L’idée subjacente est que si une transaction valide a lieu entre A et B, il n’est pas a priori nécessaire que C (D, E, F…) le sache et le confirme, ainsi que dans tous les échanges licites ou les deux acteurs ont déjà atteint un consensus et il n’est donc pas nécessaire que la majorité des nœuds soit impliquée.

En fait, il n’y a pas besoin d’atteindre un consensus partagée pour la totalité des données et par la totalité du réseau à travers un cryptage omniprésent, mais uniquement pour les situations problématiques de doubles dépenses ou d’actions frauduleuses, nécessitant un élément de confiance entre les participants.

Holochain s’éloigne donc d’une vision donné-centrique pour adopter une vision agent-centrique, et utilise un système de validation des transactions au lieu que de consensus sur la base de données. 

Dans le protocole Holochain, non seulement il n’y a plus de minage intensif de la part des nœuds et donc le pouvoir de calcul est mieux employé et les transactions sont plus scalables et sans commissions, mais en plus le réseau est véritablement distribué et décentralisé.

Holochain est un projet avec 10 ans de travail derrière, qui s’est développé à partir de Metaccurency et Ceptr à l’aide de hackers, designers et activistes cypherpunk volontaires.

La vision de la compagnie est de refonder un internet pour tous et de développer un système d’échange qui reproduise davantage les dynamiques naturelles, c’est-à-dire ou chacun dispose de sa propre base de données et ou la réalité des choses n’est pas partagée par tous les individus à 100%, mais juste dans la mesure ou un accord devient possible.

Dès lors, Holochain se démarque fortement de l’écosystème blockchain, ou au contraire la recherche de profits issus du minage et de la spéculation financière ont considérablement réduit la portée révolutionnaire de ces nouveaux systèmes d’échanges.

Pour conclure avec une explication ultérieure, j’ai lu un article qui décrit Holochain en 100, 200 et 500 mots sur le site (https://medium.com/h-o-l-o/heres-holochain-in-100-200-and-500-words-509818aa3c88) et j’ai donc décidé de le traduire et de le reporter ci-dessous.

 

Holochain en 100 mots

Holochain emploie une structure des données qui permet le développement d’application décentralisées. Chacun a sa propre chaine, à laquelle il peut ajouter des données, y compris des transactions financières. Les chaines peuvent se combiner, se diviser et interagir de façons complexes. Les données sont stockées de façon décentralisée comme dans Bittorrent. Les données ont un hash, qui est une empreinte mathématique correspondant à la donnée. Si quelqu’un falsifie une donnée, le décalage entre donnée et hash sera observé, et la donnée sera rejetée comme étant invalide. Les signatures numériques assurent l’origine des données. C’est Bittorrent plus Git plus les signatures numériques.

 

Holochain en 200 mots

Holochain est une alternative plus efficiente à la blockchain. La blockchain Ethereum fonctionne à travers une énorme quantité de pouvoir de calcul, qui est nécessaire pour atteindre un consensus universel, afin de s’assurer que tout le monde soit d’accord sur l’allocation des jetons.

Holochain n’a pas de jeton natif, c’est une plateforme de comptabilité de crypto-actif permettant à chacun d’utiliser sa propre devise. Au lieu d’observer les jetons, on tient à l’œil les comptes. Les transactions invalides (augmentant le solde illicitement) sont tout simplement rejetées par le réseau.

Cela élimine la nécessité d’un consensus, et permet de rendre notre pouvoir de calcul beaucoup plus efficient. Nous estimions qu’il sera au moins 10.000 fois plus efficient que l’Ethereum.

Il y a des intérêts considérables à développer des applications décentralisées mais tôt ou tard elles feront face aux problèmes inhérents de la blockchain. Hormis le fait d’être inefficient, Ethereum utilise un langage de programmation unique, appelé Solidity. Les développeurs en Solidity sont rares, et plusieurs projets ont étés retardés par ce manque de compétences. Holochain supporte Javascript et Lisp. Il y a plusieurs développeurs en Javascript par rapport à Solidity, donc le développement d’applications distribuées aura lieu plus rapidement.

 

Holochain en 500 mots

Holochain combine hachage, signatures numériques et tables de hachage distribuées pour former un registre distribué infalsifiable.

Le hachage est une technique qui condense une séquence de données dans une empreinte numérique ressemblant à ça : 6d28d7cf56c26dd99752b0cafc1b14865846e660.

Si l’on souhaite changer juste une byte dans la donnée, celle-ci ne correspondra plus au hachage. Si l’on télécharge un programme software, et on s’assure du fait qu’il porte le bon hachage, alors l’on sait que personne n’y a pas inséré un malware ou autres choses.

La cryptographie à « double-clés » est une technique cryptographique basique utilisée dans toute sorte de science informatique. Il y a une clés publique (comme un username) qui est partagée avec les autres, et un clés privée (comme un mot de passe) qui ne l’est pas.

La cryptographie à « double-clés » est utilisée pour créer des signatures numériques qui marchent de la façon suivante : je prends un message, je le combine avec ma clé privée et je le mélange avec des mathématiques afin de créer une signature. A partir de la signature, du message et de ma clé privée, on peut vérifier que le détenteur de la clé privée correspondante est bien la personne qui a signé le message. Si le message a été altéré, la signature ne correspondrait pas. Si quelqu’un avait essayé de le signer sans connaitre la clé privée (qui est stocké offline), ça ne correspondrait pas non plus. La bonne signature confirme donc l’origine du programme et le fait qu’il n’a pas été altéré.

Si je visionne une vidéo sur YouTube, la vidéo est stockée sur les servers de Youtube. J’insère un URL spécifique dans mon browser et il télécharge le fichier correspondant. Je ne suis qu’un récepteur. Au contraire, une tablé d’hachages distribuée permet de télécharger des données depuis ses voisins. Avec une DHT, je demande à des pairs sur le réseau « qui a le fichier avec le hachage 23ae47X ? » et je télécharge des morceaux de ce dernier depuis n’importe quelle personne qui le possède pour les assembler dans un fichier complet.

Les téléchargements à partir d’une DHT sont plus rapides et plus résilients que ceux en provenance d’un server, car ils demandent moins d’effort au réseau. Imaginez un groupe d’amis qui visionnent tous une vidéo virale sur Youtube. A chaque fois qu’un parmi eux le regarde, le server – qui pourrait se trouver à l’autre bout de la planète – doit l’envoyer une nouvelle fois. S’ils le regardaient en utilisant un système peer-to-peer comme une DHT, une fois qu’un parmi eux le possède, il peut l’envoyer à ses voisins.

Etant donné que les contenus sur une DHT sont identifiés par leurs hachages, on reçoit toujours ce que l’on demande et c’est impossible que ça soit remplacé par une opération malveillante.

Voilà donc les outils qui forment les holochains. Les signatures assurent que personne ne puisse truquer mon registre sans les compromettre. Le hachage assure que les données transférées soient exactement celles requises. Une DHT décentralise le stockage de ces données pour qu’elles soient hébergées par une communauté plutôt que par une compagnie. Cela rend le registre sûr, distribué et inviolable.

Les commentaires sont fermés.