paint-brush
Comment nous avons développé le protocole Exa et la blockchain Darwinpar@exaprotocol
317 lectures
317 lectures

Comment nous avons développé le protocole Exa et la blockchain Darwin

par Exa Protocol7m2023/08/11
Read on Terminal Reader

Trop long; Pour lire

Cette histoire traite du développement d'un réseau de stockage de fichiers décentralisé appelé Exa Protocol, qui utilise un espace de stockage gratuit sur les appareils mobiles. Nous avons relevé des défis avec les protocoles de couche 1 existants et en avons conçu un nouveau appelé Darwin, en utilisant une approche de blockchain parallèle. Darwin vise à atteindre un débit et une évolutivité élevés avec des chaînes enfants indépendantes. Le TestNet a été construit, offrant une nouvelle approche de la décentralisation, permettant aux individus de participer à la maintenance du réseau et servant d'infrastructure dorsale d'Internet.
featured image - Comment nous avons développé le protocole Exa et la blockchain Darwin
Exa Protocol HackerNoon profile picture

Je me souviens encore du moment où Google a décidé de retirer le stockage GRATUIT et illimité de son application "Google Photos". Pour un photographe autoproclamé comme moi, c'était une terrible nouvelle, et cela n'indiquait qu'une chose : acheter l'abonnement Google Storage. Cela m'a fait penser : « Oh, un autre abonnement pour vivre sur cette planète. M'abonner au gouvernement en lui versant une partie de mes revenus n'était-il pas suffisant ? (c'est-à-dire les impôts) »


Des moments comme ceux-ci vous font vous demander s'il y a quelque chose pour résoudre ce problème. Ma tête avait ces pensées :


  • "Créons un service de stockage de photos gratuit et illimité et donnons-le aux gens pour qu'ils l'utilisent, puis vous courez vers les investisseurs pour pouvoir acheter et faire fonctionner plus de serveurs, puis lorsque vous faites des pertes, vous dites - je construit une licorne » – De manière réaliste, créer un service qui demande aux investisseurs de payer pour votre stockage de photos.
  • "Mais et si je facturais le service ?!" Puis la brique de la réalité me frappe à la tête - "Alors, tu veux construire une autre Dropbox?"
  • Donc pas de service SaaSy. Quoi d'autre?

Heureusement, une réponse se trouve dans le monde Web3

Un smartphone aujourd'hui est aussi performant qu'un PC il y a à peine deux ans (informatiquement) - mais reste inactif pendant un temps considérable à ne rien faire - ou pire encore, utilise un minimum de ressources informatiques tout en regardant des TikToks ou des Reels. Et si ce téléphone dormant pouvait être utilisé pour créer une infrastructure de stockage massive en utilisant l'espace de stockage disponible gratuitement sur les téléphones ?


Les calculs approximatifs suggèrent que chaque année, environ 80 EXAoctets de stockage sont ajoutés à ce monde via de nouveaux appareils mobiles. Le protocole est là pour fournir une partie de cet espace au public. C'est pourquoi nous l'appelons EXA…Protocole.


Voici ce que nous avons pensé « Construisons un jeton sur Ethereum et fixons sa valeur intrinsèque à la quantité de stockage que les gens partagent sur leurs téléphones. Ils seront rémunérés avec le jeton natif chaque fois que quelqu'un stockera ou récupèrera des fichiers sur son téléphone. » Avec l'approche mobile-first, les personnes qui n'ont pas les moyens d'exploiter le pouvoir de la décentralisation et de la blockchain pourront le faire pour la première fois. Ceci, dans un vrai sens, sera la démocratisation de la technologie blockchain.


Je ne nierai pas qu'en travaillant là-dessus, je me suis souvenu de cette citation de Joe Vitale -



"Un but devrait vous effrayer un peu et vous exciter beaucoup."

Joe Vitale



Idéation

Je me souviens quand Arpan Garg et moi ( Saurabh Singh ) sommes allés au tableau blanc plusieurs mois et étions encore perplexes quant à la façon de résoudre le problème. La première version de la solution était - "Nous utiliserons Ethereum et déploierons un contrat intelligent qui compensera les utilisateurs avec notre jeton chaque fois qu'ils autoriseront les gens à utiliser leur stockage mobile." et cela a été criblé de problèmes majeurs:


  1. Ethereum propose un TPS limité à 12 (avant le fork PoS). Nous aurions étouffé le réseau Ethereum avec seulement 10 000 utilisateurs qui, en moyenne, effectuent des transactions 100 fois par jour (une demande de fichier pourrait signifier 50 demandes à cause du sharding - décrit ci-dessus). Cela aura un effet en cascade et poussera le prix du gaz à exécuter une transaction à travers le toit ! – Ce ne sera pas à l'échelle !

  2. Comment convaincre les gens de sauvegarder leurs données sur les téléphones des autres ?

  3. Les téléphones s'allument et s'éteignent et meurent au bout de deux ans. Comment s'assurer que les données sont en sécurité même lorsque le téléphone meurt ?


Dans un premier temps, nous avons abordé les problèmes 2 et 3 :


  1. Autorisez les utilisateurs à chiffrer le fichier avant qu'il ne soit envoyé à d'autres nœuds pour stockage en utilisant le chiffrement AES 256 qui offre une sécurité suffisante.
  2. Une fois le fichier crypté, nous pouvons partager le fichier et stocker les pièces sur différents appareils. Plusieurs périphériques sont utilisés pour stocker la partition pour la redondance et pour le scénario – « QUE SE PASSE-T-IL QUAND UN DES PÉRIPHÉRIQUES SE DÉSACTIVE, JE VAIS PERDRE TOUTES MES DONNÉES ! » . Oui, on se pose souvent cette question…

Fig 1 : Le fichier est décomposé en fragments, chiffré et lié par le client, et enregistré sur plusieurs nœuds du réseau. Un fragment peut être stocké sur plusieurs nœuds pour la redondance au cas où un nœud se déconnecterait


Pour être juste, la solution ci-dessus a été essayée et testée, et nous étions particulièrement calmes quant à la résolution de ce problème. Le problème majeur était avec les protocoles de la couche 1. Ils étaient lents. Comme vraiment lent. Le débit qu'ils offraient n'était tout simplement pas suffisant pour soutenir même 1 000 utilisateurs sur notre réseau de stockage. Comme décrit précédemment, nous aurions facilement étouffé le réseau. Les L2 n'offraient aucun espoir non plus.


Nous avons donc décidé de concevoir une nouvelle couche 1 qui s'adapte et s'exécute nativement sur les appareils mobiles. Nous appelons notre L1 – Darwin.

Solution

Un beau matin, Arpan et moi étions assis dans le bureau à discuter, à nous disputer sur la nouvelle architecture Blockchain . Nous nous sommes posé cette question : « Et si au lieu d'une blockchain, il y avait plusieurs blockchains fonctionnant en parallèle ?


« Ça a l'air bien, mais comment le gouverneriez-vous ?


« Tout comme nous gouvernons des pays, des États et des villes en leur permettant de travailler de manière indépendante.


« Réfléchissons-y ; quand il y avait quelques humains sur cette planète, le monde entier était un grand pays pour eux .


« C'est vrai.


« Et quand il y eut plus d'humains, ils se partagèrent la terre et créèrent des pays séparés.


Vrai.


Et si on faisait la même chose avec les nœuds mobiles ?


« On peut essayer… »


Et nous avons essayé ! Nous avons passé toute la semaine sur le tableau blanc à concevoir la L1 avec des analogies du monde réel. Notre tableau blanc ressemblait à ceci, calculant et aplanissant les détails de l'architecture :


Fig 2 : Des motifs d'arbres sur le tableau blanc à la création de Darwin.


Un mois et demi plus tard, nous avons finalisé l'architecture et l'avons appelée Darwin.


Darwin a été architecturé de la même manière que les civilisations ont évolué au fil du temps et ont créé les villes, les États et les nations tels que nous les connaissons. Au lieu de considérer tous les nœuds comme faisant partie d'une seule blockchain, Darwin les segmente en plusieurs chaînes afin d'obtenir une meilleure gouvernance et d'améliorer les performances du réseau.

Fig 3 : Pour les premiers humains, la terre complète pouvait être considérée comme une nation complète. Au fur et à mesure que de plus en plus d'humains apparaissent, les terres sont séparées en sections plus petites appelées pays avec leur propre gouvernance.


Les civilisations évoluent et créent des ensembles tels que les villes ; Darwin évolue également à mesure que de nouveaux nœuds sont ajoutés au réseau. L'évolution de la chaîne Darwin la divise en plusieurs chaînes enfants afin de regrouper les nœuds proches afin d'améliorer les performances du réseau.


Les civilisations ont également un système de gouvernance robuste qui leur permet de fonctionner correctement. Darwin apporte une gouvernance à l'aide de nœuds de serveur qui auditent régulièrement les chaînes enfants.

Comment fonctionne Darwin ?

Darwin Chain évolue en permanence pour augmenter le TPS au fur et à mesure que le réseau se développe et également fragmente et optimise la chaîne de manière dynamique pour créer des chaînes enfants parallèles qui fonctionnent indépendamment et ont leur propre ensemble de nœuds complets pour valider les transactions. Ces nœuds forment des chaînes de nœuds qui peuvent effectuer des transactions les uns avec les autres avec une faible latence, et chaque chaîne est ensuite divisée en différentes chaînes lorsqu'elle correspond à certaines conditions - appelées Mutation.

Fig. 4 : Représentation de la mutation dans la chaîne Darwin à mesure que le nombre de nœuds complets augmente et effectue des transactions les uns avec les autres. Le bloc fossile illustré ici est le bloc de genèse de chaque chaîne enfant.


Lorsqu'une chaîne subit une mutation, chaque chaîne enfant grandit indépendamment et possède ses propres nœuds indépendants pour valider les transactions. Les nœuds sont répartis entre les chaînes enfants en utilisant un algorithme pour réduire la latence de communication et de transaction dans chaque chaîne enfant. Cela augmente de manière exponentielle le débit de la chaîne car chaque chaîne enfant fonctionne indépendamment pour créer et valider des transactions.


Les ressources sont disponibles plus rapidement car les nœuds sont regroupés en fonction de leur plus grande proximité, tout comme cela fonctionne dans le cas d'applications Web2 hébergées sur un serveur plus proche de la zone qui a le trafic maximum vers les serveurs. La chaîne Darwin utilise également des facteurs tels que la puissance de calcul, l'espace de stockage partagé et la disponibilité/réputation du réseau d'un nœud lors de la création de chaînes enfants.


La création de Darwin a résolu le plus gros goulot d'étranglement pour nous : un L1 qui peut prendre en charge une infrastructure de stockage décentralisée et s'exécuter de manière native sur des appareils mobiles.

Performance Darwin (max. théorique) : ~ 7,8 millions de TPS.


Tout cela a été formalisé dans notre Yellow Paper qui est disponible sur notre site Internet .

Mais est-ce que ça marche ?

Fig 5 : Capture d'écran de l'explorateur de chaînes Darwin. Chaque ligne de l'arborescence est une blockchain fonctionnant indépendamment.


Oui!


Nous avons récemment construit un TestNet en convertissant notre théorie en code réel. Dans la capture d'écran ci-dessus, vous pouvez voir à quoi ressemble visuellement la blockchain Darwin. La structure arborescente contient chaque blockchain indépendante.

Prochaines étapes

Darwin n'est actuellement qu'une couche 1 qui peut traiter notre jeton natif. Notre prochaine étape consiste à intégrer la logique DFS (Distributed File System) qui remplira notre objectif d'une infrastructure de stockage véritablement décentralisée utilisant des appareils mobiles.


En ce qui concerne l'évolutivité de la chaîne, permettre le déploiement de contrats intelligents en créant une machine virtuelle compatible EVM pourrait être la prochaine étape après l'intégration de DFS.


Pour certains, il peut s'agir simplement d'une autre blockchain ; pour nous, nous voyons une toute nouvelle approche de la décentralisation. Lorsque Satoshi a écrit le Bitcoin Paper, il a imaginé un monde où des gens comme vous et moi pourraient participer au réseau et le maintenir. Plus d'une décennie s'est écoulée, et il semble que le pouvoir de maintenir le réseau soit entre les mains de quelques-uns (je parle de fermes minières ultra-larges).


Avec Darwin, nous avons l'intention de donner aux gens (pas aux entreprises, pas à quelques riches) la garde du système décentralisé qui permet le transfert d'actifs cryptographiques et servira d'infrastructure dorsale d'Internet.


Participerez-vous à ce voyage avec nous ?


Le jour où Arpan (à gauche) et moi avons finalisé l'architecture de Darwin.


Également publié ici .