IPFS o InterPlanetary File System, è un file system decentralizzato che cerca di garantire la sicurezza, la privacy e la resistenza alla censura dei tuoi dati.
Il progetto InterPlanetary File System o Interplanetary File System (IPFS) è un progetto curioso con un obiettivo abbastanza chiaro: creare una rete informatica di portata globale che consenta l'archiviazione delle informazioni in maniera completamente decentralizzata, con elevata scalabilità e, ovviamente, con grande resistenza alla censura di qualsiasi tipo.
Puoi immaginarlo come un'enorme rete che contiene enormi quantità di informazioni sparse in tutto il mondo ea cui puoi accedere in modo totalmente trasparente e sicuro. Senza dubbio, il complemento perfetto per Internet in continua crescita, la cui portata ora raggiunge anche i più piccoli dispositivi elettronici come i nostri orologi, sveglie e persino macchine per il caffè.
IPFS, gli inizi del progetto
IPFS è un'idea che nasce dalla mente di Juan Benet, un programmatore che ha fondato l'azienda nel 2014 Protocol Labs. Tuttavia, non è stato fino al 2015, quando Benet ha presentato IPFS al mondo. L'idea è costruire un file rete P2P che permette a chi ne fa parte, archiviare e distribuire le informazioni in modo completamente decentralizzato in tutto il pianeta. Il sistema funziona sulla base della ben nota tecnologia di tabella hash distribuita o DHT, lo stesso che viene utilizzato in Protocollo BitTorrent, da cui IPFS prende alcune funzioni per la tua rete P2P.
Da allora, IPFS è stato un progetto in costante sviluppo e attualmente è disponibile la versione 0.26.0 di questo sistema. Nonostante si tratti di una versione di sviluppo, IPFS attualmente consente l'implementazione di molte delle sue funzioni finali in modo stabile, e molte di esse vengono ancora costantemente migliorate, chiarendo che si tratta di un sistema che possiamo già utilizzare oggi .
Un file system per Internet
Perché è stato creato IPFS? Bene, fondamentalmente la creazione di IPFS arriva per risolvere la necessità di un gigantesco spazio di archiviazione che è in continua espansione con l'attuale Internet che abbiamo. Si stima che nel 2019 sia stato generato un totale di 42 zettabyte di informazioni in tutto il mondo. Cioè, 42 miliardi di terabyte di informazioni aggiuntive a tutti i dati già generati negli anni precedenti.
Ma il problema principale con questi dati è quello finiscono nelle mani di terzi che generalmente sfruttano gli stessi per le loro diverse attività economiche. Ad esempio, non è raro che aziende come Meta prendano i tuoi dati sui loro social network e li utilizzino per venderli a terzi interessati a informazioni che possono provenire dai tuoi gusti o attività, al fine di creare profili che consentano loro di offrire altri prodotti e servizi servizi. Può sembrare innocente, ma non lo è. Si tratta infatti di una violazione della tua privacy poiché non vengono utilizzati solo i tuoi dati sul social network, ma viene tracciata tutta la tua attività all'interno e anche all'esterno della rete, in modo da poter essere venduta a terzi.
Altre aziende come Google Drive, da parte loro, sono in grado di farlo analizza ciò che scrivi e salva sui loro server, e in caso di trovare qualcosa che "viola i loro regolamenti" lo elimineranno semplicemente dai loro server, senza darti il diritto di proteggere tali informazioni su un altro supporto. Insomma, le grandi compagnie di Internet usano i tuoi dati per venderli e praticano in ogni modo una censura intollerabile.
IPFS è nato per risolvere questo problema. L'idea di IPFS è trasformare il modo in cui i dati vengono archiviati, lasciandoli completamente decentralizzati e il controllo dell'accesso ad essi è sempre nelle tue mani. Non solo, IPFS consente al nostro computer di archiviare dati da un sito Web e di fornirli a chiunque ne abbia bisogno. Bene, questo è IPFS, e se non ti sbagli, è simile a quello che fa BitTorrent per condividere file, solo che in questo caso il protocollo sarebbe integrato in applicazioni e siti web come quelli che usiamo sempre, rendendo l'interazione con IPFS completamente trasparente.
Non solo, con IPFS la capacità di archiviazione mondiale aumenterebbe notevolmente. E questo perché i nostri computer diventerebbero parte di quell'enorme disco di dati che memorizzerà le informazioni dell'intera Internet. Ciò contribuirebbe a risolvere (o diminuire notevolmente) la necessità di spazio di archiviazione per far fronte alla domanda da tutto il mondo. Inoltre, aiuterebbe a decentralizzare la rete e ci consentirebbe persino di mantenere una cronologia completa di quelle informazioni che ci interessano in una rete resistente e non censurata.
Come funziona IPFS?
IPFS è un sistema che funziona con lo schema "ricerca per contenuto", cioè, ogni volta che facciamo una ricerca in IPFS, dobbiamo dire al sistema "cosa stiamo cercando" invece di dirgli "dove cercarlo" .
Diamo un'occhiata a cosa significa tutto questo per un momento e utilizziamo Internet corrente come esempio. Quando visitiamo un sito Web su Internet, ciò che fa il nostro browser è il seguente:
- Prendi l'URL o l'indirizzo ed esegui una query DNS per scoprire in quale indirizzo IP si trova quel server.
- Una volta acquisito l'indirizzo IP, il browser effettua una richiesta di informazioni al server e inizia a scaricare le informazioni.
- Ci mostra le informazioni dell'URL che abbiamo indicato.
Questa è una forma piuttosto semplificata di tutto ciò che accade ogni volta che utilizziamo il nostro browser web. Questo tipo di operazione è chiamatocerca per località”, ed è chiamato così perché abbiamo bisogno di sapere dove si trovano le informazioni per potervi accedere. Quella posizione è l'indirizzo IP del server, e da lì arriva quella situazione che nessuno vuole, se il server è inattivo, non sarai in grado di accedere alle informazioni che stai cercando, perché la posizione non è disponibile.
Tuttavia, nel caso di IPFS, il "ricerca per contenuto" funziona in modo completamente diverso. Possiamo infatti suddividerlo in questo modo:
- Dici al sistema quale contenuto stai cercando.
- Il sistema prende la tua richiesta di informazioni e la invia alla rete, dove i nodi del sistema inizieranno a rispondere a te. Inoltre, tali informazioni sono
protetto da crittografia, un sistema di hashing dei dati e firma digitale, per impedire a chiunque di accedervi senza autorizzazione. - Riceverai la risposta dei nodi mostrandoti le versioni dei contenuti disponibili in rete.
- Se scegli un'opzione, potrai accedere al contenuto e anche alla sua intera cronologia, poiché se quell'opzione è stata visualizzata è perché è attiva sulla rete al momento della tua richiesta.
Ciò significa che IPFS esegue ricerche definite dal contenuto e in cui rispondono i nodi sulla rete. Ad esempio, se vuoi accedere a Bit2Me Academy in IPFS, digita semplicemente Bit2Me Academy e quei nodi che memorizzano le informazioni da questo sito web ti mostreranno tutto il contenuto che hanno memorizzato, potendo accedervi in qualsiasi momento.
DHT, il punto di partenza di IPFS
Il punto di partenza di IPFS è il tabella hash distribuita o DHT. Questa funzione è responsabile della creazione di un hash unico e irripetibile per ciascuno dei contenuti all'interno del sistema. Non solo, si occupa anche di consentire la creazione di un indice di ricerca globale per l'intera rete distribuita, assicurandosi che il contenuto della rete non venga duplicato e consentendo di reindirizzare le ricerche ai nodi corretti in modo da poter accedere le informazioni quando vogliamo. .
In poche parole, DHT crea un'enorme libreria di hash unici e irripetibili che ci consentono di cercare rapidamente il contenuto che desideriamo. Per questo sistema, IPFS utilizza il ben noto Hash SHA-256, lo stesso utilizzato in Bitcoin e in molte altre criptovalute. La ragione? È semplice da implementare, sicuro e l'hardware attuale può eseguire i calcoli consentendo a questo lavoro di richiedere poca potenza di calcolo per generare gli hash.
Un DAG per gestire la rete
Un'altra parte importante di come funziona IPFS è che la sua rete è strutturata in modo enorme DAG o grafico aciclico diretto. In questo caso, il DAG IPFS è specificamente un DAG Merkle, ovvero uno in cui ogni nodo ha un identificatore univoco che è un hash del contenuto del nodo.
Il Merkle DAG utilizzato è solo una leggera modifica a ciò che sarebbe una blockchain, in cui ogni blocco ha una Merke Root e i dati di detto blocco sono riepilogati. In questo senso, la costruzione DAG è stata scelta rispetto alla blockchain per un motivo tecnico molto potente: IPFS viene eseguito in modo asincrono ed è più scalabile. Inoltre, è un progetto in cui l'immutabilità totale non è il suo obiettivo (sebbene sia possibile configurare il sistema in modo che sia immutabile) e, naturalmente, non è necessario proteggere da attacchi come double spend, 51% attack, tra altri.
Dato questo panorama tecnico, il DAG IPFS è progettato per consentire un reindirizzamento più efficiente del contenuto e la ricerca tra i nodi. Non solo, un DAG Merkle permette la creazione di “cambiare le storie” che consentono di tracciare la singola modifica dei file in momenti diversi, permettendoci di navigare tra di essi senza problemi. In questo modo, possiamo preservare non solo l'ultima versione di un sito Web, ma anche la sua storia completa dal suo inizio al suo momento più attuale. Inoltre, questa caratteristica consente l'applicazione di tre importanti funzioni:
- Il primo è la ben nota "deduplicazione" che ci impedisce di avere contenuti duplicati sul nodo e in tutta la rete.
- Il secondo è noto come "delta storage" in cui vengono creati piccoli file che ci consentono di sapere che esattamente un contenuto è stato modificato tra le diverse versioni. Pertanto, prendendo un determinato contenuto di base e aggiungendo i rispettivi delta, possiamo ricreare un contenuto più attuale (o precedente) rispetto al contenuto di base che è stato preso.
- Infine, la terza funzione è che questo DAG consente alla rete di partecipare all'accesso dell'utente a determinate informazioni. Così, ad esempio, se un dato è in 2 o più nodi, l'utente può iniziare a scaricare le informazioni da tutte quelle posizioni, migliorando il tempo di download e la risposta generale della rete.
Privacy in IPFS
Tuttavia, l'idea di memorizzare i nostri dati su computer sparsi in tutto il mondo non è qualcosa che piace a molti. Il pericolo che ciò potrebbe rappresentare per la nostra privacy è immenso, quindi: come risolve IPFS questo problema?
Bene, prima di tutto, dovresti sapere che tutto in IPFS è all'interno di una rete pubblica. Quindi, chiunque può accedervi avendo un client per esso. Quindi ogni pezzo di dati che inserisci in IPFS farà parte del DHT e del Merkle DAG della rete, chiarendo che tutto è accessibile.
Questo è qualcosa che può essere risolto grazie al fatto che IPFS è un sistema software gratuito e qualsiasi persona o gruppo di sviluppatori può aggiungere questa funzione alla rete, consentendo l'anonimizzazione dei dati e persino l'aggiunta di crittografia avanzata per proteggerli da accessi non autorizzati. Questo è infatti il caso di diversi progetti che utilizzano IPFS per il loro funzionamento.
Casi d'uso IPFS
Ora, conosciamo alcuni casi d'uso piuttosto sorprendenti di questa tecnologia:
Filecoin
In piena febbre ICO del 2017, e alla ricerca di un modo per finanziare la sua idea, l'ICO di Filecoin, un progetto gemello creato da Juan Benet e dalla sua azienda Protocol Labs. L'idea di Filecoin è creare un sistema di incentivi grazie al quale gli utenti IPFS si sentono incentivati ad archiviare i file che altri desiderano archiviare. Filecoin consente alle persone di affittare uno spazio di archiviazione che può essere pagato utilizzando il token FIL.
La storia di Filecoin è iniziata nel 2017 e non è stato fino a questo 29 ottobre 2020, quando la sua rete è finalmente uscita. Il lancio del progetto ha generato molta attenzione e al momento la rete memorizza già circa 1,4 Exabyte di informazioni. Oltre a una capitalizzazione di mercato che supera $ 1200 miliardi e un costo di oltre $ 29 per token FIL.
Audius
Audius è una piattaforma di condivisione di musica e audio progettata per fornire agli artisti un collegamento diretto con i loro ascoltatori. Utilizzando la tecnologia decentralizzata, Audius è in grado di concedere agli artisti i diritti e il controllo sulla propria musica. Tutto questo, attraverso una piattaforma resistente alla censura per l'espressione e la distribuzione di opere e composizioni artistiche. Per creare una piattaforma di proprietà dell'utente e gestita, era fondamentale disporre di una rete di archiviazione cloud distribuita come base per il sistema. Audius utilizza IPFS come componente principale dell'archiviazione decentralizzata nella sua missione di offrire a tutti la libertà di condividere, monetizzare e ascoltare qualsiasi audio.
OpenBazaar
OpenBazaar è una piattaforma di e-commerce peer-to-peer in cui acquirenti e venditori possono partecipare in modo anonimo e privato senza raccolta di dati da parte dei fornitori o di qualsiasi altra autorità centrale. La piattaforma OpenBazaar è sviluppata da OB1, che ha anche creato Haven, una versione mobile di OpenBazaar che offre acquisti, chat e la possibilità di inviare criptovalute privatamente.
IPFS funge da livello di archiviazione dei dati per OpenBazaar e Haven. Sulla rete, commercianti e acquirenti possono eseguire nodi di archiviazione, eliminando la necessità di un server centrale. Utilizzando IPFS per creare questa rete collaborativa, OpenBazaar consente ad acquirenti e venditori di fare trading senza rischi. Rischi come la raccolta centralizzata dei dati o la minaccia che le tue informazioni personali vengano violate.
OB1 si basa con successo su IPFS dal 2015. La rete peer-to-peer abilitata da IPFS consente al team di fornire una piattaforma in cui le persone si scambiano liberamente le merci. Oltre a consentire a OB1 di essere solo un fornitore di tecnologia. Ciò significa non un venditore di prodotti, "proprietario" della rete o parte in questioni commerciali tra pari.
Pro e contro di IPFS
Tra i pro di IPFS possiamo citare:
- Il sistema di archiviazione è completamente decentralizzato.
- La rete è costruita in modo da essere altamente scalabile.
- La rete può resistere ad attacchi denial of service, tra gli altri, perché è completamente decentralizzata. In questo modo è garantito in ogni momento un accesso tempestivo alle informazioni.
- Il suo utilizzo è completamente gratuito e il codice sorgente è disponibile con licenze software gratuite.
- È estensibile, il che consente a chiunque di adattare nuove funzioni senza grossi problemi. Ad esempio, è possibile aggiungere moduli privacy, connessione a TOR, I2P, tra gli altri.
Per i suoi svantaggi possiamo menzionare:
- È uno sviluppo ancora in evoluzione, quindi il suo utilizzo in produzione non è ancora molto esteso.
- È complesso da utilizzare per utenti inesperti in questo tipo di sistemi.
- Non dispone di estensioni per la privacy per impostazione predefinita.
- A differenza di progetti come SIA, IPFS non è stato progettato con un modello di incentivi al centro. Per questo motivo, hanno dovuto sviluppare progetti separati come Filecoin che sono limitati nella loro integrazione.