Il nostro super specialista ha deciso di completare con altre due puntate la mini serie dedicata a quella che sembra essere una vera e propria rivoluzione. La tecnologia Blockchain. Alcuni troveranno forse un pò troppo tecnico l’articolo, ma la materia non è semplice ed il nostro autore ha cercato di semplificare i concetti anche con alcuni esempi pratici. Buona lettura.
Nell’articolo precedente abbiamo introdotto il concetto di NFT, descrivendo come possa essere utilizzato, ad esempio nel mondo dell’arte, per garantire l’unicità di una creazione digitale e poterne consentire il trasferimento della proprietà.
In questo articolo approfondiremo invece cosa succede “dietro le quinte”, cioè come funziona la “coniazione” di un NFT (in italiano“mintare”, dall’inglese “to mint”, “coniare”) e, una volta compreso il funzionamento, dovrebbe essere probabilmente più chiaro anche il potenziale degli NFT e gli scopi per cui potranno essere utilizzati in futuro.
Per comprendere i principi di funzionamento degli NFT, è necessario innanzitutto introdurre brevemente la blockchain di Ethereum, descrivendo le differenze principali da quella di Bitcoin. Gli NFT vengono infatti generalmente mintati proprio sulla blockchain di Ethereum.
Ethereum è una tecnologia blockchain descritta per la prima volta nel 2013 da Vitalik Buterin, personaggio meno noto al grande pubblico rispetto a Satoshi Nakamoto, l’inventore di Bitcoin, ma altrettanto famoso nel mondo crypto, e la prima versione della rete è stata rilasciata il 20 luglio 2015. Lo scopo di Ethereum, dichiarato nel white paper, cioè il documento che rappresenta il manifesto programmatico della tecnologia, non è quello di fare concorrenza a Bitcoin, ma di esserne complementare. Infatti, mentre la rete Bitcoin è nata essenzialmente per gestire le transazioni valutarie, quella di Ethereum è stata realizzata principalmente per consentire di eseguire dei programmi, definiti “contratti intelligenti” o “smart contract”, che vedremo fra poco.
Come tutte le blockchain, anche quella di Ethereum ha una sua “moneta” interna, denominata Ether, che ha anche lo scopo di remunerare i “minatori” che mantengono attiva la blockchain e che sono dislocati in tutto il mondo, attraverso il pagamento di commissioni denominate “gas” (i “gettoni” della sala giochi visti in precedenza). A differenza di Bitcoin, che è nato con il fine specifico di definire il concetto di “scarsità digitale”, imponendo quindi fin dall’inizio il limite di 21 milioni ai bitcoin che saranno prodotti, Ethereum non ha un limite di Ether che verranno generati, e il motivo è stato esplicitamente descritto nel white paper, dove viene indicato che il modello non limitato di generazione degli Ether “riduce il rischio di quello che qualcuno vede come una eccessiva concentrazione di ricchezza in Bitcoin, e garantisce agli individui di oggi e di domani una giusta chance di acquistare unità di valuta”. In pratica Buterin aveva progettato Ethereum per cercare di evitare la tesaurizzazione degli Ether da parte di pochi soggetti, come stava avvenendo con Bitcoin, al fine di evitare la speculazione su una “moneta” che avrebbe dovuto essere accessibile a più persone possibili.
Indipendentemente dalle buone intenzioni originarie, tuttavia, anche Ethereum è finito al centro dei fenomeni speculativi sulle criptovalute, con la conseguenza innanzitutto di danneggiare tutti quelli che vorrebbero utilizzare la tecnologia blockchain per scopi diversi dalla speculazione. Ad esempio, gli artisti digitali si trovano in questo momento a dover pagare commissioni anche superiori a 100 dollari per mintare un singolo NFT.
Una volta descritta brevemente la blockchain di Ethereum, passiamo a descrivere cos’è uno smart contract e che cosa lo differenzia dalle transazioni che avvengono sulla blockchain di Bitcoin. In Bitcoin abbiamo visto che esistono degli “indirizzi” dove inviare le “monete”, attraverso transazioni registrate sulla blockchain. Ad esempio se ArcheoWealth vuole inviare un bitcoin a ExploWealth, è sufficiente che conosca il suo indirizzo (chiave pubblica), firmi con la propria chiave privata la transazione “sto inviando un bitcoin all’indirizzo di ExploWealth” e la invii alla rete Bitcoin. Una volta validata, la transazione viene accodata alla blockchain e chiunque può verificare che all’indirizzo di ExploWealth è presente il nuovo bitcoin. L’indirizzo Bitcoin però è di tipo “statico”, cioè ha l’unico scopo di registrare contabilmente che contiene il bitcoin ricevuto e non è in grado di effettuare operazioni di altra natura.
In uno smart contract, invece, all’indirizzo del destinatario è associato un “programma”, che può essere attivato ad esempio al momento della ricezione di moneta. Questo programma esegue una serie di operazioni, definite dal creatore dello smart contract. Quindi, nel momento in cui inviamo degli Ether all’indirizzo di uno smart contract, la blockchain non si limita a registrare contabilmente l’operazione, ma avvia il programma associato a quell’indirizzo. Operativamente significa che tutti i computer della rete Ethereum eseguono lo stesso programma, allo stesso modo di come registrano le stesse transazioni.
Per fare un esempio pratico del funzionamento di uno smart contract, ipotizziamo che ArcheoWealth voglia vendere la casa ad ExploWealth e ipotizziamo anche che i due non si conoscano, che vivano in un Paese dove la legislazione non richiede l’intervento di un notaio, e che non vogliano ricorrere ad una terza parte garante, come potrebbe appunto essere un notaio. Affinché la vendita avvenga correttamente dovrebbero essere verificate entrambe le condizioni seguenti: ExploWealth dovrebbe inviare i soldi ad ArcheoWealth e, al momento del pagamento, ArcheoWealth dovrebbe trasferire l’attestato di proprietà della casa a ExploWealth. Dal momento che vogliono eseguire questa operazione senza un soggetto terzo garante, potrebbero concordare il pagamento in bitcoin e provare quindi ad utilizzare la blockchain di Bitcoin.
Tuttavia si scontrerebbero con un problema non risolvibile dalla blockchain di Bitcoin, cioè garantire che entrambe le transazioni avvengano correttamente: sia il pagamento del denaro da ExploWealth ad ArcheoWealth, sia la cessione dell’attestato di proprietà da ArcheoWealth a ExploWealth. Infatti, dal momento che le transazioni sulla blockchain sono irreversibili, se ExploWealth inviasse i soldi ad ArcheoWealth e poi lui non gli consegnasse l’attestato di proprietà, ExploWealth non avrebbe alcun modo di recuperare i propri soldi. D’altra parte, se ArcheoWealth inviasse prima l’attestato di proprietà ad ExploWealth, lui potrebbe non versare i soldi e tenersi l’attestato.
Per garantire entrambi, i due dovrebbero quindi poter disporre di un programma automatico sulla blockchain che, senza possibilità di manipolazione, possa eseguire le seguenti azioni: se ExploWealth invia al portafoglio di ArcheoWealth i soldi, allora la blockchain deve inviare dal portafoglio di ArcheoWealth al portafoglio di ExploWealth i documenti del trasferimento di proprietà. In altre parole la transazione deve avvenire automaticamente, ma solo al verificarsi di una condizione. L’istruzione “se avviene questo” “allora fai quest’altro” è una tipica istruzione di linguaggio di programmazione. Ethereum, a differenza di Bitcoin, che ha delle funzioni di programmazione molto limitate, possiede un linguaggio di programmazione definito turing complete, cioè che consente di eseguire qualsiasi operazione informatica, per cui può effettuare anche questo tipo di operazioni.
Utilizzando la blockchain di Ethereum, ArcheoWealth ed ExploWealth possono quindi avere la certezza che il contratto venga eseguito solo nel momento in cui tutte le condizioni sono state verificate, programmando uno smart contract che agisca in questo modo: “appena vengono versati i soldi all’indirizzo di ArcheoWealth, trasmetti il certificato di proprietà all’indirizzo di ExploWealth”. Il codice di questo smart contract è “scolpito” nella blockchain, quindi è pubblico e non può più essere modificato, per cui tutti hanno la certezza che verranno eseguite le operazioni indicate. Non appena ExploWealth invierà il pagamento all’indirizzo dello smart contract, questo gli trasmetterà immediatamente l’attestato di proprietà della casa.
Se ora, invece della casa, torniamo a considerare una creazione artistica digitale, il procedimento che avviene con la creazione di un NFT è identico a quello descritto sopra. Un NFT di un’opera digitale è infatti uno smart contract che, invece dei documenti di proprietà della casa, contiene un “puntatore” alla creazione artistica digitale. Nel momento in cui riceve il pagamento, trasmette l’attestato di “proprietà” all’acquirente esattamente come descritto sopra.
Come potete intuire, la logica di funzionamento non varia se si sta trasferendo la proprietà di una creazione digitale, di una casa, o se si sta stipulando un contratto di qualsiasi altro tipo. Sarebbe perfino anche possibile “tokenizzare” le aziende (e in questo settore un Paese come la Svizzera è molto avanti) in maniera tale che invece delle azioni si possano acquistare e scambiare i “token” direttamente sulla blockchain, esattamente come avviene per gli NFT delle opere d’arte. Fra qualche anno, quindi, invece di acquistare quote di ETF tramite intermediari finanziari, potremmo forse acquistarle direttamente sulla blockchain e conservarle in un wallet digitale.
Guardando in casa nostra, anche l’Italia è piuttosto avanti con la normativa sugli smart contract, introdotti con la Legge n. 12/2019, dove viene indicato che:
“Si definisce “smart contract” un programma per elaboratore che opera su tecnologie basate su registri distribuiti e la cui esecuzione vincola automaticamente due o piu’ parti sulla base di effetti predefiniti dalle stesse.
Gli smart contract soddisfano il requisito della forma scritta previa identificazione informatica delle parti interessate, attraverso un processo avente i requisiti fissati dall’Agenzia per l’Italia digitale con linee guida da adottare entro novanta giorni dalla data di entrata in vigore della legge di conversione del presente decreto.”
E per una volta, con “solo” un anno di ritardo, il 7 maggio 2020, l’Agenzia per l’Italia Digitale ha effettivamente emanato le linee guida. Gli smart contract sono quindi (in teoria) già oggi una realtà in Italia, e nel mondo legale si sta iniziando a parlare di Avvocati 4.0. Tuttavia, in realtà, l’effettiva attuazione pratica richiederà ancora del tempo.
Questo perché, a parte gli aspetti normativi, come ormai abbiamo visto più volte, la tecnologia blockchain non è ancora pronta. Tra i limiti di prestazioni e la speculazione sulle criptovalute oggi non è realisticamente possibile pensare di gestire grossi volumi di transazioni sulle blockchain principali. In particolare, per quanto riguarda Ethereum, il percorso che porterà alla versione 2.0, che dovrebbe risolvere una parte rilevante dei problemi, non sarà realisticamente completato prima del 2023.
E visto che abbiamo richiamato alcuni problemi esistenti nella tecnologia blockchain, ne restano altri due principali relativi agli smart contract e agli NFT. Il primo risiede paradossalmente proprio nell’immutabilità della blockchain. Essendo gli smart contract dei programmi informatici, possono avere dei bug, cioè errori di programmazione, ma questi non possono essere corretti, essendo la blockchain immutabile, per cui si corre il rischio che si possano verificare (e si sono effettivamente già verificati in passato) problemi anche seri, dovuti ad errori umani di programmazione degli smart contract. Ad esempio, un programmatore potrebbe non avere considerato un caso specifico nel suo contratto e un hacker potrebbe approfittare di questo bug per fare eseguire al contratto operazioni indesiderate, come ad esempio trasferire tutto il denaro presente in un indirizzo a sé stesso.
Il secondo problema è relativo all’archiviazione dei “beni” collegati all’NFT. Dal momento che la blockchain non potrebbe essere in grado di conservare i file digitali, ad esempio le immagini digitali, a causa delle grosse dimensioni di questi file, nell’NFT può essere incluso solo un “puntatore” alla posizione del file. In caso contrario le dimensioni della blockchain “esploderebbero” in pochi giorni. Ma chi garantisce all’acquirente dell’NFT che fra 20 o 30 anni (o più) il file sarà ancora in quella posizione? Magari il sito web che lo ospita verrà chiuso e in questo caso il proprietario dell’NFT si ritroverebbe solo con un “puntatore” a un file inesistente. Come fare quindi a garantire che l’opera acquistata sarà sempre disponibile?
Al riguardo ci sono al momento diverse ipotesi di soluzione, tra cui la più quotata si chiama IPFS, cioè “InterPlanetary File System” ed è una sorta di archivio digitale distribuito su computer in tutto il mondo che dovrebbe garantire (ci si augura) di preservare “per sempre” i dati digitali. Nell’NFT si include quindi solo il “puntatore” al file (tecnicamente si chiama “hash del file”) che rappresenta in maniera univoca quel file tra tutti quelli esistenti al mondo.
Nonostante i problemi esistenti, comunque, gli NFT potranno rappresentare nei prossimi anni realmente una “rivoluzione” per svariati settori, consentendo la definizione di contratti con modalità che sono oggi solo immaginabili.
Siamo così arrivati alla fine di questa introduzione degli NFT e degli smart contract, ma per chi fosse interessato a vedere come si minta un NFT nella realtà, concludiamo considerando un esempio reale.
Ipotizziamo quindi che ArcheoWealth, invece della casa, voglia mintare e mettere in vendita l’NFT del suo primo articolo pubblicato su investireconbuonsenso.com, pubblicato il 6 dicembre 2014: “Semplicità e Buon Senso, i Segreti del Buon Investitore Stanno Tutti Qui”.
Per mintare l’NFT decide quindi di utilizzare un servizio web che si occupa di tutte le complessità tecniche, come “Foundation”, dove è presente una guida completa alle operazioni da eseguire, che gli consentirà di creare l’NFT e metterlo all’asta in pochi passaggi.
Prima di tutto deve acquistare degli Ether (ETH), presso un qualsiasi exchange, per poter pagare le commissioni della blockchain per la creazione dell’NFT. Dal momento che gli smart contract richiedono più risorse computazionali rispetto alle normali transazioni valutarie, in quanto richiedono che siano eseguiti dei programmi sui nodi della rete, le commissioni saranno più alte di quelle delle normali transazioni valutarie. Il gas infatti viene calcolato in base al numero e tipo di operazioni contenute nello smart contract.
Una volta acquistati gli ETH, questi vanno trasferiti in un wallet software, ad es. Metamask, che può quindi essere collegato al portale di “Foundation”, che preleverà gli ETH necessari a pagare la produzione dell’NFT.
Trasferiti gli ETH al portafoglio Metamask, ArcheoWealth può quindi caricare il file digitale che sarà messo in vendita come NFT. Come visto sopra, dal momento che nessuno può garantire che fra 20 o 30 anni il sito investireconbuonsenso.com sarà ancora attivo, ArcheoWealth deve convertire il post del blog in un’immagine (operazione molto semplice, è sufficiente premere “MAIUSC + Stamp” sulla tastiera e incollare l’immagine in Paint) e caricare l’immagine ottenuta sul sito di “Foundation” (è possibile caricare al momento immagini o video).
Immagine dal sito di Foundation
Fatto questo, resta solo da dare un titolo e una descrizione all’NFT, approvare il pagamento del “gas”, cioè delle commissioni, e l’NFT sarà mintato e collegato all’indirizzo Ethereum del portafoglio di ArcheoWealth, che tutti potranno consultare.
Immagine dal sito di Foundation
Fatto questo, ArcheoWealth potrà quindi mettere l’NFT all’asta utilizzando i servizi appositi forniti dal sito. E, visto che lo smart contract dell’NFT viene programmato da “Foundation” in modo da riconoscere all’autore il 10% di ogni vendita successiva, in caso di rivendite, il 10% di tutti gli importi che saranno pagati per l’NFT saranno inviati direttamente e automaticamente al portafoglio di ArcheoWealth.
Leggi anche: La Rivoluzione Blockchain #1