Skip to content

Reti tokenizzate: Web3, il web stateful

Shermin Voshmgir edited this page Aug 13, 2021 · 2 revisions

Se assumiamo che il WWW abbia rivoluzionato le informazioni e che il Web2 abbia rivoluzionato le interazioni, il Web3 ha il potenziale per rivoluzionare gli accordi e lo scambio di valore. Il Web3 modifica le strutture dei dati nel backend di Internet, introducendo un livello di stato universale, spesso incentivando gli attori della rete con un token. La spina dorsale di questo Web3 è rappresentata da una serie di reti blockchain o ledger distribuiti simili.

L’Internet che abbiamo oggi è guasto. Non controlliamo i nostri dati, né disponiamo di un livello di regolazione del valore nativo. A trent'anni dall'adozione di massa di Internet, le nostre architetture di dati si basano ancora sul concetto di computer autonomo, in cui i dati vengono archiviati e gestiti centralmente su un server e inviati o recuperati da un client. Ogni volta che interagiamo su Internet, copie dei nostri dati vengono inviate al server di un fornitore di servizi e ogni volta che ciò accade, perdiamo il controllo sui nostri dati. Di conseguenza, e anche se viviamo in un mondo sempre più connesso, i nostri dati sono per lo più archiviati centralmente: su server locali o remoti, sui nostri personal computer, dispositivi mobili, hard disk esterni e sempre più anche sui nostri orologi, automobili, TV, o frigoriferi. Tutto ciò solleva problemi di fiducia. Posso fidarmi di quelle persone e istituzioni che archiviano e gestiscono i miei dati contro qualsiasi forma di corruzione, internamente o esternamente, intenzionalmente o accidentalmente? Le strutture dati centralizzate non solo sollevano problemi di sicurezza, privacy e controllo dei dati personali, ma producono anche molte inefficienze lungo la catena di fornitura di beni e servizi.

Le radici di questi problemi risalgono a prima ancora dell’avvento di Internet. Agli albori dei personal computer non si potevano inviare file da un computer all'altro. Dovevi salvare un file su un floppy disc, andare dalla persona che aveva bisogno del file e copiarlo sul suo computer perché potesse usarlo. Se quella persona era in un altro paese, bisognava spedirge il floppy disc via posta. L'emergere del protocollo Internet (IP) ha posto fine a questi passaggi, collegando tutti quei computer stand-alone con un protocollo di trasmissione che ha reso il trasferimento dei dati più veloce e ha ridotto i costi di transazione dello scambio di informazioni. Tuttavia, l’Internet che utilizziamo oggi è ancora prevalentemente basato sull'idea del computer autonomo, in cui la maggior parte dei dati viene archiviata e gestita centralmente sui server di istituzioni affidabili. I dati memorizzati su questi server sono protetti da firewall e sono necessari amministratori di sistema che ne gestiscano la sicurezza.

L'emergere del WWW all'inizio degli anni '90 ha aumentato l'usabilità di Internet con siti web visivamente accattivanti e facili da navigare. Dieci anni dopo, Internet è diventato più maturo e programmabile. Abbiamo assistito all'ascesa del cosiddetto Web2, che ci ha portato social media, e-commerce e piattaforme di apprendimento. Il Web2 ha rivoluzionato le interazioni sociali, avvicinando produttori e consumatori di informazioni, beni e servizi. Il Web2 ci ha permesso di godere di interazioni peer-to-peer (P2P) su scala globale, ma sempre con un intermediario: una piattaforma che funge da intermediario fidato tra due persone che non si conoscono o non si fidano l'una dell'altra. Sebbene queste piattaforme Internet abbiano svolto un lavoro fantastico nel creare un'economia P2P, dettano anche tutte le regole e controllano i dati dei loro utenti.

In questo contesto, le reti blockchain sembrano essere una forza trainante dell’Internet di prossima generazione, quello che alcuni chiamano Web3. Esse reinventano il modo in cui i dati vengono archiviati e gestiti su Internet, fornendo un set di dati univoco, un livello di stato universale, che viene gestito collettivamente da tutti i nodi della rete. Questo livello di stato unico, per la prima volta, fornisce un livello di regolazione del valore nativo per Internet in assenza di intermediari. Consente transazioni P2P reali e tutto è iniziato con l'emergere di Bitcoin.

Mentre Web2 è stata una rivoluzione front-end, Web3 è una rivoluzione backend. Il Web3 reinventa il modo in cui Internet è cablato nel backend, combinando le funzioni di sistema di Internet con le funzioni di sistema dei computer. Tuttavia, per l'utente medio non cambierà molto sul front-end di Internet. Il Web3 rappresenta un insieme di protocolli, con i ledger distribuiti come spina dorsale. I dati sono gestiti in modo collaborativo da una rete di computer P2P. Le regole di gestione sono formalizzate nel protocollo e garantite dal consenso di maggioranza di tutti i partecipanti alla rete, che sono incentivati ​​con un token di rete per le loro attività. Il protocollo formalizza le regole di governance della rete e garantisce che le persone che non si conoscono o non si fidano l'una dell'altra raggiungano e concludano accordi sul Web. Mentre il tentativo di manipolare i dati su un server somiglia a un'irruzione in una casa, dove la sicurezza è garantita da una recinzione e un sistema di allarme, il Web3 è progettato in modo tale da dover entrare in più case contemporaneamente in tutto il mondo, ognuna dotata della propria recinzione e sistema di allarme. Questo è possibile ma proibitivo.


History of the Web



Centralized vs. Distributed


Blockchain: Un protocollo stateful [^1]

L'Internet che utilizziamo oggi è "stateless”. Non ha un meccanismo nativo per trasferire ciò che l'informatica chiama "stato". Lo stato si riferisce alle informazioni o allo stato di "Chi è chi?", "Chi possiede cosa?" e "Chi ha il diritto di fare cosa?" in una rete. La capacità di trasferire facilmente valore e P2P è essenziale per mercati efficienti e lo "stato" è una proprietà chiave per la gestione e il trasferimento di valori. Nel Web3 i valori sono rappresentati da token protetti crittograficamente.

Se non puoi mantenere lo stato su Internet, non puoi trasferire valore senza istituzioni centralizzate che agiscono come entità di compensazione. Sebbene l’Internet di oggi abbia accelerato il trasferimento di informazioni di diversi ordini di grandezza rispetto a prima, abbiamo ancora bisogno di istituzioni affidabili, come i fornitori di piattaforme Internet, per negoziare le nostre azioni come soluzione alternativa a questa mancanza di stato. I protocolli apolidi, come l'attuale Web, gestiscono solo il trasferimento di informazioni, laddove il mittente o il destinatario di tali informazioni non è a conoscenza dello stato dell'altro. Questa mancanza di stato si basa sulla semplicità dei protocolli su cui è costruito il Web, come TCP / IP, SMTP o HTTP. Questa famiglia di protocolli regola la trasmissione dei dati, non il modo in cui i dati vengono archiviati. I dati possono essere archiviati centralmente o in modo decentralizzato. Per molte ragioni, l'archiviazione centralizzata dei dati è diventata la forma principale di archiviazione e gestione dei dati.

L'introduzione di cookie di sessione e fornitori di servizi centralizzati ha offerto soluzioni alternative a questo Web senza stato. I cookie di sessione sono stati inventati in modo che le applicazioni basate sul Web potessero preservare lo stato sui dispositivi locali. Prima dei cookie di sessione, nei primi giorni del WWW, non avevamo la cronologia di navigazione, i siti preferiti salvati e il completamento automatico, il che significava che dovevamo inviare nuovamente le nostre informazioni utente ogni volta che stavamo utilizzando un sito web. Sebbene i cookie di sessione forniscano una migliore usabilità, questi cookie sono creati e controllati da un fornitore di servizi, come Google, Amazon, Facebook, la tua banca, la tua università, ecc., il cui ruolo è quello di fornire e gestire lo stato dell’utente.

Le piattaforme Web2 hanno introdotto molti servizi vantaggiosi e creato un notevole valore sociale ed economico nel corso degli anni. Tuttavia, la ricchezza è stata accumulata principalmente dalle società che offrono i servizi e meno dal pubblico in generale che contribuisce con contenuto e valore a tali servizi. Invece di decentralizzare il mondo, le piattaforme Web2 hanno contribuito a una ricentralizzazione del processo decisionale economico, del processo decisionale di ricerca e sviluppo e, successivamente, a un'enorme concentrazione di potere attorno a questi fornitori di piattaforme. Inoltre, poiché il primo Internet è stato creato attorno all'idea di informazioni gratuite, i clienti spesso non erano disposti a pagare per i contenuti online con una quota di abbonamento ricorrente e nella maggior parte dei casi i micropagamenti non sono ancora fattibili. Pertanto, molte di queste piattaforme Web2 avevano bisogno di trovare modi alternativi per trarre profitto dai servizi gratuiti che fornivano e questa alternativa era la pubblicità. Ciò che è seguito è stata una pubblicità mirata basata sul comportamento degli utenti e sulla mercificazione dei dati privati. I modelli di business si sono quindi sviluppati intorno alla pubblicità mirata che si basa sui set di dati raccolti, che forniscono lo "stato" per queste piattaforme. Di conseguenza, gli utenti pagano i servizi con i loro dati privati.

La rete Bitcoin ha introdotto un meccanismo per ogni nodo in una rete per inviare e ricevere token e registrare lo stato dei token, in un formato nativo digitale. Il protocollo di consenso della rete Bitcoin è progettato in modo che la rete possa ricordare collettivamente eventi precedenti o interazioni degli utenti, risolvendo il problema della “doppia spesa” fornendo un'unica fonte di riferimento per chi ha ricevuto cosa e quando. Il protocollo Bitcoin può, quindi, essere visto come un punto di svolta, che apre la strada a un Web più decentralizzato. Il white paper Bitcoin del 2008 ha avviato una nuova forma di infrastruttura pubblica, in cui lo stato di tutti i bitcoin viene mantenuto collettivamente.

Le reti blockchain, come la rete Bitcoin, sono solo la spina dorsale e il punto di partenza, ma non l'unico mattone in questo nuovo Web decentralizzato. L'architettura del Web3 sfrutta lo stato universale gestito collettivamente per l'elaborazione decentralizzata. Le applicazioni decentralizzate possono gestire alcuni o tutti i loro contenuti e logica tramite una rete blockchain o un altro registro distribuito. Ma sono necessari anche altri protocolli. Molti sviluppatori hanno iniziato a creare reti blockchain alternative, oltre a protocolli complementari per il Web3.

Altri protocolli Web3

La blockchain non è l'unica tecnologia necessaria per decentralizzare il Web. Sono necessari una moltitudine di altri protocolli per creare un'applicazione decentralizzata. Tuttavia, il termine "blockchain" sembra essere utilizzato come sinonimo di molti protocolli Web3[^2] o del Web3 stesso, almeno da alcuni giornalisti e dal pubblico in generale. Oltre al calcolo abbiamo bisogno di archiviazione di file, messaggistica, identità, dati esterni (oracoli) e molti altri servizi decentralizzati. Una rete blockchain è semplicemente il processore per applicazioni decentralizzate che operano su Web3. Serve come una macchina contabile distribuita che registra tutte le transazioni di token ed esegue il calcolo.

Le reti blockchain non sono affatto ideali per l'archiviazione dei dati, per due motivi principali: (i) le reti blockchain pubbliche sono troppo lente e troppo costose per memorizzare grandi set di dati; e (ii) l'archiviazione di reti blockchain di dati in testo semplice non consente la "privacy by design". Per creare un YouTube decentralizzato, ad esempio, è necessario un archivio di file decentralizzato per gestire i file video. È emersa una gamma di diverse soluzioni di rete di archiviazione decentralizzata, come “IPFS,” “Filecoin,” “Swarm,” “Storj,” or “Sia.” Le reti di archiviazione decentralizzate incentivano i nodi di rete a condividere lo spazio di archiviazione con un token nativo e trasformano l'archiviazione nel cloud in mercati algoritmici. Differiscono nei livelli di decentralizzazione, privacy e nella scelta dei meccanismi di incentivazione. Alcuni potrebbero anche non avere un livello di incentivi, come IPFS, ad esempio. Protocolli come “Golem,” d'altro canto, forniscono potenza di rendering decentralizzata premiando i contributi nella rete con il loro token di protocollo nativo.

Negli ultimi anni la comunità degli sviluppatori Web3 si è evoluta. Diversi team stanno lavorando su vari componenti di questo Web emergente; tuttavia, molti di questi protocolli sono ancora in fase di sviluppo. Le applicazioni Web3 comunicano tipicamente con peer che all'inizio sono sconosciuti e hanno una qualità variabile in termini di velocità e affidabilità. Sono necessarie nuove librerie e API per navigare in queste complessità. Non è chiaro quando raggiungeranno la massa critica per eventualmente sostituire le attuali applicazioni Web su scala più ampia o quali standard prevarranno alla fine. Il passaggio dal "Web client-server" al "Web decentralizzato" sarà quindi graduale piuttosto che radicale. Sembra che stia passando da centralizzato a parzialmente decentralizzato, a completamente decentralizzato.

Una delle domande più urgenti della ricerca applicata quando si sviluppano tecnologie complementari per il Web3 è la questione di come premiare i partecipanti alla rete con un token, in modo che la rete rimanga resistente agli attacchi. Ne sono un esempio i meccanismi di incentivazione per soluzioni di archiviazione di file decentralizzate, calcolo decentralizzato, analisi dei dati o reputazione. Sono attualmente in fase di sperimentazione molti diversi meccanismi di consenso, come: "Proof-of-Retrievability", "Proof-of-Storage" e "Proof-of-Spacetime". Le soluzioni completamente decentralizzate, come IPFS e Swarm, non sono ancora implementate a livello funzionale.

Sebbene le architetture decentralizzate siano più resilienti dei loro predecessori Web2 centralizzati, sono anche più lente. Velocità, prestazioni e usabilità sono colli di bottiglia nel Web3 che molto probabilmente verranno risolti nel tempo, una volta che i suoi componenti principali saranno attivi e funzionanti (per approfondire: Appendice - Soluzioni di scalabilità). È probabile che il futuro di Internet sarà più decentralizzato, tuttavia, questo non significa che ci sbarazzeremo del tutto dei sistemi centralizzati. I sistemi centralizzati presentano vantaggi e probabilmente prevarranno, almeno per casi d'uso specifici.


Web2 vs. Web3 Applications


Applicazioni decentralizzate nel Web3

A differenza delle applicazioni centralizzate che vengono eseguite su un singolo computer, le applicazioni decentralizzate vengono eseguite su una rete P2P di computer. Esistono sin dall'avvento delle reti P2P e non devono necessariamente funzionare su una rete blockchain. "Tor", "BitTorrent", "Popcorn Time" e "BitMessage" sono tutti esempi di applicazioni decentralizzate che vengono eseguite su una rete P2P, ma non su una rete blockchain, che è un tipo specifico di rete P2P (per approfondire: Appendice – Origini del Bitcoin e del Web3).

Le applicazioni tradizionali utilizzano HTML, CSS o javascript per eseguire il rendering di una pagina Web o di un'app mobile. Il front-end di una pagina Web o di un'applicazione mobile interagisce con uno o più database centralizzati. Quando utilizzi un servizio come Twitter, Facebook, Amazon o Airbnb, ad esempio, la pagina web chiamerà un'API per elaborare i tuoi dati personali e altre informazioni necessarie archiviate sui loro server, per visualizzarli sul front-end. Per l'identificazione e l'autenticazione vengono utilizzati l'ID utente e le password, con bassi livelli di sicurezza, poiché i dati personalizzati sono memorizzati sul server del fornitore di servizi.

Le applicazioni decentralizzate non hanno un aspetto diverso dai siti Web o dalle app mobili attuali. Il front-end rappresenta ciò che si vede, e il backend di un'applicazione decentralizzata rappresenta l'intera logica aziendale. Un'applicazione decentralizzata è un client blockchain chiamato "wallet". Utilizza le stesse tecnologie per il rendering di una pagina web o di un'app mobile (come HTML, CSS, Javascript) ma comunica con una rete blockchain invece che con un server e, nel caso delle reti smart contract, anche gli smart contract (per approfondire: Parte 2 – Smart Contract). Il portafoglio gestisce anche la coppia di chiavi pubblica-privata e l'indirizzo blockchain, per fornire un'identità univoca per i nodi di rete in modo che possano interagire in modo sicuro con la rete (per approfondire: Parte 1 – Sicurezza dei token e Identità user-centriche). Gli smart contract rappresentano la logica di core business dell'applicazione decentralizzata ed elaborano feed di dati dall'interno e dall'esterno della rete per gestire lo stato di tutti gli attori della rete (per approfondire: Parte 1 – Smart Contract). Se il client blockchain è un full-node, gestirà anche lo stato completo del ledger (per approfondire: Parte 1 – Bitcoin, Blockchain e altri registri distributi). In questo caso, il client blockchain esegue le funzioni di un client HTTP e di un server, poiché tutti i dati sono archiviati lato client. I dati front-end, inclusi file audio o video e altri documenti, potrebbero essere archiviati e gestiti collettivamente da reti di archiviazione decentralizzate come "Swarm" o "IPFS". Al momento della stesura di questo libro tali dati sono ancora, per la maggior parte, archiviati e gestiti da server.

Per l'utente medio, le applicazioni decentralizzate devono avere lo stesso aspetto delle applicazioni esistenti, il che significa che devono essere facili e intuitive da usare se devono essere adottate su scala più ampia. Attualmente, il software wallet e la gestione delle chiavi sono difficili, il che potrebbe essere un collo di bottiglia per l'adozione di massa delle applicazioni Web3. Inoltre, l'adozione su larga scala può avvenire solo se la sfiducia nelle soluzioni centralizzate è sufficientemente elevata da giustificare gli attuali compromessi nell'usabilità.

Riassunto del capitolo

L'Internet che abbiamo oggi è rotto. Non controlliamo i nostri dati, né abbiamo un livello di liquidazione del valore nativo. Ogni volta che interagiamo su Internet, copie dei nostri dati vengono inviate al server di un fornitore di servizi e ogni volta che ciò accade, perdiamo il controllo sui nostri dati. Tutto ciò genera problemi di fiducia.

L'Internet che utilizziamo oggi archivia e gestisce i dati sui server di istituzioni affidabili. Nel Web3 i dati sono archiviati in più copie di una rete P2P, e le regole di gestione sono formalizzate nel protocollo, e garantite dal consenso di maggioranza di tutti i partecipanti alla rete, spesso (ma non sempre) incentivati con un token di rete per le loro attività.

Nel Web3 lo stato della rete (rappresentato dal registro) viene mantenuto collettivamente.

Mentre il Web2 è stata una rivoluzione del front-end, il Web3 è una rivoluzione del backend, che introduce un livello di stato universale. È un insieme di protocolli guidati da una rete blockchain o da un registro distribuito simile, che intende reinventare il modo in cui Internet è cablato nel back-end. Il Web3 combina le funzioni di sistema di Internet con le funzioni di sistema dei computer.

A differenza delle applicazioni centralizzate che vengono eseguite su un singolo computer, le applicazioni decentralizzate vengono eseguite su una rete P2P di computer. Esistono dall'avvento delle reti P2P. Le applicazioni decentralizzate non devono necessariamente essere eseguite su una rete blockchain.

Un'applicazione decentralizzata è un client blockchain chiamato "wallet" (portafoglio). Utilizza le stesse tecnologie per il rendering di una pagina web o di un'app mobile (come HTML, CSS, Javascript) ma comunica con una rete blockchain invece che con un server e, nel caso di reti smart contract, anche con gli smart contract. Il wallet gestisce anche la coppia di chiavi pubblica-privata e l'indirizzo blockchain, per fornire un'identità univoca ai nodi della rete e consentire loro di interagire con la rete.

Riferimenti e approfondimenti

Note a piè di pagina

[^1]: Puoi trovare qui una buona definizione di steteful e stateless.

[^2]: Si tenga presente che termini simili, come Web 3.0, vengono utilizzati da altri domini. Spesso fanno riferimento a un Web più intelligente o semantico, inclusi l'apprendimento automatico e l'intelligenza artificiale, concentrandosi sulla convergenza di diverse tecnologie emergenti. Nel contesto della blockchain, il termine è usato da molti per riferirsi a un Internet più decentralizzato, ed è generalmente indicato come Web3 (non Web 3.0).