Le stockage décentralisé a longtemps été proclamé comme l’épine dorsale du Web 3.0, l’Internet de nouvelle génération, mais ses capacités et l’accessibilité générale pour les masses ont été constamment limitées par l’absence d’une structure d’incitation. Celles-ci sont essentielles pour fournir aux utilisateurs des garanties que les données seront disponibles et livrées rapidement en cas de besoin. C’est par ailleurs très difficile, voire carrément impossible, à promettre dans un environnement véritablement décentralisé.

Depuis l’émergence de la blockchain, divers projets ont commencé à explorer son application comme une couche d’incitation pour les marchés de stockage décentralisés, avec plusieurs solutions de stockage notables commencent à lutter contre les hôtes centralisés pour la domination du marché à travers un certain nombre de scénarios d’application.

Dans cet article, nous présenterons les principaux concepts de stockage décentralisé de données et examinerons ses applications potentielles, en les utilisant pour comparer la solution native de Neo, Neofs, avec d’autres projets connexes et bien connus dans l’industrie de la blockchain : Sia, Filecoin et Swarm.

Pourquoi utiliser le stockage décentralisé de données ?

Avant de plonger davantage dans les comparaisons entre les différentes solutions, nous devrions donner un contexte en tenant compte des avantages et des défis liés au stockage décentralisé, contrairement à leurs homologues centralisés.

La simplicité et la faible maintenance du stockage en nuage ont entraîné une migration massive des données vers des serveurs centralisés, tant pour les utilisateurs occasionnels que pour les entreprises ayant de grands besoins de stockage. En raison d’économies d’échelle, cela a conduit à l’émergence de silos de données massives, principalement détenues et exploitées par des géants de la technologie tels qu’Amazon, Microsoft, IBM et Google.

Bien que la concurrence entre les entreprises garantisse que les utilisateurs sont fournis avec un certain nombre de fournisseurs de services à choisir, la nature des services eux-mêmes attire souvent des préoccupations sur le potentiel de censure ou d’utilisation abusive des données privées. Le passage au stockage dans le cloud crée également une possibilité accrue de vol de données; Dans son rapport de 2019,le principal organisme de réglementation de la protection de la vie privée de l’UE a fait état d’une augmentation de 71 des atteintes aux données valides par rapport à 2018.

Violations annuelles des données et dossiers exposés aux États-Unis de 2005 à 2019 (Source : Statista.com)

Les réseaux de stockage décentralisés visent à perturber le marché du cloud existant de plusieurs façons. Tout d’abord, la plupart de ces réseaux fonctionnent selon des principes de libre marché avec une participation ouverte. Cela signifie que n’importe qui peut participer au réseau, et plutôt que de risquer un seul point d’échec, les données sont répliquées à plusieurs nœuds à travers le réseau distribué.

L’intégration blockchain permet également l’inclusion naturelle de la cryptographie à clé publique. Les données sont généralement cryptées avant d’être stockées avec un hôte, déchiffrables uniquement par son propriétaire légitime et toutes les parties avec lesquel le propriétaire a choisi de partager. Ce processus peut rendre ces services plus résistants à la censure, à la manipulation et rendre inutiles à un attaquant toute donnée perdue dans une brèche.

En outre, l’intégration avec la technologie blockchain donne accès à une couche d’incitation, qui peut être utilisée pour récompenser les bons comportements ou punir les activités malveillantes. Cela permet à ces plates-formes d’utiliser la nature globale et sans frontières de la crypto-monnaie en servant un marché mondial.

Enfin, les réseaux de stockage décentralisés font valoir qu’ils sont des solutions rentables. Contrairement aux vastes frais généraux attribués au fonctionnement des silos de données, les réseaux décentralisés utilisent la capacité de stockage inutilisée que l’on trouve dans les appareils des utilisateurs finaux partout dans le monde. Les utilisateurs sont incités à contribuer au stockage du réseau, ce qui se traduit idéalement par une abondance d’approvisionnement qui peut faire baisser les prix à long terme.

En revanche, la complexité technique du stockage décentralisé attire des problèmes importants qui doivent être résolus, sinon il ne sera peut-être pas possible de fournir aux utilisateurs finaux une expérience comparable à celle offerte par les services centralisés existants.

Parmi les défis notables auxquels ces réseaux doivent faire face, mentionnons l’évolutivité brute, la construction de l’infrastructure incitative afin de maintenir un marché ouvert et l’intégrité des données dans un réseau dynamique et distribué à l’échelle mondiale.

Projets de stockage décentralisés

Malgré leurs points communs, les solutions de stockage décentralisées sont de différentes formes et tailles, souvent avec des priorités uniques et des marchés cibles. Prenons une seconde pour présenter les quatre projets en discussion aujourd’hui:

NeoFS

NeoFS est né comme une proposition pour un protocole de stockage intégré et distribué dans le livre blanc Original Neo. L’inclusion d’un réseau de stockage de données natifs visait à fournir aux applications une capacité supplémentaire de décentralisation, réalisée en leur accordant la possibilité de stocker, récupérer et gérer les données hors chaîne.

La conception finale du système a été créée par le Neo St Petersburg Competence Center (Neo SPCC), une équipe russe de R&D formée pour soutenir l’écosystème Neo et développer une véritable plate-forme nuageuse décentralisée.

Neofs s’approvisionne en espace de stockage auprès de tous les utilisateurs, avec du matériel de base ou de qualité entreprise, qui peuvent louer une capacité HDD/SDD inutilisée au réseau en échange de GAS. Le placement de données est calculé de manière déterministe grâce à l’utilisation d’un hachage de rendez-vous sur un multigraphe réseau,ce qui rend la solution extrêmement évolutive malgré l’environnement distribué en supprimant la nécessité d’un transfert inutile de métadonnées entre les nœuds.

La solution introduit également un protocole interactif à l’épreuve de la connaissance zéro, qui est basé sur le hachage homomorphique pour préserver l’intégrité des données sur l’ensemble du réseau de manière asynchrone. Ce protocole fournit une vérification cohérente; L’échec de l’audit empêche le paiement, empêchant les nœuds d’essayer de jouer sur le réseau en supprimant les données.

Sia

Conçu en 2013, Sia a été conceptualisé pour perturber le stockage dans le cloud, en utilisant la blockchain pour créer un marché ouvert pour les utilisateurs d’acheter ou de louer la capacité de stockage de données inutilisées.

Les participants s’entendent sur des conditions de stockage telles que les exigences de capacité et de durée, qui sont réglées sous forme d’accords de niveau de service cryptographiques appelés contrats de fichiers. Ceux-ci sont traités et complétés automatiquement sur la blockchain Sia.

Depuis sa première sortie stable en juin 2016,Sia a fait des progrès constants dans le développement de son logiciel et la croissance de son réseau de stockage. Avec un premier accent sur les applications d’archives, selon siastats.info le réseau stocke actuellement plus de 800 To de données et a plus de 300 hôtes actifs distribués dans le monde entier.

Filecoin

Bien qu’il soit encore à l’essai, Filecoin apporte sans doute le plus de pedigree à la comparaison. L’initiative a été lancée par Protocol Labs, créateurs du populaire InterPlanetary File System (IPFS), un réseau de stockage peer-to-peer lancé en 2015 dans le but de révolutionner la façon dont les données sont distribuées sur Internet.

Contrairement au protocole De transfert HyperText (HTTP), la norme Web actuelle où les données sont demandées à partir d’un emplacement spécifique où elles sont hébergées, les demandes IPFS spécifient uniquement le hachage cryptographique des données. Cela peut être considéré comme un identificateur d’empreinte digitale.

Connue sous le nom d’adressage de contenu, cette technique permet aux utilisateurs de demander un contenu souhaité directement par son identificateur et d’être connecté à tous les nœuds qui peuvent le servir. Toutefois, cela exige qu’au moins un nœud fasse l’effort de stocker ce contenu particulier.

Depuis la sortie de l’IPFS, cela s’est avéré être sa principale faiblesse , il doit y avoir une incitation pour un nœud à épingler le contenu et garantir sa disponibilité. C’est là que Filecoin entre en jeu, conçu comme la couche d’incitation basée sur la blockchain pour IPFS. Bien que n’ait pas encore officiellement lancé, dans une feuille de route avril mise à jour de l’équipe a signalé la traversée de plus de 5 PB de stockage éprouvé sur son TestNet. Selon la même source, Filecoin devrait lancer son MainNet entre juillet et août 2020.

Swarm

Conçu comme la couche de base de la pile Web3 d’Ethereum, Swarm est une infrastructure de stockage et de communication décentralisée avec une conception censurée et résistante au DDOS. Le réseau prend la forme d’un magasin de morceaux distribué et adapté au contenu, en faisant usage de la couche réseau devp2p d’Ethereum pour la découverte et la communication par les pairs. Ethereum est également utilisé pour des contrats intelligents pour construire son infrastructure d’incitation, le protocole comptable Swarm, ou SWAP pour faire court, qui charge les nœuds pour demander des ressources et les récompense pour servir les ressources.

Grâce à SWAP et à son protocole de récupération basé sur la clé d’adresse, Swarm a l’intention de créer un environnement où les nœuds qui cherchent à maximiser leur rentabilité cacheront et stockeront naturellement le contenu qu’ils peuvent servir fréquemment. Au moment d’écrire ces lignes, le système d’incitation d’Swarm n’est disponible que pour l’opt-in sur le TestNet, la plupart des données étant stockées de manière altruiste à l’heure actuelle.

Les différences d’approche de faible niveau prises par chaque projet peuvent rendre difficile leur comparaison directe. Pour contourner ce problème, nous allons diviser les cas d’utilisation potentielle en trois groupes principaux et comparer la façon dont chaque projet sert le scénario d’application.

Sauvegarde et archivage

L’application la plus simple de stockage distribué est également l’une des plus courantes aujourd’hui. Le stockage en nuage est devenu très populaire auprès des particuliers et des entreprises, fournissant une ressource à ceux qui cherchent à conserver des fichiers importants à long terme ou à ajouter une redondance à leur configuration en cas de catastrophe.

Pour concurrencer les services cloud d’aujourd’hui, les fournisseurs de stockage décentralisés qui ont l’intention de respecter ce scénario d’application donneront généralement la priorité à la capacité brute plutôt qu’aux performances ou à la bande passante. Cela en fait un cas d’utilisation idéal pour les réseaux de stockage ouverts et distribués où l’espace inutilisé de n’importe quel appareil peut être vendu sur le marché libre, ce qui fait baisser les prix grâce à une abondance d’approvisionnement.

Étant donné que Neofs, Sia, Filecoin et Swarm fournissent tous une infrastructure similaire pour soutenir les marchés de stockage de données ouvertes, ils sont tous bien placés pour bénéficier de ce type de cas d’utilisation. De même, chacun des projets fournit un mécanisme de réplication des données pour assurer la persistance, contrecarrant l’élément d’incertitude inhérent aux réseaux décentralisés. Chaque protocole adopte une approche similaire, en utilisant le codage d’effacement ou des techniques similaires pour diviser les données, puis la distribution de copies à plusieurs nœuds sur le réseau pour la redondance.

Pour garantir que les données sont accessibles par les nœuds, les incitations pour un bon comportement et les contrôles périodiques de l’intégrité des données (tels que la preuve de réplication proposée par Filecoin ou le mécanisme de validation des données sans connaissancesde Neofs) rendent moins coûteux de suivre les règles que de tenter de tromper le réseau.

Le jeu d’audit de données zéro connaissance NeofS pour découvrir des nœuds corrompus ou malveillants (Source : Site Web NeofS)

Parmi les réseaux mentionnés, Sia maintient actuellement la domination sur le cas d’utilisation de sauvegarde et d’archivage, étant le seul des protocoles discutés avec un MainNet actif. Cette position est renforcée par une autre force unique de Sia; son service de récupération de fichiers basé sur les semences qui permet aux utilisateurs de créer un instantané des fichiers actuels stockés sur le réseau.

Cette graine permet aux utilisateurs de récupérer ces fichiers à tout moment et à partir de n’importe quel endroit, ce qui en fait un outil puissant. Toutefois, l’équipe note que la solution n’est pas tout à fait « le feu et l’oubli », car les utilisateurs doivent s’assurer que les contrats de fichiers restent actifs afin de restaurer les fichiers. Cela signifie que l’utilisateur doit accéder manuellement à Sia toutes les quelques semaines pour renouveler les contrats, ou mettre de côté une allocation pour le renouvellement automatique.

Hébergement Web et distribution de contenu

Parfois, l’objectif n’est pas principalement de conserver les données pendant une longue période, mais est plutôt de servir rapidement les données aux utilisateurs. Il s’agit d’un scénario typique pour un frontend web, et s’applique également à des contenus fréquemment consultés tels que la musique, la vidéo ou les flux de jeux.

Pour répondre aux besoins de ces utilisateurs et concurrencer les centres de données, les fournisseurs de stockage pour ces applications peuvent prioriser les performances (par exemple SSD sur disque dur) et le volume de bande passante élevé. De plus, placer le contenu le plus près possible des utilisateurs permet de réduire le temps qu’une demande de récupération doit être remplie.

Lorsqu’il s’agit d’optimiser le placement des données, l’essaim d’Ethereum présente une solution particulièrement élégante. Grâce à son mécanisme de synchronisation et de mise en cache des nœuds, Swarm est conçu pour agir comme unautoscaler le nuage élastique», où la croissance de la popularité d’un élément de contenu particulier augmentera le nombre de nœuds à proximité de mise en cache le morceau, à son tour aider à optimiser le routage pour les utilisateurs finaux en réduisant le nombre moyen de houblon pour une demande donnée.

Le résultat final est un système distribué qui se configure naturellement pour une distribution rapide, ce qui en fait un concurrent puissant pour cette classe de scénarios d’application, en particulier pour les services qui s’intègrent déjà avec Ethereum d’autres façons.

Exemple de la façon dont la mise en cache peut optimiser le temps de diffusion du contenu pour les utilisateurs finaux (Source : Incapsula)

Filecoin adopte également un mécanisme d’incitation pour assurer une livraison rapide de contenu. Pour ce faire, il faut séparer le réseau en marchés de stockage et de récupération,en aidant à différencier les types de fournisseurs de stockage , ceux qui offrent une grande capacité, et ceux axés sur la récupération rapide. Cela permet aux utilisateurs de sélectionner des fournisseurs qui peuvent mieux répondre à leurs besoins, en fournissant l’infrastructure pour ipfs à utiliser comme un service d’hébergement CDN/Web réactif.

Malgré sa forte position sur le marché des archives de données, le service des données a toujours été une faiblesse de Sia, que l’équipe avait l’intention d’aborder en février avec l’introduction de Skynet, un réseau Layer 2 pour Sia.

Skynet fonctionne via les portails Skynet, généralement utilisés en privé, les nœuds Sia modifiés, et les portails Webportals Skynet. Les Webportals sont des serveurs accessibles au public équipés d’une interface utilisateur Web, permettant aux utilisateurs de télécharger ou d’accéder au contenu Skynet sans avoir besoin de logiciels supplémentaires, similaires aux passerelles de protocole de Neofs.

Tirant parti du backend Sia pour le stockage, Skynet est destiné à ajouter des installations de partage de fichiers et de distribution de contenu pour les utilisateurs finaux, en utilisant la latence améliorée des portails pour livrer les demandes en temps opportun.

Ces deux approches peuvent également être vues dans Neofs. Comme Filecoin, le marché ouvert permet l’auto-optimisation des clients lorsqu’il s’agit de placement initial de données. Les nœuds de stockage sur Neofs peuvent définir leurs emplacements géographiques, leur type de stockage, leur capacité et leurs prix lorsqu’ils rejoignent le réseau, ce qui donne aux locataires des informations importantes à prendre en considération lorsqu’ils placent des données. Par exemple, une entreprise peut vouloir cibler spécifiquement les nœuds de stockage basés aux États-Unis afin d’aider à fournir des données plus rapidement aux utilisateurs américains.

De plus, Neo SPCC a également créé un service CDN pour améliorer encore les performances et la latence. À l’instar de Skynet, le contenu stocké sur Neofs peut être demandé via une couche réseau CDN indépendante, en utilisant la mise en cache et la géolocalisation pour optimiser la livraison de données. À l’avenir, les participants au réseau pourront utiliser ou héberger leurs propres bords Neofs.CDN, fournissant des points de terminaison sains pour servir le contenu le plus rapidement possible, même si les données sont stockées dans une autre région entièrement.

Un exemple du Neofs.CDN en action peut être vu dans le service Send.Neofs. Actuellement disponibles pour les tests publics, les utilisateurs peuvent télécharger des fichiers avec une durée de vie spécifiée sur le Neofs TestNet et les partager via un lien pour démor le service.

Bien qu’il faudra probablement poursuivre le développement avant que l’un des réseaux discutés puisse constamment contester les services cloud d’aujourd’hui en termes de délai de livraison et de coûts constants, chacun a démontré qu’il s’agit presque certainement d’une question de « quand », et non de « si ».

Interagir avec les données hors chaîne grâce à des contrats intelligents

La création de plates-formes de contrats intelligents a fourni aux développeurs un environnement conçu pour l’exécution sans confiance de la logique d’entreprise, cependant, cela ne couvre qu’une seule facette d’une application particulière. Les utilisateurs peuvent souvent être tenus d’accéder à un service par le biais d’un frontend Web centralisé, de réintroduire des exigences d’approbation, et les projets peuvent exploiter ou louer leurs propres serveurs pour gérer toutes les données supplémentaires requises par l’application.

Bien que certains de ces cas d’utilisation peuvent être satisfaits par des protocoles conçus avec la distribution de contenu à l’esprit, comme indiqué dans la section précédente, les applications blockchain dépendent encore fréquemment des magasins de données hors chaîne, ce qui porte avec eux des préoccupations concernant la confiance. Pour permettre la création d’applications véritablement décentralisées, le stockage hors chaîne distribué peut être utilisé pour héberger les deux interfaces utilisateur et pour remplacer ces backends centralisés.

Dans un scénario idéal, un développeur peut écrire du code dans le contrat intelligent qui demande un morceau de données à partir d’une source hors chaîne, agir sur les données, puis soit persister les modifications ou passer à autre chose. Le problème est que les contrats intelligents sont intrinsèquement limités à l’instruction et à l’ensemble de données fournis par l’environnement d’exécution.

Les opérations de stockage seront transmises par le service Oracle intégré Neo3 pour permettre aux contrats intelligents d’interagir avec le stockage hors chaîne décentralisé (Source : Neo SPCC)

En d’autres termes, il est clair que les si l’ordinateur virtuel n’a pas la possibilité d’accéder à des services hors chaîne, les données doivent plutôt être stockées sur chaîne afin d’être consultées par un contrat. Cela signifie à son tour que les données doivent être déployées parallèlement au contrat, ou accumulées au fil du temps en les agrégeant par le biais de transactions.

Obtenir des données sur la chaîne de cette façon fournit une redondance complète, mais cela s’accompagne d’un prix extrême par octet qui est peu susceptible de répondre aux besoins de nombreux développeurs, en particulier que de plus en plus grands ensembles de données sont nécessaires.

Bien que Sia et Filecoin aient tous deux exprimé leur intérêt à rendre les données hors chaîne directement accessibles aux contrats intelligents par le biais de ponts à chaînes croisées, une intégration adéquate avec un service blockchain VM ou oracle est nécessaire avant que les contrats puissent être conçus pour interagir avec les réseaux de stockage.

Neofs est le premier des réseaux de stockage décentralisés connus à tenter de fournir cette fonctionnalité. Une fois le service oracle natif de Neo terminé, les contrats passés par NeoVM pourront demander et même manipuler les données stockées hors chaîne sur Neofs. Cela peut fournir une alternative fonctionnelle aux backends centralisés tout en évitant la nécessité des coûts élevés et des redondances souvent inutiles associées au stockage en chaîne.

Cette intégration fait de Neofs le seul système de stockage décentralisé connu capable de répondre à ce scénario d’application, facilitant la création de ce qui pourrait devenir les premières applications véritablement décentralisées, où la base de données backend et le frontend orienté vers l’utilisateur d’une application peuvent être servis de manière décentralisée.

Résumé

En résumé, la récente jonction entre la technologie blockchain et le stockage distribué a entraîné la création de plusieurs réseaux de stockage décentralisés prometteurs, chacun avec les couches d’incitation nécessaires pour assurer leur accessibilité et leur viabilité. Ces réseaux représentent une force perturbatrice dans le secteur du cloud, bien que leur application à toute la gamme des scénarios d’application potentiels soit encore expérimentale pour le moment.

Pour aller de l’avant, Neo SPCC a également l’intention d’améliorer encore sa pile de technologie grâce à l’ajout de Neo Lambda, un service pour l’informatique décentralisée sans serveur. Tout comme Neofs permet aux applications de déplacer leurs besoins de stockage de données hors chaîne, Neo Lambda a l’intention de leur permettre de décharger le calcul lourd, ce qui entraîne l’objectif de l’équipe de créer une véritable plate-forme cloud décentralisée.