Principi di minting non sequenziale

Indice argomenti

1. Mining o minting?

Hai ragione.
Mining e minting non sono concetti poi così diversi in ambito blockchain.
Entrambi indicano il processo di creazione di nuove criptovalute o nuovi token e asset digitali. 

Questo non significa però che possiamo considerarli sinonimi.

Se è vero che sia mining che minting prevedono la creazione di nuovi blocchi all’interno di una catena blockchain, è anche vero che questa creazione avviene attraverso due meccanismi di consenso e, dunque, due procedure di creazione dei token molto diverse.

Il mining, infatti, ricorre al meccanismo della Proof- of-Work, per cui la validazione di ogni nuovo blocco da parte dei miner avviene attraverso la soluzione di problemi matematici complessi e richiede una potenza computazionale molto elevata.

Il minting, invece, utilizza il meccanismo della Proof-of-Stake, che prevede la validazione dei blocchi tramite un processo di staking. Non è cioè necessario né disporre di grande potenza computazionale né risolvere algoritmi complessi: basta dimostrare di possedere i requisiti previsti da specifici smart contract

Qual è il principale vantaggio del minting?
Non solo un minor dispendio di energia e, dunque, una maggior efficienza economica, ma anche un tempo di creazione dei blocchi decisamente minore, con un periodo di conferma per la singola transazione che scende da 10 minuti a circa 10 secondi.

2. Minting e smart contract: come gestire la sequenzialità?

Il minting è un processo efficiente e fluido da tanti punti di vista.
Questo però non significa che non comporti nodi da sciogliere. 

La difficoltà principale consiste nel fatto che l’impiego degli smart contract chiama in causa condizioni di esecuzione diverse rispetto a quelle di un consueto programma informatico.

Per poter raggiungere il consenso all’interno della rete, infatti, è necessario che tutti i nodi, una volta ricevuti input omogenei, possano ripetere l’esecuzione del contratto ottenendo i medesimi risultati. È quella che in informatica viene definita “esecuzione deterministica”. 

È evidente che questo processo e queste condizioni sono in antitesi con la possibilità di generare valori randomici all’interno dei contratti, ossia valori differenti tra i vari nodi, che porterebbero a risultati di output diversi tra loro.

Cosa significa questo?
Che non è possibile creare fonti di generazione casuale, “true randomness” direttamente on-chain.

Questo è un problema che emerge con frequenza durante la fase di definizione del meccanismo di minting degli NFT.
E cosa ne deriva?
Accade che l’estrazione dell’indice del nuovo token eseguita in modo sequenziale o comunque prevedibile fa si che diventi possibile prevedere il prossimo token che verrà estratto e, dunque, mettere in atto strategie per, ad esempio, evitare i token meno rari.

3. Il meccanismo di minting non sequenziale: le possibili soluzioni

Quali sono le possibili soluzioni tecnologiche a questo problema?
Come assicurare un meccanismo di minting non sequenziale?

Esistono 3 possibili strade da percorrere, ciascuna con le sue potenzialità e i suoi svantaggi.
Vediamole insieme. 

L’utilizzo degli oracoli

L’utilizzo di un oracolo è uno dei metodi più diffusi per ovviare a questo problema.
Permette, infatti, di generare la randomness off-chain e di portarla poi e renderla disponibile on-chain. 

Il servizio di oracoli più famoso per questo compito è Chainlink VRF (Verifiable Random Function), che può essere chiamato direttamente da smart contract per ottenere dei numeri casuali. 
Qual è lo svantaggio principale di questa soluzione?
Ogni chiamata ha un costo, che deve essere necessariamente corrisposto nel token LINK, nativo di Chainlink stessa.

La scelta di parametri dei blocchi

Un altro metodo che viene utilizzato spesso prevede la generazione di indici pseudorandomici a partire da parametri come il timestamp del blocco.
Questi indici possono essere utilizzati per estrarre dei valori da una lista che è stata precedentemente caricata sullo smart contract. 

Cosa avviene però con questa soluzione?

Che l’estrazione non è totalmente randomica, perché il parametro può essere leggermente manipolato dai miner, per quanto, nella pratica, è estremamente difficile che essi riescano ad influenzare il processo come di minting.

Cosa ancora più importante, diventa necessario gestire estrazioni da migliaia di elementi – pensa ad esempio alle collezioni NFT da 10k token – per procedere poi a caricarli sullo smart contract incorrendo così in costi e complicazioni tecniche.

La soluzione del team di KNOBS

Esiste anche una terza possibile soluzione, ideata dal nostro team di developer specialisti nello sviluppo su blockchain.

Vuoi scoprirla?
Partiamo dal presupposto che il grado di randomicità (o pseudorandomicità) che abbiamo illustrato al punto precedente sia accettabile. 
E utilizziamo come parametri pseudorandomici da cui generare il numero casuale il timestamp e l’hash del blocco. 

Altro dettaglio importante: per eliminare ogni criticità relativa al caricamento della lista degli elementi estraibili on-chain sfruttiamo una struttura dati presente in Solidity, i mapping.
Diventa così sufficiente indicare allo smart contract il range di valori ammessi fornendogli semplicemente l’estremo inferiore, ossia il valore minimo, e l’estremo superiore, cioè il valore massimo, dell’intervallo. 

Cosa otteniamo con questa strategia?
Un processo nettamente più efficiente, che permette di ridurre in modo sensibile i costi di setup del contratto.

Interessante, no?

Vuoi scoprire di più sulla tecnologia blockchain
e su come puo' far crescere il tuo business?

|   Chi siamo

KNOBS è una società di sviluppo software specializzata in tecnologia blockchain. Dal 2014.

|   KNOBS srl

Bastioni di Porta Volta, 9
20121 Milano (MI) – Italia
info@knobs.it
knobs@legalmail.it
P. IVA 08560240965
SDI X2PH38J

|   Orari di apertura

Dal lunedì al venerdì 9.00 – 18.00

|   Seguici

|   Newsletter

Iscriviti alla newsletter e ricevi subito il nostro PDF
Blockchain in parole semplici