Cos'è il Mining di Criptovalute?

06.12.2018

Il mining è uno degli elementi chiave che consentono alle criptovalute di funzionare come network peer-to-peer decentralizzati, senza bisogno di un’autorità centrale.

E’ il processo attraverso cui le transazioni tra utenti vengono verificate e aggiunte al registro pubblico della blockchain. Inoltre, viene utilizzato per introdurre nuove monete nella fornitura circolante.


Come funziona?

Un miner è un nodo all’interno del network che raccoglie transazioni e lavora per organizzarle in blocchi. Quando vengono effettuate delle transazioni, i nodi miner le ricevono e le verificano, aggiungendole alla memory pool e cominciando ad assemblarle in un blocco di transazioni.

La prima fase del processo di mining è produrre la hash di ciascuna transazione contenuta nella memory pool.

Prima di iniziare, il nodo miner aggiunge una transazione in cui si auto-invia la ricompensa del mining. Questa transazione viene indicata con il nome di transazione “coinbase”. E’ l’operazione attraverso cui vengono create monete ‘dal nulla’ e in gran parte dei casi è la prima transazione in un nuovo blocco.

Una volta generate, tutte le hash vengono organizzate in una struttura chiamata Merkle Tree, o hash tree. Così facendo le hash vengono abbinate in coppie producendo la hash del risultato, ripetendo il processo fino a raggiungere la “cima dell’albero”, chiamata anche root hash o Merkle root.

La root hash, insieme alla hash del blocco precedente e a un numero casuale chiamato nonce, viene inserita nell’header del blocco. Passando questo header in una funzione hash si produce un output che agirà da identificatore del blocco.

L’identificatore del blocco deve essere inferiore a un determinato valore imposto dal protocollo. In altre parole, la hash dell’header deve iniziare con un certo numero di zeri.

Questo valore target, conosciuto anche come difficoltà di hashing, viene ridimensionato regolarmente per garantire che la frequenza di creazione di nuovi blocchi rimanga proporzionata alla somma della potenza di calcolo del network.

I miner inseriscono l’header nella funzione hash più e più volte iterando ogni volta una nuova nonce, fino a quando qualcuno produce un hash valido. A questo punto, il nodo che ha prodotto l’hash trasmette il blocco al network. Tutti gli altri nodi controllano che la hash sia valida e aggiungono il blocco alla propria copia della blockchain, per poi passare al mining del blocco successivo.

Tuttavia, a volte può capitare che due miner trasmettano un blocco valido nello stesso momento e il network abbia a che fare con due blocchi concorrenti. I miner iniziano a lavorare sul blocco successivo basandosi sul blocco che hanno ricevuto prima. La competizione tra questi due blocchi continuerà fino a quando il blocco successivo verrà attaccato a uno dei concorrenti. Il blocco che viene abbandonato prende il nome di blocco orfano (orphan block o stale block). I miner di questo blocco interromperanno quello che stanno facendo e torneranno a lavorare sulla catena del blocco vincitore.


Le mining pool

La ricompensa del mining viene distribuita al miner che scopre per primo la hash valida, ma le probabilità di trovare l’hash sono pari alla sua porzione della potenza di mining totale del network. I miner con una piccola percentuale di potenza hanno pochissime possibilità di scoprire il blocco successivo da soli. Le mining pool sono state create per risolvere questo problema. La loro funzione è mettere in comune le risorse di più miner individuali, i quali condividono la propria potenza di calcolo per dividersi equamente la ricompensa, in base alla quantità di lavoro contribuito alla ricerca di un blocco.

Resta connesso per nuovi contenuti e dai un’occhiata agli altri video della Binance Academy!

Loading