Matthew Rosenfeld aka Moxie Marlinspike è un esperto di cyber-security e il creatore di Signal, l’app di messaggistica famosa per la sua estrema attenzione alla privacy e alla sicurezza.
In un suo post (che vi invito a leggere integralmente) ha scritto alcune considerazioni molto interessanti su blockchain, web3 e NFT.
La prima considerazione riguarda la tendenza alla centralizzazione che già appare nel mondo blockchain. Internet, il web 1.0 e il web 2.0 sono nati con le ottime intenzioni di creare reti decentralizzate e aperte. Sfortunatamente però, in un modo o nell’altro, sono state “colonizzate” da aziende che ne hanno snaturato la natura originaria creando prima portali poi piattaforme e servizi centralizzati.
Il web 3 supportato dalle reti blockchain sembrava dover invertire questa tendenza ma ci sono segnali che quest’aspirazione si scontri con una realtà fatta di limiti tecnici e avidità vecchio stile.
Marlinspike osserva innanzitutto che la decentralizzazione “senza se e senza ma” potrebbe avvenire solo se ogni utente avesse un nodo blockchain (per esempio Ethereum) nel proprio device, compresi gli smartphone: solo così la fiducia distribuita, il consenso e gli altri meccanismi delle blockchain potrebbero rendere gli utenti realmente “pari tra pari”. Non potendo questo succedere per limitazioni tecnologiche e architetturali, l’unica alternativa è rispolverare il caro, vecchio binomio client-server: interagire con la blockchain tramite un nodo che è in esecuzione in remoto su un server da qualche parte.
E infatti sono nate aziende che vendono l’accesso API (cioè tramite “interfacce” ) a un nodo Ethereum come servizio. In particolare, quasi tutte le dapp e i marketplace NFT si affidano alle API di soli due attori: Infura e Alchemy.
MetaMask è il wallet/gateway più usato nel mondo Ethereum e tra gli adepti NFT. Bene, quando ci colleghiamo tramite Metamask a un marketplace come OpenSea o Rarible (così come alle dapp) MetaMask sta semplicemente effettuando chiamate a Infura.
Questo comporta in primo luogo problemi di sicurezza. Le dapp interrogano la blockchain con queste API, ricevono una risposta ma senza verifica sull’autenticità di questa risposta. Tanta fatica per costruire un meccanismo di consenso e fiducia distribuito e poi ogni client si deve fidare dell’output fornito da queste due aziende!
Sottolinea Marlinspike che “tutto il traffico in scrittura è ovviamente già pubblico sulla blockchain, ma queste aziende hanno anche visibilità su quasi tutte le richieste di lettura di quasi tutti gli utenti in quasi tutte le dapp.”
Non è finita. Visto che le richieste via Metamask avvengono tramite (semplifico) un unico canale, se si hanno più account operanti sul nostro Metamask apparirà una correlazione tra di essi, a dispetto della “sacra” privacy che dovrebbe essere garantita dalle blockchain.
Un altro aspetto su cui Marlinspike si sofferma è quello più volte sottolineato anche da me: si sottovaluta il fatto che gli oggetti digitali associati agli NFT sono, nella maggior parte dei casi, non residenti su blockchain ma salvati su server esterni (l’NFT è solo un puntatore all’indirizzo dell’oggetto). Chi sia il responsabile dell’integrità dell’artefatto digitale, cosa ci assicuri che non venga cancellato o che non venga sostituito sono domande scomode a cui si preferisce soprassedere.
Il fondatore di Signal ha fatto un significativo esperimento. Ha creato un NFT facendo in modo che l’immagine mostrata fosse diversa a seconda dell’IP o dell’User Agent dell’utente. Lo stesso NFT su OpenSea, su Rarible o su un wallet mostrava immagini differenti! OpenSea ha reso dopo qualche giorno l’NFT non disponibile senza spiegazioni. Il grosso problema è che l’NFT risultava sparito anche dal wallet di Marlinspike. Perché? Perché per accedere all’NFT si passava, oltre che per le API Infura, anche per quelle OpenSea. L’NFT è ancora su Ethereum, ma inaccessibile.
Un’altra criticità che denota una “privatizzazione” crescente delle reti blockchain e di Ethereum in particolare è data dalla tanto decantata possibilità di remunerazione degli autori di opere digitali anche con percentuali sulle vendite successive nel mercato secondario. Gli smart contract che gestiscono questa funzionalità NON sono standard (non fanno parte dei protocolli ERC7-21 e ERC-1155) ma creati dagli stessi marketplace, come avevo anche in questo caso puntualizzato diversi mesi fa.
Secondo Marlinspike questa tendenza alla (ri)centralizzazione dipende essenzialmente dalla difficoltà tecnica insita nei sistemi crittografati e distribuiti come le blockchain, che fanno sì che i progetti anche relativamente “semplici” richiedano grossi investimenti e team numerosi e qualificati: sono gli interessi di questi attori che vengono per primi. Gli utenti, d’altro canto, come gli artisti digitali, sono talmente entusiasti di questi nuovi strumenti che permettono loro di monetizzare che non si pongono troppe domande.
Update In un commento su Reddit (segnalatomi da Vincenzo Cosenza) Vitalik Buterin (co-creatore di Ethereum) risponde alle osservazioni di Marlinspike. In sostanza Buterin afferma che ci sono problemi di gioventù delle blockchain, che i fondi dell’ecosistema Ethereum non sono tantissimi, che è più difficile lavorare sui sistemi decentralizzati e che, comunque, in futuro ogni smartphone sarà un nodo blockchain. Ma quante app/nodo/light client dovremmo mettere nel nostro smartphone? Non ci sarà solo Ethereum. O forse Buterin spera di sì.