Panoramica dei principali standard di Ethereum

Standard Ethereum

ERC Standard

Ethereum è una rete decentralizzata di computer con due funzioni di base: la blockchain in grado di registrare le transazioni avvenute sulla rete e l’EVM (Ethereum Virtual Machine) in grado di produrre ed eseguire gli smart contracts sulla piattaforma. Grazie a queste due funzionalità è possibile supportare Dapp e ICO, sulle quali gli sviluppatori creano i propri progetti utilizzando la potenza di calcolo della rete in cambio di una spesa in Ether (ETH).

In base allo scopo, è possibile creare dei token ERC 20 che rappresentano una valuta, delle quote di una società, dei punti di un programma di fidelizzazione o il corrispettivo di una percentuale di proprietà immobiliari. 

Cos'è un ERC 20 e come funziona?

ERC è l'acronimo di Ethereum Request for Comments, 20 rappresenta il numero univoco identificativo della proposta. I token ERC 20 sono progettati e utilizzati esclusivamente sulla piattaforma Ethereum e sono un elenco di standard che permettono ai token di essere creati, condivisi, scambiati o depositati su un wallet. 

ERC 20 è il linguaggio universale utilizzato da tutti i token della rete Ethereum, per essere utilizzato ha la necessità di rispettare delle determinate caratteristiche comuni a tutta la rete che semplificano il lavoro degli smart contract. Queste regole sono semplici set di funzioni che gli smart contract devono implementare. I contratti intelligenti che implementano questi standard possono essere utilizzati tramite un'unica interfaccia e possono essere elencati per gli scambi crittografici senza alcun lavoro tecnico aggiuntivo. 

Il principale vantaggio nell'avere un modello standard condiviso e utilizzato da tutti è che consente l'implementazione di un'API standard per i token all'interno degli smart contracts. Qualsiasi applicazione (dApp) o smart contract può interagire con un token dal modello predefinito senza la necessità di conoscere altri dettagli. Quindi il processo si semplifica avendo una modalità che permette a chiunque di interagire con i token come se fossero tutti uguali.

La comunità Ethereum ha creato questi standard con tre regole opzionali e sei obbligatorie, un insieme di funzioni che il codice dei token deve avere.

La parte opzionale può essere utilizzata per migliorare l'usabilità, ma le interfacce e gli smart contract non devono aspettarsi che questi valori siano presenti.

Ad esempio: 

  • Nome token: Orange
  • Simbolo: RNG
  • Decimale (fino a 18): 3 (divisibilità del token, in questo caso 0.001)

La parte obbligatoria, è lo standard comune necessario per poter configurare un token ERC 20.

  • totalSupply: identifica il numero totale di token ERC-20 creati;
  • balanceOf: il numero di token che un determinato indirizzo ha nel proprio account;
  • transfer: consente di trasferire un determinato numero di token dalla fornitura totale a un determinato account utente;
  • transferFrom: è la funzione che consente di trasferire i token da un utente all'altro;
  • approve: verifica una transazione rispetto alla fornitura totale di token, impedendo la possibilità che ne siano creati nuovi rispetto al numero iniziale

ERC20

Una caratteristica da tenere a mente per il proseguo dell’articolo è che i token ERC 20 sono fungibili, ossia non hanno una specifica individualità e sono intercambiabili, nello scambio e nell'uso. La differenza tra questi token e una criptovaluta come Litecoin è che i token ERC20 sono sulla rete Ethereum, ospitati da indirizzi Ethereum e inviati tramite transazioni Ethereum. 

Tuttavia, stanno nascendo altri modelli di token con caratteristiche diverse per lavorare al meglio su casistiche più specifiche.

ERC 721 

I token ERC 721 offrono la possibilità di emulare oggetti rari e collezionabili. Questo standard è stato proposto da Dieter Shirley alla fine del 2017 e ha la caratteristica principale di permettere di creare token non fungibili, il valore sarà dato dalla risultante dell’insieme dei loro attributi, come unicità e rarità. Come si può notare dalle svariate applicazioni presenti, ad esempio CryptoKitties, Decentraland e CryptoPunks, i token non fungibili hanno dimostrato di essere prodotti molto richiesti.

Tuttavia, la memorizzazione di dati sulla blockchain che indicano le caratteristiche che definiscono ciascun token è estremamente costosa. Per ovviare questo problema è possibile memorizzare dei riferimenti, ad esempio un hash, agli attributi di ciascun token sulla blockchain. Questo permette ad un programma esterno alla catena di eseguire la logica per trovare più informazioni sul token. Questi “riferimenti” sono dei metadati, ossia delle informazioni che descrivono un insieme di dati.

ERC 721

ERC 1155

Il token ERC 1155 è ispirato dal design del ERC 721, ed è stato ideato per ovviare il problema che ogni singolo oggetto richiede l’implementazione di uno smart contract separato sulla blockchain. Ciascuno di questi, a sua volta, utilizza lo stesso codice utilizzato da tutti i token con piccole modifiche al nome o al numero di cifre decimali. Quindi ogni singolo nodo della rete dovrà mantenere memoria del codice e dell'interfaccia di ogni token per sempre, questo provoca un enorme spreco di dati.

I token ERC 1155 adottano un nuovo approccio, tutti gli articoli sono memorizzati in un unico smart contract, limitando al minimo i dati necessari da inserire per distinguere un token dagli altri. Lo smart contract contiene i dati di configurazione degli ID dei token e tutte le caratteristiche che regolano il suo storage, andando a dimezzare il numero di transazioni necessarie per scambiare un token.

Diventa possibile inviare un qualsiasi numero di elementi, a uno o più destinatari, in un'unica transazione, con lo scopo di ridurre le fees ed evitando la congestione sulle pool di Ethereum.

I token ERC 1155 permettono, inoltre, di poter creare sia token fungibili (come ERC 20) sia non fungibili (ERC 721) dando la possibilità agli sviluppatori di programmare in maniera molto più libera ed efficace rispetto agli utilizzi specifici richiesti da un determinato token. 

Conclusioni

I token ERC 20 hanno permesso la crescita dell’intero sistema. Avendo agevolato lo sviluppo di token grazie alla standardizzazione delle funzioni, i progetti nati in seno alla piattaforma Ethereum hanno potuto avere luce in maniera più semplice, richiedendo agli stessi sviluppatori un livello di conoscenza del codice decisamente più basso, rendendo più accessibile il sistema. In questo momento però, la necessità di creare progetti sempre più complessi richiede di sperimentare nuove forme di standard, come possono essere gli ERC 223, ERC 621, ERC 827. Ciascuno con nuove caratteristiche e funzionalità che si adattano a richieste sempre più complesse e diverse. Nel caso specifico, ERC 1155 nasce come conseguenza dell'esigenza di un team di programmatori che voleva poter creare dei videogiochi dove gli oggetti al loro interno potessero avere tal volta l’attributo di fungibilità mentre altre volte no, questo ha portato alla creazione di un possibile nuovo standard. Lo sviluppo di questo sistema sarà figlio delle nuove esigenze.

Michele Centomo avatar
Michele Centomo

Passionate about cryptocurrencies and blockchain since 2014. Economic study at the Università Cattolica del Sacro Cuore and trying to find out as much as possible about Fintech.