Stockage de fichiers distribué et blockchain


Le stockage de fichiers distribué : un usage majeur de la blockchain

Le stockage de fichiers distribué en ligne et le partage est une question qui précède largement la naissance de la blockchain. Les protocoles Pair à Pair qu’ils soient centralisés comme Napster, eDonkey ou décentralisés comme Bittorrent ou Freenet ont inspirés les architectures blockchain.
Ce stockage de fichiers distribué est un des tout premier service décrit par Vitalik Buterin dans le livre blanc Ethereum. En effet, il prédit tout de suite que la blockchain permettra de simplifier la monétisation des espaces de stockages inutilisés et d’optimiser ainsi le coût du stockage.
Pour rappel Bitorrent repose sur l’échange de service : je peux télécharger parce que je partage en retour. Mais le protocole peut-être vicié. Des versions modifiées du protocole comme celle de Bitcomet ont été accusées de mentir sur les fichiers effectivement partagés par le téléchargeur et de mettre à mal l’ensemble du réseau.
Cette problématique n’existe plus dans un système où le stockage est rémunéré, et s’appuie sur une blockchain.
Il faut distinguer différents usages du stockage de fichiers distribué :

  • le stockage et le partage de fichiers entre utilisateurs humains à titre privé ou professionnel. Généralement il existe alors une interfaces de type application user friendly comme Dropbox,
  • le stockage et le partage de fichiers pour des applications. On trouve en ce cas des API ou de protocoles bas niveau qui vont servir de support au service applicatif à proprement parler.

Autour de ces deux notions existent des solutions hybrides qui s’appuient (ou pas) sur la blockchain pour tout ou partie de leur fonctionnement.
Nous nous focaliserons dans cet article sur les solutions utilisées en conjoncture avec la blockchain ou qui permettent d’en éclairer les spécificités.

Le stockage de fichiers distribué de type Dropbox

Deux projets phares proposent un service user friendly pour les particuliers et les professionnels : Storj et Sia. Dans les deux cas le projet se base sur la technologie blockchain et une cryptomonnaie.
Le service proposé est simple : les fichiers stockés sur le réseau sont cryptés découpés et distribués en plusieurs copies. Ceci pour garantir leur disponibilité, leur confidentialité et leur intégrité. Bien entendu aucun organe de centralisation y compris Storj et Sia ne peut intervenir ou consulter les données. Le coût d’utilisation du système est optimisé par la location de son propre espace disque inutilisé.

Storj (se prononce storage)

Cette solution a beaucoup fait parlé d’elle, dès son lancement. Ses principales caractéristiques sont :

  • sécurité des données : données fragmentées, cryptées sur stockage décentralisé et distribué,
  • open source : oui, voir sur github,
  • basé sur une blockchain : partiellement Storj utilise la blockchain Bitcoin pour l’authentification (source : interview eweek et livre blanc Storj ). La cryptomonnaie le SJCX pour StorJCoin X est donc adossée à une Preuve de Stockage (« proof of storage ») et on parle de « farming » et non de « mining« ,
  • API : oui,
  • interface graphique : oui, un logiciel client Windows,
  • solution hardware : non, mais des tutoriels d’installation sur supports de stockage matériels existe comme par exemple sur Synology,
  • prix annoncé : 1 TB = 15$par mois + 5$ de bande passante,
  • site officiel : storj.io.

Sia

  • sécurité des données : données fragmentées, cryptées sur stockage décentralisé et distribué,
  • open-source : oui, voir sur github,
  • basé sur une blockchain : oui blockchain dédiée basée sur une amélioration de la blockchain Bitcoin avec sa propre cryptomonnaie le Siacoin,
  • API : oui,
  • interface graphique : oui, un logiciel client clair bien designé compatible Mac et PC facile à installer,
  • solution hardware : oui, avec Minebox,
  • prix annoncé : 1 TB = 2$par mois + 1$ de bande passante,
  • site officiel : sia.tech.

Aucune des deux plateformes n’est encore grand public : nous ne sommes pas sur du partage de fichier simple entre particuliers. Mais SIA présente quand même une nette avance en terme de facilité d’usage et de documentation. De plus SIA affiche un prix 10 fois inférieur à celui de Storj. Enfin la version hardware basée sur SIA de Minebox risque de propulser cette solution rapidement au sein des entreprises innovantes.

Le stockage de fichiers applicatifs distribué : IPFS et Swarm

Si Storj et Sia sont des Dropbox améliorées du point de vue du stockage de gros volume, IPFS et Swarm sont plutôt des systèmes de stockage sur lequel adosser les fichiers d’une application. Il s’agit de remplacer le file system local d’un serveur web par exemple.

IPFS

L’Internet Planetery File Storage en tant que stockage de fichiers distribué n’est pas basé sur une approche Blockchain. IPFS utilise une approche Peer2Peer uniquement. En ce sens IPFS est comparable à un seul essaim(swarm) BitTorrent. Pour rappel un essaim est un ensemble de Peers (pairs possédant une partie d’un fichier) et de Seeds (Participants qui possèdent l’intégralité du fichier).
IPFS se veut un protocol de remplacement de http en bien plus efficace. Notamment parce que la distribution des fichiers réduit la consommation de bande passante. IPFS utilise un registre de hashs des fichiers pour les identifier mais il n’intègre pas de système d’horodatage.
C’est pourquoi IPFS considère la blockchain comme un mécanisme complémentaire. Celle-ci peut-être utilisée pour sécuriser les hyperliens des ressources référencées. AKASHA le « Mention » , basé sur la blockchain d’Ethereum est un exemple d’utilisation d’IPFS. En effet AKASHA s’appuie sur IPFS pour le stockage des fichiers.
Le lecteur averti aura relevé un aspect problématique qu’IPFS partage avec Bitorrent. Comment garantir que les nodes du réseau vont garder les fichier au cours du temps ? De fait c’est impossible. L’émetteur du fichier original devrait maintenir un node IFPS seed pour en garantir la persistance.
Cette problématique n’existe plus dans un système où le stockage est rémunéré et IPFS a trouvé une solution. En l’absence d’un mécanisme natif de gratification pour encourager la persistance des fichiers, IPFS propose d’utiliser Filecoin, une cryptomonnaie adhoc. Par ailleurs la communauté IPFS s’est rapprochée de la communauté Ethereum Swarm et des évolutions sont à attendre du côté de Filecoin.

Swarm

Swarm en est à ces premiers stades de développement mais il est porté directement par la communauté Ethereum. Pour faire simple Swarm est comme IPFS, un système de stockage de fichier en P2P mais basé sur la blockchain. La librairie devp2p sur laquelle se base Swarm est très proche de libp2p d’IPFS. Des efforts sont faits pour rapprocher les 2 communautés de développeurs.
Le projet se décrit lui-même comme l’équivalent du WWW. On comprend donc que si IPFS est le protocole HTTP alors Swarm est plutôt orienté stockage de fichiers Web. De fait il semblerait que Swarm soit plus adapté pour le stockage de petits fichiers comme les fichiers HTML, CSS et JS. IPFS quant à lui stockerait des fichiers de grande taille plus efficacement.
Les fichiers interprétables web demandent en effet une disponibilité sans faille et rapide d’où le mécanisme incitatif natif de Swarm qui rémunère le stockage.

Autres approches

Les deux types de solutions que nous avons évoquées se concentrent uniquement sur le stockage de fichiers distribué. D’autres projets veulent révolutionner le web avec une approche plus globale.
Impossible en effet de ne pas parler dans cet article de MAIDSafe et du réseau Safenet. Pour résumer MAIDSafe propose une solution globale véritable eco-système web alternatif. MAIDSafe fournit un système de stockage de fichiers basé sur une crypto monnaie, le Safecoin et une blockchain utilisant une Proof of Ressource. Mais MAIDSafe intègre également un constructeur de site web pour publier son contenu. Il mixe donc un Akasha un Swarm ou IPFS et un Storj sur base de blockchain.
Développé en python, Zeronet doit également être cité. Zeronet propose de publier des site web sur un système décentralisé, distribué utilisant Bitcoin et Bitorrent.

Ces deux approches méritent d’être détaillées et j’y consacrerai une description ou un comparatif plus poussé dans un prochain article.

Aspects éthiques

Un ami a attirer mon attention sur le fait de traiter également de l’aspect éthique lié à ces technologies. Il est vrai que l’enthousiasme technologique s’accommode mal des questions éthiques qui sont vu comme une tentative liberticide de contrôle. Globalement les applications décentralisées visent entre autres propriétés à empêcher le contrôle. Cela n’empêche pas de se poser les bonnes questions.

Dans le cas du stockages de fichiers distribué comment empêcher le stockage de fichiers illégaux ? Partager son espace disque revient à dire que l’on peut potentiellement stocker des « morceaux » cryptés de fichiers illégaux. Quid alors de sa responsabilité juridique en tant qu’hébergeur de ces morceaux de fichiers sachant que l’on a aucun moyen de savoir ce qu’ils contiennent… Quid de la responsabilité morale.

Sia indique que son protocole inclus la possibilité de détruire une partie de l’arbre de Merkel des fichiers en cas d’injonction à le faire.

Data on Sia is encrypted and erasure-coded, so in general a host will not be storing anything resembling the original file. Regardless, we provide a tool for hosts to delete arbitrary sectors, identified by their Merkle hash. This allows hosts to delete such content if they are served a DMCA takedown notice.
Sia sur reddit

Ce que je traduirais par :

Les données dans Sia sont cryptées et distribuées sous forme de fragments (ndt. l’erasure coding décrit ce processus de fragmentation et de répartition des fragments de données) donc globalement un serveur hôte ne stockera rien de ressemblant au fichier d’origine. Néanmoins nous fournissons un outil aux hébergeurs pour supprimer des secteurs spécifiques du stockage identifiés par leur hash merkle. Ceci permet aux hébergeurs de détruire des contenus s’ils sont concernés par une injonction DMCA takedown(ndt. procédure d’injonction de destruction de fichiers).

Alors on y va ?

Oui mais avec prudence. Ces projets et startups, qui pour la plupart ont entre 2 ans et 6 mois d’existence, évoluent rapidement et certaines solutions sont quasiment des produits de marché. Les DSI, CIO, CTO audacieux envisageront sérieusement de passer une partie de leur sauvegardes cloud sur une de ces solutions de stockage de fichiers distribué. Les agences digitales peuvent d’ors et déjà tester la publication de certains types de contenus à faible risque via les solutions présentées.

Share

Comments

  1. Salut Iann.

    Je découvre votre blog, je le range directement dans mes favoris 🙂

    Je travaille autour des infrastructures de stockage et je pense qu’il s’agit réellement du futur pour nos données.

    Bonne continuation.

    • Merci Mathieu pour ces encouragements ! Je suis peu à peu happé par les projets blockchain mais je vais maintenir l’effort pour publier régulièrement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.