HomeWikiGli Standard NFT, i Metadata e il web3

Gli Standard NFT, i Metadata e il web3

Comprendere gli standard NFT, i metadata di cui si compongono e la tecnologia alla base del web3, ci aiuta a comprendere meglio l’ecosistema nel suo complesso.

È innegabile che gli NFT abbiano contribuito a sdoganare la blockchain e le crypto nel mondo mainstream, portando un pubblico totalmente nuovo che ha principalmente visto negli NFT e nell’arte digitale, un’ottima opportunità per arricchirsi. 

Sempre più utenti si sono interessati ai Non-Fungible Token, facendo crescere in pochissimo tempo un mercato ancora inesplorato verso performance impressionanti. Nel prossimo futuro gli NFT cambieranno il modo in cui creiamo, consumiamo e distribuiamo contenuti digitali, aprendo a nuovi use-cases mai visti prima d’ora.

Per queste ragioni comprendere gli standard alla base di questo fenomeno, ci aiuta a capire anche la tecnologia e l’usabilità di ogni NFT e dei vari protocolli blockchain coinvolti.

I Non-Fungible Token (NFT)

Grazie alla blockchain siamo stati in grado di rendere univoco, per la prima volta nella storia, un oggetto digitale, permettendoci di acquistare e possedere file, risorse e proprietà digitali. Queste proprietà, che si presentano sotto forma di token digitale, possono essere scambiate e vendute proprio come qualsiasi altra risorsa. 

I Token Non Fungibili sono dei token unici e distinguibili da altri token, ma sopratutto, caratteristica più importante, non possono essere divisibili o frazionabili, distinguendoli da tutti gli altri token.

Gli NFT segnano quindi un’evoluzione degli asset basati su blockchain, fornendo agli utenti un token digitale differente dalle cryptocurrencies che dà il possesso di un oggetto digitale indivisibile e non duplicabile.

Sin dagli esordi dei CryptoKitties nel 2017, che misero a dura prova il network di Ethereum, il mercato degli NFT è cresciuto a dismisura segnando nuovi record non solo di crescita ma anche di vendita e volumi, approdando anche nelle case d’aste più importanti al mondo.

nft market size

Monetized Graphic, CryptoPunks e BAYC

Molti di noi sono partecipi di una tecnologia agli albori che potrà cambiare il futuro della finanza e di ciò che ci circonda Definire delle regole e attenersi ad esse è la base per una standardizzazione atta alla progettazione di nuovi paradigmi.

monetized graphics
Monetized Graphic, il primo NFT

Ethereum è la principale blockchain per la creazione (minting), la conservazione e lo scambio di NFT ed è qui che è nato il primo NFT. 

Ad una conferenza tra appassionati di tecnologia ed arte, Kevin McCoy e Anil Dash, effettuarono la prima transazione di un’immagine digitale su blockchain. Era il 2014 ed erano inconsapevoli che i Non-Fungible Token sarebbero esplosi dirompentemente entro qualche anno, portando nei mass media progetti come CryptoPunks e BAYC, battendo qualsiasi record di vendita per l’arte digitale. 

Nel marzo 2021, un’opera d’arte chiamata Everydays: The First 5000 Days è stata venduta per 69 milioni di dollari alla Christie’s Auction House.

bayc nft
Bored Ape Yacht Club, BAYCCryptoPunks di LarvaLabs

 

cryptopunks nft
CryptoPunks di LarvaLabs

Come è formato un NFT?

In questo articolo vedremo da cosa è composto un NFT, i suoi token standard e come si fa a caricarlo online.

Un NFT è composto da 3 oggetti:

  • Token Identifier (or ID)
  • Owner del Token
  • Metadata associati al token

dati nft

L’ID è semplicemente una rappresentazione numerica associata all’NFT e al suo possessore, che lo rendono distinguibile dagli altri. L’Owner è invece l’address associato al wallet del proprietario, ed infine i Metadata, il vero contenuto dei nostri Token Non Fungibili.

Metadata, il cuore degli NFT

Conservare dati all’interno di una Blockchain è una pratica molto costosa. Dimensione dei blocchi, della mempool, e costi di transazione la rendono un supporto poco adatto. Su Ethereum ad esempio non vi è abbastanza spazio sul blocco per poter archiviare un’immagine (Se non sottoforma di piccolo SVG, in grafica vettoriale). Lo storage massivo di immagini, video, gif o qualsiasi altro media digitale deve quindi essere salvato altrove online. Proprio per questo, tecnologie come IPFS o Arwave e servizi ad essi dedicati giocano un ruolo chiave nell’archiviazione decentralizzata. È per questo che si è scelto di inserire nella Blockchain solo i dati relativi all’NFT e non esso stesso, risparmiando così molto spazio e salvaguardando i costi. Ma da cosa sono formati nello specifico questi metadati?

Un metadato è sostanzialmente un file JSON che contiene:

  • Descrizione
  • Link al media digitale (gif, jpeg, …)
  • Caratteristiche (traits, attributi, …)

metadata opensea

ERC sta per Ethereum Request (for) Comments, esso delinea l’insieme di regole e istruzioni che gli sviluppatori devono seguire per implementare tutte le nuove funzionalità. Gli ERC sono sostanzialmente degli EIP (Ethereum Internal Proposal) con velleità principalmente dedicate ad applicazioni decentralizzate.

Come si può notare dall’immagine rilasciata da OpenSea, noto marketplace di NFT, lo smart contract, in questo caso basato su ERC-721, contiene l’address dell’Owner e il TokenURI, una speciale opzione che contiene il “luogo” dove i Metadati contenenti la caratteristiche dell’NFT, tra cui un URL Http esterno o su IPFS o ArWave, risiedono. Maggiori informazioni sui Metadata sul docs di Opensea.

Per comprendere meglio come si presentano, questi sono i Metadata dei famosi Meebits di LarvaLabs:

`{ “name”: “Meebit #12347”, “description”: “Meebit #12347”, “image”: “http://meebits.larvalabs.com/meebitimages/characterimage?index\u003d12347\u0026type\u003dfull\u0026imageType\u003djpg”, “attributes”: [ { “trait_type”: “Type”, “value”: “Human” }, { “trait_type”: “Hair Style”, “value”: “Ponytail” }, { “trait_type”: “Hair Color”, “value”: “Dark” }, { “trait_type”: “Glasses”, “value”: “Aviators” }, { “trait_type”: “Shirt”, “value”: “Tube Top” }, { “trait_type”: “Shirt Color”, “value”: “Green” }, { “trait_type”: “Pants”, “value”: “Leggings” }, { “trait_type”: “Pants Color”, “value”: “Blue Camo” }, { “trait_type”: “Shoes”, “value”: “Canvas” }, { “trait_type”: “Shoes Color”, “value”: “Gray” } ] }

L’idea alla base dei Metadata è quella di trovare una soluzione per descrivere le caratteristiche degli NFT anche ad un pubblico non specializzato come gli artisti e non solo agli sviluppatori, che possono appunto attenersi ad una serie di istruzioni per poter creare la loro collezione. Quello che serve ad un artista sono:

  • Creare la propria collezione o NFT singolarmente (immagini, gif, video)
  • Caricare i media online (AWS, cloud, IPFS, …) e ottenere un URL associato a ciascuna di esse che verrà poi inserito nei Metadati
  • Generare un file JSON unico per ogni media che conterrà i metadati come nello standard mostrato sopra (URL immagine, attributi/tratti, nome, ecc.)
  • Caricare tutti i file JSON sul supporto online desiderato (AWS, cloud, IPFS, …) e ottenere un URL associato a ciascuno di questi file JSON.

I servizi centralizzati come AWS o Cloud soffrono di due problematiche legate all’obiettivo che vogliamo raggiungere:

  • Centralizzazione: se il server viene hackerato o va giù anche solo temporaneamente il nostro file andrà perduto con esso o risulterà inaccessibile.
  • Location Based: questo tipo di server indicizza i file per nome, ciò significa che se caricassimo due file diversi con lo stesso nome (three.png) sovrascrivendoli avremmo un aspetto diverso dal precedente, ciò che in ambito NFT si cerca proprio di evitare dando univocità all’oggetto digitale.

Il sistema IPFS (Interplanetary File System) risolve questa problematica restituendoci come prodotto di questa procedura un CID (Content Identifier), che sarà non solo il nostro address IPFS, ma che dipenderà anche dal contenuto dei suoi metadati. 

Se questi dovessero cambiare, anche l’URL cambierà con esso, restituendo quindi file completamente diversi. Nel sistema adottato da IPFS è infatti impossibile restituire due immagini differenti a partire dallo stesso URL.

Inoltre il sistema IPFS è un meccanismo decentralizzato che permette di distribuire i file nella rete senza avere un server specifico. Questo rende il dato altamente resiliente ai problemi che invece incontra un sistema centralizzato come AWS o simili.

Benché tutto questo possa risultare complesso, per i più smanettoni è possibile fare delle prove con il repository fornito da Yomi per la generazione di Smart Contract per il deploy di NFT:

smart contract nft

Grazie a YOMI, abbiamo creato un tool per permettere al lettore di cimentarsi nella creazione dei Metadata su standard ERC-721. Al link della relativa pagina GitHub sarà possibile effettuare:

  • Upload: saremmo in grado di caricare il file che si vorrà rendere NFT. Esso verrà uploadato via IPFS e il link sarà inserito nel TokenURI dei metadata
  • Descrizione: potremmo inserire la descrizione che piu ci aggrada
  • Traits: sarà possibile inserire gli attributi che descriveranno l’immagine. Queste informazioni come abbiamo visto sono importanti per il rarity delle collezioni
  • Traits Value: informazioni aggiuntive sul tipo di attributo (Yes/No, More, Poor, 30, etc)

Una volta impostate queste caratteristiche il display sulla destra mostrerà i Metadata in formato JSON che sarà possibile inserire nello Smart Contract scritto in Solidity.

Cliccando su “Upload Metadata to IPFS” sarà possibile caricare sia i JSON che il file scelto direttamente su IPFS e mintare l’NFT che si sta creando firmandolo direttamente col proprio Metamask direttamente su Opensea!

smart contract metadata

Gli Standard più comuni

Come abbiamo già scritto, gli EIP (Ethereum Internal Proposal) legati agli NFT si sono presto trasformati in degli standard operativi chiamati ERC (Ethereum Request for Comments) diventando i protocolli dei token che seguono determinati requisiti. 

Questi standard sono fondamentali per interagire con gli Smart Contract e dar vita a nuove logiche di funzionamento nel mercato, permettendo:

  • Uno stesso linguaggio di facile integrazione tra le varie piattaforme
  • L’interoperabilità tra diverse chain che sono così in grado di “leggere” gli stessi protocolli

Di seguito riportiamo gli standard più comuni con una breve descrizione:

ERC-721

Creato nel gennaio del 2018, permise l’implementazione di API per smart contracts degli NFT, introducendo tutta una serie di informazioni (events) come l’ownership dell’NFT, il balance dell’address, i vari approval ed il TokenURI per poter avere i già citati Metadata.

ERC-721R

Di recente introduzione, è una versione del precedente 720 ma con delle caratteristiche nello smart-contract che abilitano l’utente ad essere rimborsato per un periodo di tempo pre-determinato. Si è parlato nel dettaglio di questo standard in un articolo specifico.

ERC-1155

Introdotto dal team di Enjin, permette di configurare token multipli, in un singolo smart contract, risparmiando in gas fees ed aprendo a nuove funzionalità come la possibilità di combinare Token Non Fungibili con token-fungibili

ERC-994

È un’estensione di ERC-721 che ha introdotto i DNFT, ovvero i Delegated-Non-Fungible-Tokens, che trovano applicazione nelle physical property. Si pone di risolvere problemi come il conflitto degli spazi geografici, la validità giuridica e la sovranità fisica della proprietà, e infine la compatibilità con i contratti finanziari.

ERC-809

Questo standard è stato pensato per noleggiare i propri NFT attraverso un’API che consente il noleggio di qualsiasi “rival good”, ovvero qualsiasi asset il cui uso da parte di un utente non sia contemporaneamente possibile da un altro.

ERC-1201

Analogamente a ERC-809, lo standard ERC-1201 propone di tokenizzare i diritti di noleggio anziché consentirli semplicemente. In questo modo è possibile sub-noleggiare l’asset semplicemente scambiando il token.

ERC-998

È uno standard che permette di trasferire sia un NFT come ERC-721 o ERC-20 fungibile. Trasferire un token ERC-998 significa trasferire l’intera gerarchia di items ad esso collegati. Pensate all’NFT di un personaggio di un videogioco P2E che nel momento in cui viene venduto trasferisce al nuovo proprietario tutti gli altri item: armatura, elmo, armi, etc.

Quello che accade è che un token ERC-998 sia componibile con un ERC-721, in una serie di estensioni che sono state appositamente specificate di seguito:

  • ERC998ERC721 componibili top-down che ricevono, trattengono e trasferiscono token ERC721
  • ERC998ERC20 componibili top-down che ricevono, conservano e trasferiscono token ERC20
  • ERC998ERC721 componibili bottom-up che si collegano ad altri token ERC721
  • ERC998ERC20 token componibili bottom-up che si collegano ai token ERC721 ma con un token ERC-20

dNFT: Dynamic NFT

Abbiamo visto come la caratteristica primaria degli NFT risieda nella staticità dei suoi dati che rendono unico ed immutabile il suo contenuto, aprendo a contesti e mercati che abbiamo ampiamente discusso. Benché tali caratteristiche rappresentino un punto di forza nel mondo digitale per aver creato “scarsità” ed “unicità” laddove non vi era, esse potrebbero rappresentare un limite per chiunque voglia mintare NFT e renderli mutabili nel tempo anziché immutabili, suggerendo nuove logiche di funzionamento.

Se è vero che la modifica dell’URI legato al link IPFS all’interno dei metadati di un NFT, possa di fatto cambiare l’aspetto visivo dell’NFT (e che quindi questo sia già possibile con standard come ERC-721), è altrettanto vero che tale modifica sarebbe ad appannaggio dei soli sviluppatori, che potrebbero così cambiare i tratti a proprio piacimento, invalidando la caratteristica trustless a cui un sistema decentralizzato mira. Serve quindi un protocollo che mantenga immutata la caratteristica trustless ma che rende mutabili i dati all’interno dell’NFT.

La GameFi ad esempio, necessità di un’altissima interattività. Qui gli NFT impediscono il miglioramento di armi, personaggi o oggetti ad esempio, vincolando il giocatore al minting degli stessi e al loro re-selling nel mercato secondario. Ma se volessimo progredire nel gioco assieme ai nostri items, rivendendo magari ciò che con cura abbiamo migliorato durante il gioco, saremmo impossibilitati a farlo. È qui entrano in scena i dNFT, ovvero gli NFT dinamici.

I dNFT introducono la mutabilità dinamica dei metadati in base a condizioni esterne ad esso, andando a cambiare il codice contenuto nello smart contract ed implementando delle modifiche automatiche in merito ai cambiamenti da applicare ai metadata e al quando farli accadere. Tali condizioni esterne possono essere fornite dagli Oracoli, feeder di terze parti, che collegano la blockchain a sistemi esterni, fornendo nuove informazioni e consentendo agli NFT dinamici di cambiare costantemente. Citiamo tra i più famosi Chainlink.

chainlink oracles

NFT e il futuro del web3

Il susseguirsi delle implementazioni legate agli NFT ha sfornato centinaia di EIPs ed ERCs negli ultimi anni, introducendo use-cases innovativi. Questo progresso non conosce stasi, proiettandosi freneticamente verso ILR (In real life) e il Phygital, cercando di imporsi nel mondo reale sopperendo ai limiti attuali e servendosi della tecnologia di cui abbiamo parlato. 

Risulta difficile credere che una tecnologia simile rimanga confinata alla digitalizzazione di opere d’arte o al gaming, ma che trovi invero terreno fertile in applicazioni e servizi non ancora del tutto esplorati.

L’innovazione e il progresso degli NFT travolgeranno probabilmente diversi mercati, sdoganando le potenzialità del web3. Collegare creator digitali e users senza bisogno di altri intermediari è ciò che il nuovo internet si prefigge come obiettivo.

Gli NFT consentiranno in futuro di creare e costruire nuove forme di proprietà, ma questo riserba sia diritti che doveri.

La proprietà è il fulcro della civiltà.

(Leon Samson)

RELATED ARTICLES

MOST POPULARS

GoldBrick