Come praticamente tutti, ho sentito parlare di crittovalute per la prima volta molti anni fa, nel contesto del dark web e di Silk Road più nello specifico. Non ho però mai approfondito l’argomento fino a circa un anno fa, quando il boom degli NFT provocò una nuova onda di entusiasmo per la tecnologia sottostante. Inizialmente mi affascinava molto e mi ci sono documentato veramente tanto. Oggi voglio quindi parlarvi di quelle che sono state battezzate “blockchain”. Mi auguro che troviate la lettura interessante e che possa essere un buon spunto di discussione.
Come funzionano
Le blockchain sono protocolli che regolamentano quelle reti (solitamente peer-to-peer) il cui fine è quello di mantenere una lista comune (ognuno conserva una propria copia, non ne esiste una “autorevole”) di blocchi di dati. Ciascun blocco ha un id che è derivato crittograficamente non solo dai propri contenuti, ma anche da quelli di tutti i blocchi precedenti. L’utilità di una tale struttura dati è che permette di assegnare un timestamp a ogni specifico blocco (come descritto nel paper “How to time-stamp a digital document”), certificando cioè che i suoi contenuti sicuramente esistevano prima o dopo di quelli in certi altri blocchi.
Nel contesto delle crittovalute, le informazioni contenute nei blocchi altro non sono che transazioni, firmate con chiave privata, che stabiliscono il trasferimento di “moneta” dall’indirizzo di un utente (che deriva dalla corrispondente chiave pubblica) a quello di un altro. Le transazioni sono dunque cronologicamente ordinate e ciò previene che si possano verificare dei “double-spending” (un problema che a lungo ha impedito che un sistema del genere potesse venire realizzato): è impossibile pre-datare una transazione al fine di spendere nuovamente quanto è già stato speso.
Le transazioni possono anche fare riferimento ai cosiddetti “smart contract”, letteralmente dei contratti, ma che sono espressi in un linguaggio informatico (quali il DSL “Solidity”), formale e inflessibile, piuttosto che in uno giuridico, che può essere ambiguo e che quindi ha talvolta bisogno di essere interpretato. Inoltre, questi contratti non vengono fatti rispettare da un’autorità: i loro effetti sono piuttosto automaticamente applicati dal sistema, che funge quindi da parte terza realmente imparziale (una feature di questa tecnologia spesso descritta col termine “trustlessness”). Gli utenti inoltrano transazioni all’indirizzo di uno smart contract al fine di sottoscrivercisi implicitamente.
Per generalizzare, si potrebbe dire (almeno per certe architetture) che anche le normali transazioni per trasferire “moneta” a beneficio di un altro utente sono in realtà indirizzate a degli smart contract, i quali prevedono che la quantità di “moneta” trasferita possa essere poi nuovamente trasferita solo tramite transazioni adornate da una firma valida. Per chiarire, quello che fondamentalmente tutti gli smart contract vanno a definire sono condizioni per le quali si possono o meno verificare certe modifiche allo stato del sistema.
Tra gli obiettivi di una blockchain c’è appunto quello di essere priva di autorità, quindi nuovi blocchi possono essere creati e propagati da chiunque faccia parte della rete. Tuttavia, affinché un blocco sia considerato valido, questo deve ovviamente riportare informazioni corrette (le transazioni all’interno devono rispettare i termini stabiliti dai relativi smart contract), ma deve anche contenere una cosiddetta “proof-of-work” (una “prova di lavoro svolto”, solitamente nella forma di un valore numerico detto nonce), che porti l’id del blocco ad assumere certe proprietà.
L’unico modo di produrre un blocco valido è con la brute-force, andando a tentativi, cioè appunto svolgendo del lavoro (un processo detto gergalmente “mining”) del quale la “proof-of-work” sarà poi una prova innegabile da presentare agli altri nodi del network. È un meccanismo che previene che la rete venga intasata da blocchi invalidi (che terrebbero inutilmente impegnati i nodi), perché verificare che una proof-of-work sia invalida è semplicissimo, mentre produrne una valida per un blocco farlocco non porterebbe vantaggi (il blocco verrebbe alla fine comunque respinto, a causa dell’invalidità suoi contenuti) e sarebbe inutilmente costoso. Il livello di difficoltà di questo processo è infatti dinamicamente modificato, così che il tempo trascorso tra un blocco e un altro (il “blocktime”) rimanga più o meno costante. Ciò ha il fine sia di garantire che ci sia sempre (a prescindere ad esempio dai progressi tecnologici) abbastanza tempo affinché l’ultimo blocco valido riesca a raggiungere un buon numero di nodi, ma anche che trovare le “proof-of-work” sia sempre (a prescindere ad esempio dall’abbandono improvviso dal network di macchine molto performanti) abbastanza sconveniente per attori malevoli e non troppo sconveniente per gli attori onesti.
Lo stato del sistema è infatti aggiornato solo quando un nuovo blocco viene verificato, quindi una volta ogni blocktime. Se tra un blocco e un altro passassero ore, ciò sarebbe estremamente sconveniente per gli utenti, dato che che una transazione non ha alcun effetto almeno fino a quando non viene prodotto un nuovo blocco valido (ad esempio, in un sistema con blocktime di circa 10 minuti, se l’ultimo blocco è stato verificato da 5 minuti, nel migliore dei casi si dovranno attendere altri 5 minuti per vedere applicati gli effetti della propria transazione).
Dato che il blocktime è più o meno costante, si tende a paragonarlo alla frequenza di clock delle CPU. Infatti, la verifica di nuovi blocchi è uno dei modi con cui le blockchain possono segnare il tempo internamente (riprendendo l’esempio precedente, dopo 6 blocchi sarà passata 1 ora circa). Uno smart contract potrebbe per esempio impedire specifiche operazioni fino a quando non saranno stati prodotti un certo numero di blocchi validi.
I nodi competono per trovare una proof-of-work per un blocco che sia successivo all’ultimo che è già stato verificato. Chi per primo presenta un nuovo blocco valido viene solitamente ricompensato con nuova “moneta” (emessa per l’occasione), oltre che con le commissioni che gli utenti hanno allegato alle transazioni contenute nel blocco prodotto.
Infatti, anche dopo che si è inoltrata una transazione, questa potrebbe non avere mai effetti, semplicemente perché non c’è modo di imporre ai nodi di includerla nei blocchi che producono (nulla vieta di produrre blocchi vuoti, dopotutto). Quindi, c’è invece un meccanismo di incentivo economico, per il quale chi include in un blocco una certa transazione, se ne intasca anche le relative commissioni. Dato che i blocchi hanno solitamente una dimensione massima (una misura che ha il fine di prevenire attacchi di tipo DoS, ma che collateralmente va anche a limitare la quantità di aggiornamenti che il sistema può elaborare per volta), inoltrare una transazione è come fare un’offerta per l’acquisto di spazio all’interno di un blocco. Si tratta di un mercato nel quale vige davvero solo la legge della domanda e dell’offerta: chi offre di più verrà ovviamente incluso per primo nei blocchi (perché altrimenti i nodi correrebbero il rischio di far validare a qualcun altro le transazioni più ghiotte), anche nel caso ci dovesse essere una lista di transazioni pendenti molto lunga.
È stabilito infine che la lista di blocchi più lunga è l’unica da considerare valida. Ciò impedisce che la storia delle transazioni possa essere riscritta (quindi potenzialmente causando double-spending), perché per modificare un blocco passato non solo sarebbe necessario trovarne una nuova “proof-of-work”, ma sarebbe necessario farlo anche per tutti i blocchi che sono venuti dopo. Mentre l’attore malevolo esegue questo processo, gli attori onesti continuano a produrre blocchi genuini, preservando il primato di “lunghezza” della lista originale, che rimarrà quindi quella valida. Si riuscirebbe a compiere un’operazione del genere solo controllando la maggior parte della potenza di calcolo di tutta la rete (“51% attack”).
Funzionano?
La mia intenzione non è quella di sostenere che protocolli di questo genere non facciano quello che promettono, almeno da un punto di vista strettamente tecnico. Piuttosto, voglio mettere in discussione l’adottabilità, l’usabilità, l’applicabilità e l’effettiva utilità della tecnologia in questione.
Innanzitutto, com’è ormai noto, ci sono seri problemi di scalabilità. I limiti alla dimensione dei blocchi, in combinazione al problema che il blocktime non può essere eccessivamente breve, fa da collo di bottiglia al sistema. Ne consegue che ad esempio la rete di Bitcoin può al più processare 7 transazioni al secondo, contro le 1700 transazioni al secondo di un circuito di pagamenti tradizionale quale Visa.
Ovviamente, nel caso delle blockchain, “al secondo” è un modo di dire, perché (com’è già stato spiegato) gli aggiornamenti al sistema si verificano solo una volta ogni blocktime. C’è quindi anche il fondamentale problema che le operazioni su blockchain semplicemente non possono avvenire con tempistiche immediate. È anzi comune dover attendere ben più di un blocktime prima di vedere applicati gli effetti di una propria transazione. Questo presupponendo che si sia abbastanza facoltosi da poter convincere i miner (i nodi che svolgono il mining) a includere le proprie transazioni nei blocchi che producono, offrendo loro delle mance adeguate.
I costi di transazione non sono in alcun modo regolamentati (non ce n’è modo), quindi i costi lievitano come conseguenza di alti volumi di traffico, a danno principalmente di chi non può permettersi spese eccessive. Gli elevati costi di transazione rendono per altro sconveniente trasferire piccole quantità di “moneta”, rendendo il sistema inadeguato a effettuare spese di bassa entità.
Col blocktime che non può essere diminuito eccessivamente, la soluzione ovvia (anche se non risolverebbe il problema dell’immediatezza delle transazioni) sembra essere quella di incrementare la dimensione dei blocchi. Questa è in realtà una questione incredibilmente spinosa, che già solo nell’ambito di Bitcoin ha dato origine a numerose “hard fork” (come Bitcoin Cash, che ha parzialmente la stessa storia delle transazioni di Bitcoin, ma che da un certo punto in poi adotta parametri diversi secondo i quali considerare validi i blocchi, causando un vero e proprio scisma) e persino a una specie di guerra civile (Bitcoin XT).
Neanche incrementare la dimensione dei blocchi sembra infatti essere una buona soluzione. Il limite attuale dei blocchi di Bitcoin è di 1 MB, quindi per raggiungere il throughput di Visa dovrebbe essere possibile per i blocchi raggiungere una dimensione di approssimativamente 243 MB. Ciò escluderebbe dal network (indebolendo i presupposti per la decentralizzazione) le macchine meno performanti, specialmente quelle con limitato spazio di archiviazione. Infatti, ogni nodo deve memorizzare per conto suo le informazioni di tutti i blocchi validi, che se avessero quelle dimensioni ideali richiederebbero (nel peggior caso possibile) ben 35 GB di spazio per ogni singolo giorno.
A questo proposito, le dimensioni della lista di blocchi continuano ad aumentare, nel caso di Bitcoin al ritmo di (al più) 1 MB ogni circa 10 minuti (il blocktime). Ad oggi, Bitcoin richiede 400+ GB di spazio per far parte della rete come “full node”, Ethereum va invece già verso il suo primo TB. Operare un proprio nodo è semplicemente sconveniente per gli utenti comuni, mentre operare un cosiddetto “lightweight node” implica fidarsi dei “full node”. Dato però che operare “full node” è alla portata di pochi, il sistema pare non raggiungere i suoi obiettivi in termini di decentralizzazione.
Questo vale specialmente per il processo di mining, L’idea iniziale era che tutti avrebbero contribuito alla sicurezza del network usando le proprie macchine domestiche: chiunque avrebbe avuto la possibilità di unirsi alla corsa al prossimo blocco, tutti sarebbero stati di tanto in tanto pagati dal sistema, e gli utenti si sarebbero scambiati tra loro quanto guadagnato per avere accesso a beni e servizi. Posta in questi termini, è una visione meravigliosamente ottimistica, poetica quasi: denaro che funziona alla stregua del file sharing tramite BitTorrent. E finché Bitcoin consisteva di una piccola community di appassionati, funzionava davvero in questo modo, ma sono sorti diversi problemi una volta che si è stabilito che queste “monete” valessero effettivamente qualcosa.
Data le possibilità di profitto, il diventare miner si è tramutato in un investimento: chi se lo può permettere, acquista macchine molto performanti e costose (inaccessibili ai più) così da primeggiare quanto più spesso possibile nella corsa ai blocchi. Insomma, essere i primi a produrre un blocco valido col proprio laptop è già da molto tempo qualcosa di estremamente irrealistico. Questo processo è ormai prerogativa delle mining farm, vere e proprie aziende il cui scopo è quello di intascare le ricompense per aver prodotto nuovi blocchi. Di conseguenza, il consenso nel network è garantito solo da una manciata di attori, tant’è che qualcuno ipotizza che basterebbe che le tre più grandi mining farm di Bitcoin si mettessero d’accordo per attuare un 51% attack nella corrispondente rete. Anche da questo punto di vista, quindi, è difficile definire Bitcoin come “decentralizzato”.
In realtà, ci sono esempi ben peggiori di centralizzazione in ambito blockchain. Personalmente, ad esempio, fatico davvero a comprendere il senso delle blockchain “permissioned” (dove Bitcoin ed Ethereum sono “permissionless”, invece), nelle quali solo pochi nodi (una ventina di solito), approvati da un ente centrale (un’azienda, il più delle volte), possono produrre nuovi blocchi. Questi network usano spesso un algoritmo di consenso chiamato Proof-of-Authority: semplificando all’estremo, se un nodo prova ad attuare furbate, l’ente che gestisce la blockchain prende provvedimenti nei suoi confronti, magari estromettendolo. Queste piattafome sono, ovviamente, le più performanti, in ambito blockchain, ma considerando che presentano un’autorità centrale, non capisco le ragioni per le quali necessitino di essere blockchain.
Una dimostrazione dell’estrema centralizzazione di sistemi di questo genere ci è stata data a seguito del recente fiasco di TerraUSD, quando la relativa blockchain (di tipo permissioned, appunto) è stata “messa in pausa” per diversi giorni. A Bitcoin va quantomeno riconosciuto che rende impossibile che qualcosa del genere possa accadere (ci sarà sempre qualcuno a produrre blocchi),
Date le criticità della Proof-of-Work come algoritmo di consenso, e considerando anche il suo enorme impatto ambientale (dovuto alla competizione alla quale i nodi partecipano per produrre blocchi, i miner svolgono un’enorme quantità di lavoro che è estremamente ridondante), si sono proposte diverse alternative negli anni. Tra queste, la Proof-of-Stake è quella sicuramente più popolare, nonostante alcuni detrattori sostengano che comporti delle fondamentali e irrisolvibili falle per la sicurezza rispetto alla Proof-of-Work. Ignorando questi aspetti, però, l’unico problema che la Proof-of-Stake risolve è quello ambientale, mentre per il resto non fa altro che rendere esplicita la naturale propensione di queste reti a privilegiare chi dispone di più capitale (più “moneta” corrisponde a un nodo, più è probabile che quel nodo venga selezionato per produrre il prossimo blocco).
In generale, si sono discusse, o anche implementate, un sacco di soluzioni per i vari problemi delle blockchain (ad esempio, il lightning network di Bitcoin promette transazioni istantanee con bassissimi costi di transazione e un throughput fino a 1 milione di transazioni al secondo), ma la sensazione è che siano in realtà solo compromessi che tendono a vanificare le idee iniziali. Una di queste soluzioni è direttamente un’alternativa alle blockchain, ossia gli hashgraph, dei quali però so poco e se ne parla ancora meno (forse perché la tecnologia è protetta da brevetto).
L’inconvenienza di scambiarsi “moneta” tramite Bitcoin potrebbe forse essere il motivo per il quale più di recente si è passato dal considerarlo “denaro digitale” al considerarlo “oro digitale”, nel senso che è seriamente visto da molti come una vera e propria riserva di valore, come lo è considerato l’oro. Non voglio approfondire questi aspetti finanziari, perché non è il genere di cose in cui sono ferrato, ma questa idea sembra derivare dalla convinzione che l’oro abbia valore solo in virtù della sua scarsità, quando in realtà il punto è che l’oro è anche desiderabile: ha proprietà utili in ambito tecnico e scientifico ed è banalmente anche considerato bello a vedersi. Ma se le crittovalute non sono utili ad acquistare beni e servizi, per quale ragione dovrebbero allora essere considerate desiderabili?
Uno dei modi in cui si è cercato di riposizionare questa tecnologia è presentandola (specialmente a partire dal lancio di Ethereum, dato che Bitcoin ha funzionalità limitate in questo ambito) come la base per piattaforme di smart contract. Sostanzialmente, le blockchain possono essere viste come dei computer globali distribuiti in grado di eseguire codice in modo sicuro, nel senso che non si corre il rischio che l’esito di una procedura venga falsato da attori malevoli.
Precedentemente ho descritto gli smart contract come appunto dei contratti, ma possono semplicemente essere visti come degli script eseguiti dai nodi della rete quando una transazione lo richiede. Più uno script è complesso, più la sua esecuzione comporterà elevati costi di transazione, rendendo quindi le crittovalute indispensabili per accedere a queste funzioni.
Questa “programmabilità” delle blockchain viene effettivamente sfruttata per definire dei contratti di natura finanziaria, ma è usata anche per costruire delle “applicazioni decentralizzate” (“dapp”) che in pratica usano gli smart contract al posto di più ordinarie procedure server-side. Le dapp sono quello a cui ci si riferisce quando si parla di “web3”.
Il problema però è che è difficile trovare applicazioni effettivamente utili per gli smart contract. Questo perché quello che le blockchain fanno è solo assicurare che informazioni già scritte non vengano successivamente modificate senza i permessi necessari. Com’è ovvio, sono in grado di dare garanzie solo nei confronti di ciò che è già all’interno del sistema, ma nativamente all’interno del sistema troviamo solo bilanci in crittovaluta e poco altro. Per trovare applicazioni utili è necessario fare interagire le blockchain col mondo esterno, che è difficile e necessita di riporre fiducia nei cosiddetti “oracoli”. Si può anche semplicemente effettuare una transazione per far memorizzare alla rete certe informazioni provenienti dal mondo esterno. Da quel punto in poi avremo la garanzia che quelle informazioni non potranno mai essere modificate, ma ciò in realtà non è granché utile. La vera criticità si verifica proprio al momento dell’input, cioè l’unico passaggio per il quale le blockchain non possono fornire garanzie: nessuno vieta a nessuno di pubblicare frottole sulla rete, non esiste schema crittografico che possa prevenirlo.
Nulla dimostra meglio questi limiti degli NFT. Sono il modo in cui viene replicata la scarsità degli oggetti fisici nel mondo digitale, ma in realtà no. Ci siamo abituati a vedere un’immagine e a dire “questo è un NFT”, ma in realtà quell’immagine è solo un’immagine. Gli NFT sono fondamentalmente (parlando in particolare del paradigma di Ethereum) degli smart contract che stabiliscono chi gode di determinati diritti (ossia, il proprietario), come quello di poter trasferire quei diritti a qualcun altro (che è ciò che rende possibile venderli). Questi smart contract stabiliscono anche che i corrispondenti NFT sono associati a qualcosa, riportandone il link (spesso a risorse su IPFS, ma a volte anche a risorse su server centralizzati). Questi link portano tendenzialmente ad immagini ed è così che la “CryptoArt” funziona.
Il collegamento tra gli NFT (interni alla rete) e le corrispondenti immagini (esterni alla rete) è estremamente debole e addirittura labile (anche nel caso siano su IPFS). L’idea dovrebbe essere che possedere un NFT dovrebbe darti i diritti sull’immagine corrispondente, ma non c’è modo di imporre qualcosa del genere senza ad esempio una legge che lo stabilisca (il che vuol dire ricorrere a un’autorità in grado di risolvere dispute, e a quel punto a che ci servono gli NFT?).
Un discorso simile si può fare persino per quegli NFT che rappresentano risorse nei videogiochi, perché i videogiochi che usano le blockchain come inventari dei giocatori sono solitamente sistemi centralizzati in mano a un’azienda, che in ogni momento può banalmente decidere che un certo NFT non rappresenti più nulla di significativo nel suo videogioco.
Se un NFT fosse in grado di concedere al suo proprietario dei diritti crittograficamente innegabili, ciò sarebbe magari interessante, ma ribadisco che ciò è seriamente limitato dall’inaccessibilità di informazioni provenienti dal mondo esterno, che sono ciò che davvero ci interessa. La conseguenza è che le dapp in circolazione si limitano ad essere elaboratissime supercazzole per la speculazione finanziaria (il denaro è quello che le blockchain sono effettivamente in grado di trattare).
Alcuni estremisti vorrebbero invece portare TUTTO sulla blockchain, tutte le informazioni personali di tutta la popolazione, così da costruire una società in blockchain. Diplomi, referti medici, addirittura fedine penali, così che gli smart contract siano automaticamente in grado di compiere decisioni sulla base del profilo di un utente. Tralasciando diverse difficoltà tecniche e d’uso di un sistema del genere, e specialmente le implicazioni distopiche, forse sarebbe il caso di notare che l’inflessibilità degli smart contract non è totalmente qualcosa di positivo: gli utenti, le persone, hanno bisogno di flessibilità quando interagiscono con le macchine. L’idea di una società automatizzata, dove il potere giudiziario è in mano alle macchine, è secondo me terrificante.
Non voglio mettere in dubbio che, nonostante i loro difetti, le crittovalute non possano in assoluto essere considerate utili. Metto di nuovo le mani avanti perché vado a parlare di qualcosa di cui non mi intendo, ma presumo che un circuito di pagamenti decentralizzato possa essere genuinamente utile in certe parti del mondo. Peccato solo che il resto del mondo renda il sistema in questione meno utilizzabile, stressandolo al solo fine di specularci finanziariamente.
Infatti, rispondendo alla domanda che ho posto prima, le crittovalute al momento sono desiderabili solo perché c’è la percezione che il loro valore sia destinato a incrementare: si comprano con la speranza di rivenderle a prezzi più alti a qualcuno che spererà a sua volta di rivenderle a prezzi ancora più alti e così via, un sistema che a un certo punto diventa insostenibile. È una bolla.
Ciò è testimoniato dal fatto che la maggior parte degli investitori acquista crittovalute da servizi di exchange centralizzati e poi li lascia lì, in attesa di rivendere. Invece di possedere crittovalute, possiedono un credito in crittovaluta nei confronti di entità centralizzate, delle quali si fidano ciecamente, ignorando non solo diversi episodi passati che suggeriscono che non dovrebbero farlo (MtGox, QuadrigaCX, eccetera), ma soprattutto le ragioni per le quali le crittovalute esistono in primo luogo.
Potrebbero riscuotere il proprio credito, richiedendo cioè che gli exchange trasferiscano quanto devono dal proprio indirizzo a quello dell’investitore, ma spesso non lo fanno perché fidarsi dell’exchange è più comodo. C’è un sacco di gente ormai che investe in crittovalute, ma la tecnologia vera e propria è comparativamente utilizzata da davvero pochi.
Insomma, la maggior parte delle persone che parla di blockchain sembra essere in realtà unicamente interessata alle possibilità di profitto, ignorando quello a cui effettivamente dovrebbero servire le blockchain. Dopo 13 anni non stiamo neanche più parlando di denaro digitale, sicuro e senza intermediari, stiamo parlando solo di un insensato sistema finanziario che ha l’unico scopo di generare profitti in modo fine a sé stesso.
TL;DR
è un’idea bella, ma che ce ne facciamo?
- Ci mettiamo dei dati sopra come prova a fare IPFS (probabilmente non rimpiazzerà mai il sistema classico)
- Lo usiamo per i soldi? Il denaro è in mano alle banche e allo stato e non perderà il controllo su di esso
- Bruciamo tutto in
TruffeNFT? Probabile a questo punto visto che ci siamo dimenticati di tasto destro > salva immagine
La prima in realtà, nel senso di utilizzare le blockchain per file sharing/cloud storage, non è neanche realizzabile, a causa dei limiti alle dimensioni dei blocchi di cui parlo. Esiste in realtà una blockchain, quella di FileCoin, il cui scopo è proprio quello. Non me ne sono mai interessato molto, quindi mi mancano i dettagli tecnici, ma in realtà mi è parso di capire che non è la blockchain a fornire questo servizio, bensì proprio la rete IPFS. FileCoin introduce solo degli incentivi per tentare di rendere IPFS economicamente sostenibile (credo che FileCoin sia un progetto a cura proprio degli sviluppatori di IPFS), Onestamente, però, non ho idea di come funzioni e se effettivamente funzioni.
questo video spiega, in sostanza, IPFS. E’ un bel progetto senza dubbio, ma non arriverà mai a essere “mainstream”, nel senso di essere lo standard
@ColorIsh No, circa IPFS sono abbastanza informato (non troppo, ma le basi le conosco). Mi riferivo a FileCoin. Anche a me IPFS intriga molto, in generale il poter richiedere risorse in base a cosa sono piuttosto che in base a dove sono. Tuttavia anch’io sono scettico circa la sua adottabilità dal mainstream (nonostante l’obiettivo di questo protocollo sia letteralmente quello di rimpiazzare quello HTTP). Tuttavia è concettualmente molto figo. So che Brave supporta IPFS nativamente e che gli altri browser possono supportarlo tramite plugin. Realizzare un sito hostato su IPFS sarebbe un progettino divertente. Peccato che ora come ora l’unica applicazione che IPFS è riuscita a trovare sia quella di hostare le immagini associate agli NFT (una soluzione adottata al solo fine di poter dire che gli NFT sono decentralizzati ecc).