Immaginiamo che tu stia scaricando gli ultimi meme e abbia aspettato pazientemente che il download finisse. Il meme, ovviamente, è fuoco, quindi invii un link ai tuoi amici. Prendono il file dal tuo telefono, quindi iniziano a condividerlo con i loro amici. A questo punto, il meme vive su poche dozzine di dispositivi, quindi quando qualcuno di nuovo ottiene il collegamento, finisce per connettersi a molte altre persone e ottenere alcuni pezzi da ciascuno di essi, rendendo il download praticamente istantaneo.
Grazie a il file system interplanetario, il sistema molto reale e sorprendentemente facile da usare potrebbe essere la nostra chiave per un Internet più veloce e più democratico. Come descritto sopra, l’idea di base è che i dispositivi degli utenti memorizzeranno, indicizzeranno e forniranno i dati che attualmente risiedono su server centralizzati. Se suona un po ‘come una criptovaluta, non ti sbagli: l’uomo dietro il progetto, Juan Benet, ha descritto IPFS come “In un certo senso, fare ai siti Web … quello che Bitcoin ha fatto ai soldi.“
Cos’è il file system interplanetario?
Se sai come funziona BitTorrent o qualsiasi altra tecnologia P2P (Peer-to-Peer), sei la maggior parte del modo per capire cosa sta facendo IPFS. Sta inviando file (inclusi i file HTML, CSS e JavaScript che compongono la maggior parte dei siti Web) e parti di file tra i dispositivi degli utenti, proprio come faresti legalmente con il torrent di un brano musicale di pubblico dominio.
Ciò significa che invece di connetterti a un server per vedere un sito, controlli semplicemente se qualcuno vicino a te sta memorizzando la pagina (o alcuni pezzi di essa) e ti connetti invece a loro. Una volta scaricata la pagina, il tuo dispositivo la memorizzerà per un po ‘di tempo in modo che altre persone possano ottenerla (o parti di essa) da te. Sembra un po ‘complicato, ma in realtà risulta essere molto più efficiente del nostro attuale sistema di invio di dati su una singola pipeline server-client utilizzando il protocollo HTTP.
Perché è fantastico?
L’IPFS ha alcuni grandi vantaggi rispetto al web tradizionale:
- Consegna dei contenuti più rapida ed efficiente: è possibile scaricare parti di file da fonti geograficamente vicine, riducendo al minimo i tempi di viaggio e la larghezza di banda.

- Decentramento: nessuna singola fonte può controllare i dati o accedervi.

- Conservazione delle informazioni: poiché nessun singolo server memorizza tutti i dati, non può semplicemente scomparire e portare con sé tutti i tuoi, ad esempio, siti Web GeoCities.
- Connessioni più veloci e più stabili in aree scarsamente connesse: fintanto che il contenuto che desideri è stato scaricato da qualche parte a cui puoi accedere, in realtà non è necessario effettuare la connessione a più o connessioni compromesse.
- Resistenza alla censura: non perfetta, ma migliore di un modello centralizzato.
Come funziona: la versione breve
Chiunque può utilizzare la rete IPFS in questo momento, poiché è diventata molto user-friendly. Ecco cosa succede:

- Quando si aggiunge un file all’IPFS, il file viene suddiviso in blocchi, ognuno dei quali viene eseguito tramite un algoritmo e assegnato a un ID univoco. Anche l’intero file, inclusi questi ID di blocco, viene assegnato un ID. Inizialmente, la tua macchina sarà l’unico posto in cui le persone possono ottenere il file, ma anche altri nodi (macchine) possono prenderlo e distribuirlo.
- Se la rete rileva che alcuni dei tuoi dati sono identici al contenuto già memorizzato lì, lo utilizza invece di aggiungere una copia. Supponiamo che tu stia ospitando una “edizione deluxe” di un album che hai registrato. Dieci dei brani sono gli stessi dell’album che hai già registrato, ma due sono nuovi, quindi quando li aggiungi a IPFS, il sistema riconoscerà le tracce duplicate e utilizzerà gli ID esistenti per loro, aggiungendo solo nuovi ID per le due nuove canzoni.

- Ogni nodo della rete memorizza alcuni dati (probabilmente i dati che il nodo vuole distribuire, più i dati che il nodo ha aperto di recente) e parte di un indice che aiuta le persone a cercare dove trovare i contenuti sulla rete.
- Se vuoi aprire un file, chiedi alla rete di cercare il suo ID e di collegarti a chi lo possiede. Un sistema di denominazione chiamato IPNS aiuta a convertire i nomi leggibili dagli esseri umani negli ID leggibili dalla macchina che il sistema cercherà.
Traduzione ancora più semplice: IPFS assegna un nome a ogni pezzo di dati, crea un elenco di dove si trovano i dati in un dato momento e aiuta i dispositivi a scambiarsi i dati direttamente.
Come funziona: la versione tecnica
Ci sono tre cose principali che fanno funzionare IPFS: l’indirizzamento del contenuto fornisce ai dati un’identità, i Merkle-DAG gli danno una struttura e le tabelle hash distribuite indicano dove trovarli.
Indirizzamento del contenuto: cosa, non dove

La maggior parte dei nostri contenuti attuali ha indirizzi basati sulla posizione (C: / Users / Username / Documents, 192.124.249.3, ecc.) Che ci dicono dove andare per trovare i dati. Ciò non funzionerà davvero in un sistema decentralizzato, poiché il contenuto può essere archiviato praticamente ovunque, quindi sistemi come IPFS e BitTorrent utilizzano invece “l’indirizzamento del contenuto”.
UN sistema di indirizzamento dei contenuti funziona eseguendo un pezzo di dati attraverso un algoritmo che gli assegna un ID univoco, o hash. Ogni copia identica del file avrà lo stesso ID, il che significa che quando IPFS lo cerca, può trovare ogni istanza memorizzata sulla rete.
Merkle-DAG: tutto ha un CID e sono tutti collegati

Per quanto suoni come un partito politico tedesco, a Merkle-DAG (grafico aciclico diretto) è in realtà un modo per organizzare i dati. In questo sistema ogni pezzo di dati ha il suo ID contenuto (CID): cartelle, file, blocchi di dati all’interno dei file – tutto. Ciò significa che i file possono essere suddivisi in parti diverse, autenticati e riassemblati.
La documentazione IPFS lo descrive come uno “scenario di tartarughe fino in fondo”, poiché tutto può essere suddiviso in una raccolta di dati identificabili da un CID. Il CID di una cartella ti indirizzerà a una raccolta di CID di file e cartelle, i cui CID ti indirizzeranno quindi ad altri CID che rappresentano altri contenuti, anche con i propri CID. Qualsiasi modifica in qualsiasi file comporterà la modifica dell’hash e anche dell’hash della sua cartella.

I dati in realtà non vivono qui – ti dicono solo dove trovarli tutti e come dovrebbero essere messi insieme tutti i pezzi una volta che li hai. Il Merkle-DAG è essenzialmente ciò che dà a tutti questi ID una struttura, molto simile al file system del tuo computer.
Tabelle hash distribuite: come IPFS individua il contenuto

Allora come facciamo a trovare chi ha i dati che vogliamo? Fondamentalmente, c’è un grande database che corrisponde agli ID del contenuto con le posizioni dei computer che ospitano quel contenuto e il database stesso è suddiviso tra tutti nella rete. Quando richiedi un contenuto rappresentato da un CID, il tuo computer cerca il CID finché non trova un elenco di persone che lo possiedono. Il tuo computer si connette quindi a queste persone, scarica i pezzi di cui hai bisogno e li assembla. Questa è la tabella hash distribuita, essenzialmente un grande elenco di chi ha cosa.
IPFS è interessante, ma decollerà?

IPFS ha avuto inizio nel 2015 e da allora ha compiuto rapidi progressi. Su di esso sono state create dozzine di app e siti, come un sistema di archiviazione di file blockchain (Filecoin) e una sostituzione di GeoCities (Neocities). È riuscito a trovare il giusto mix di decentralizzazione e facilità d’uso, motivo per cui è probabilmente diventato un punto di riferimento per i progetti che cercano di entrare nel decentramento, come Sociall (un social network decentralizzato) e Coraggioso.
Il gateway IPFS di Cloudflare è stato un grande successo e l’utilizzo della rete sta diventando sempre più facile; tutto quello che devi fare è scarica un programma e installa un’estensione del browser. Ovviamente, si discute se sia davvero la soluzione migliore – non è l’unico progetto là fuori con la stessa visione – ma non mostra alcun segno di rallentamento. Anche se non sostituisce completamente HTTP, sembra certamente che farà parte della prossima versione di Internet.
Crediti immagine: Grafico aciclico diretto, Hash Tree, IPFS