Token fungibili e non (NFT)

NFT

Introduzione

Per capire lo scopo dei token fungibili e non (NFT) bisogna fare un passo indietro. All’inizio dell’era crypto esisteva un solo tipo di asset digitale: la valuta. In particolare Bitcoin è un sistema pensato proprio per gestire un nuova valuta digitale e centralizzata. Questa ha lo scopo di avere tutte le caratteristiche di una valuta fisica ma senza un ente centrale che la può coordinare. Vedi il mio precedente articolo Tutto quello che c’è da sapere sui Bitcoin.

Con l’avvento di Ethereum si è superato il concetto di valuta, infatti si parla di “piattaforma distribuita” in quanto, oltre alla valuta (nello specifico ETH) è stata creata la possibilità di sviluppare anche gli smart contract (vedi Cosa sono gli smart contract?) che di fatto sono degli script che girano sulla rete blockchain.

E se io scrivessi uno smart contract che gestisce degli asset digitali rappresentanti un determinato bene in una determinata piattaforma?” Good point.

Una volta che sviluppo la possibilità di creare del codice all’interno della blockchain le possibilità sono infinite!

Gli asset digitali gestiti da uno o più smart contract vengono chiamati token, che possono rappresentare qualsiasi cosa: soldi, servizi, tempo, azioni, obbligazioni, bene virtuale, un gioco…

La comodità di rappresentare qualcosa come token è che possiamo permettere agli smart contract di interagire con loro, quindi scambiarli, crearli o distruggerli in modo completamente virtuale e decentralizzato.

La differenza con una moneta è che il token è pensato funzionante solo in una determinata piattaforma: chi ha sviluppato Binance ha pensato di sviluppare anche il token BNB come token per poter pagare i servizi della piattaforma o genericamente permettere a questa ultima di funzionare. In alcuni casi tali token sono diventati talmente grandi da diventare simili ad una valuta, per cui possono essere scambiati anche all’esterno della piattaforma che li ha creati.

Tokenizzazione

La tokenizzazione è quel processo per cui rappresentiamo un certo bene nel mondo in token, al fine di custodirli o scambiarli su blockchain. Questo processo permette quindi il passaggio dal mondo reale a blockchain decentralizzata. Qualora il bene nel mondo reale sia fungibile verrà tokenizzato con un token di quel tipo, altrimenti con un NFT. L’unione dei due permette di tokenizzare, potenzialmente, qualsiasi bene.

Cosa significa avere un token?

Un token contract è semplicemente uno smart contract su Ethereum che contiene un mapping tra indirizzi e saldi e metodi per aumentare o diminuire questi saldi.

mapping (address => uint) public balances;

Quindi “inviare token” di fatto significa “chiamare un metodo su uno smart contract che riduce il mio saldo e ne aumenta dello stesso valore quello di qualcun altro”.

Qualcuno quindi “ha un token” se, all’interno di tale smart contract, ha un bilancio maggiore di zero. Semplice.

Token fungibili

Un token fungibile è un token interscambiabile con un altro token dello stesso tipo. Ogni token ha lo stesso valore, dona lo stesso diritto, ed è interscambiabile. Il bene fungibile per eccellenza è il denaro (o le criptovalute in generale) e sono solitamente fungibili tutte le cose prodotte in serie: un esempio di bene fungibile, nel mondo reale, è una azione di una azienda, una banconota, una opzione, un etf, un buono esselunga da 100€.

Ogni banconota da 5€ ha lo stesso valore, posso scambiare la banconota X per la banconota Y senza che vi sia alcuna differenza.

Nella blockchain posso avere token fungibili rappresentanti una “moneta” (come BNB (BNB) o Tether USD (USDT)): scrivo “moneta” tra virgolette in quanto si comportano come una moneta effettiva anche se, di fatto, sono più vicini a dei buoni spesa di un negozio che a delle monete (vedi Token ERC20, stablecoin, ICO. Un po’ di chiarezza).

Su ethereum lo standard ERC20 definisce i metodi che deve avere uno smart contract rappresentante un token fungibile, un elenco dei token in questione lo puoi trovare qui.

Token non fungibili

The first 5000 days, uno degli NFT più famosi

Un token non fungibile (NFT) è un tipo speciale di token concepito per fornire la rappresentazione digitale di un oggetto unico, virtuale o fisico. Un bene infungibile è un bene che esiste in un solo esemplare o ha caratteristiche intrinseche tali da renderlo infungibile; un esempio, nel mondo reale, di oggetto unico può essere la carta di identità, la propria automobile, la propria casa, una opera d’arte e così via.

Un token non fungibile è per definizione unico al mondo e non interscambiabile con nessun altro (a differenza del token fungibile). Attenzione, interscambiabile non vuol dire scambiabile! Gli NFT possono essere scambiabili analogamente ai token fungibili: posso scambiare il token della mia auto per il token della tua auto senza problemi, ma il risultato sarà diverso dallo scambiare una banconota da 5€ con una altra banconota da 5€. Nel primo caso dopo la transazioni vi sono delle differenze, nel secondo caso no.

A differenza delle transazioni in criptovaluta, nelle transazioni aventi ad oggetto gli NFT viene quindi indicato (oltre al prezzo di acquisto) anche il codice di identificazione dell’oggetto creato (o appena scambiato) e, attraverso il sistema della blockchain, tali dati non possono essere alterati.

L’idea di creare degli oggetti digitali unici da collezione non è nuova, la novità è che la scarsità e l’unicità dei token ERC721 sono dimostrabili senza che vi sia alcun ente centrale che ne confermi l’autenticità.

Se la criptovaluta e i token hanno il potenziale per imporre e garantire la proprietà personale del denaro e dei beni intercambiabili, i token non fungibili possono fare lo stesso per i beni unici.

Utilizzo degli NFT

  • Arte. con gli NFT è possibile per un artista (sia di arte classica ma anche musica, cinema…) creare una opera non falsificabile.
  • Collezionismo. Data l’unicità dell’NFT, questi possono essere usati per creare dei nuovi oggetti da collezione digitale la cui proprietà è garantita.
  • Gaming: possono essere creati giochi basati su oggetti unici da collezionare (il più famoso è AxieInfinity)
  • Beni virtuali. Ogni bene virtuale unico può essere tokenizzato. Può essere un dominio (vedi Ethereum Name Service) o può essere delle terre in un videogioco (vedi Decentraland e Cryptovoxels).
  • Beni del mondo reale. Analogamente ai beni virtuali anche i beni nel mondo reale possono essere tokenizzati per dimostrare che qualcuno possiede un dato diritto su di un terreno, una casa, una auto e così via.
  • Accesso a club esclusivi: Come ha insegnato Bored Ape Yacht Club gli NFT possono essere utilizzati per poter accedere a dei club esclusivi: solo chi possiede un determinato token può entrare in questi club.

Come evitare gli NFT di NFT

Cosa mi impedisce di creare un NFT a partire da una immagine scaricata di un altro NFT? Alla fine sono esattamente indistinguibili.

Per certificare l’autenticità di un NFT la blockchain viene in aiuto: dato che è possibile vedere tutti i passaggi di proprietà che ha avuto un determinato token è ottenere il wallet originale che lo ha creato dal nulla (mintato). Se questo ultimo è un wallet “certificato” tra quelli ufficiali allora l’NFT è originale, altrimenti no.

Per esempio se il wallet che ha mintato una Bored Ape è uno dei wallet ufficiali dello Bored Ape Yacht Club conseguentemente posso concludere che l’NFT è autentico.

ERC-721

Analogamente come esiste lo standard ERC20 per sviluppare uno smart contract rappresentante dei token fungibili (vedi Token ERC20, stablecoin, ICO. Un po’ di chiarezza), esiste anche lo standard per i token non fungibili chiamato ERC-721.

In particolare tutti gli NFT sono dei token (quindi con un valore univoco contract address) ma che hanno un ulteriore campo uint256 chiamato tokenId, che è l’identificativo univoco dell’oggetto non fungibile in questione. La coppia quindi address e tokenId è unica a livello globale. Tipicamente da dApp da cui avrai comprato l’NFT avrà un convertitore da tokenId all’opera.

E’ importante sottolineare che l’oggetto in questione (per esempio l’immagine NFT) non risiede sulla blockchain ma su un database esterno. Quello che effettivamente possiedo è il puntatore univoco a quel record di quel database contenente l’immagine.

Lo standard ERC-721 impone allo sviluppatore di smart contract di fornire funzionalità per il trasferimento di token da un account a un altro, la richiesta del saldo corrente di token di un account, del proprietario di un token specifico, la quantità totale di token disponibili sulla rete, la possibilità di approvare che una quantità di token di un account possa essere spostata da un account terzo.

Per approfondire tutte le specifiche tecniche consiglio vedi: https://ethereum.org/it/developers/docs/standards/tokens/erc-721/

Su Etherscan è possibile visualizzare tutti gli smart contract che rispettano lo standard ERC72, un esempio è The Ethereum Name Service (ENS) che è il corrispettivo de DNS (che permette di trovare un url con un nome leggibile invece di un indirizzo IP) ma per una risorsa all’interno della blockchain, passando quindi da un hash ad un nome leggibile come “my-amazing-website.eth”.

Indice

Share
Ultimi articoli

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)