Cos'è il mining di criptovalute?
Indice dei contenuti
Introduzione
Come funziona il mining?
Tutte le criptovalute possono essere minate?
Proof of Work (PoW)
Diverse metodologie di mining tra le criptovalute
CPU mining
GPU mining
ASIC mining
Mining pool
In chiusura
Cos'è il mining di criptovalute?
HomeArticoli
Cos'è il mining di criptovalute?

Cos'è il mining di criptovalute?

Principiante
Pubblicato Dec 6, 2018Aggiornato Mar 22, 2022
8m

TL;DR

Il mining si riferisce al processo di verifica e convalida delle transazioni blockchain. È anche il processo che crea nuove unità di criptovaluta. Il lavoro svolto dai miner richiede risorse computazionali elevate, ma è ciò che mantiene sicura una rete blockchain. I miner onesti e di successo vengono premiati per il loro lavoro con nuove criptovalute appena create e le commissioni di transazione.


Introduzione

Il mining è il processo tramite cui le transazioni crypto tra gli utenti vengono verificate e aggiunte al libro mastro pubblico della blockchain. Le operazioni di mining sono inoltre responsabili dell'emissione di nuove monete rispetto all'offerta già presente in circolazione.

Il mining è uno degli elementi chiave che consentono alla blockchain di Bitcoin di funzionare come un registro distribuito. Tutte le transazioni sono registrate su una rete peer-to-peer senza la necessità di un'autorità centrale. In questo articolo, parleremo del mining sulla rete di Bitcoin, ma il processo è comunque simile tra tutte le altcoin che adottano lo stesso meccanismo di mining.


Come funziona il mining?

Quando vengono effettuate nuove transazioni sulla blockchain, queste vengono inviate a una pool chiamata memory pool. Il lavoro di un miner consiste nel verificare la validità di queste transazioni in sospeso e di organizzarle in blocchi. Puoi pensare al blocco come una pagina del registro blockchain, in cui vengono registrate svariate transazioni (insieme ad altri dati).
Più in dettaglio, un nodo di mining è responsabile della raccolta di transazioni non confermate dalla memory pool e del loro assemblaggio per creare un blocco candidato. Dopodiché, il miner cercherà di convertire questo blocco candidato in un blocco valido e confermato. Ma per farlo, deve trovare una soluzione a un problema matematico complesso. Questo richiede molte risorse computazionali, ma ogni blocco minato con successo darà al miner una ricompensa di blocco, composta da una quantità di criptovaluta appena creata, più delle commissioni di transazione. Diamo un'occhiata più da vicino al processo di mining.


Fase 1 - Hashing delle transazioni

Il primo passo per minare un blocco è prendere le transazioni in sospeso dalla memory pool e inviarle, una per una, a una funzione di hash. Ogni volta che inviamo un dato ad una funzione di hash, genereremo un output di dimensioni fisse chiamato hash. Nel contesto del mining, l'hash di ciascuna transazione è costituito da una stringa di numeri e lettere che funzionano come un identificatore. L'hash della transazione rappresenta tutte le informazioni contenute in tale transazione.
Oltre all'hashing e all'inserimento di ogni transazione individuale, il miner aggiunge anche una transazione personalizzata in cui invia a sé stesso la ricompensa del blocco. Questa transazione viene definita transazione coinbase ed è il processo che porta alla creazione di nuove monete. Nella maggior parte dei casi, la transazione coinbase è la prima ad essere registrata in un nuovo blocco, seguita da tutte le transazioni in sospeso che il miner vuole convalidare.

Fase 2 - Creazione di un Merkle Tree

Dopo che ogni transazione è sottoposta ad hashing, tali hash vengono organizzati in una struttura chiamata Merkle Tree. Conosciuto anche come hash tree, il Merkle Tree si forma organizzando gli hash delle transazioni in coppie e quindi eseguendone l'hashing. I nuovi output hash vengono quindi organizzati in coppie e nuovamente sottoposti ad hash, e il processo viene ripetuto fino a quando non viene creato un singolo hash. Questo ultimo hash è chiamato anche root hash (o Merkle root) ed è fondamentalmente l'hash che rappresenta tutti gli hash utilizzati in precedenza per generarlo.

Fase 3 - Trovare un header del blocco valido (block hash)

Un header del blocco funziona come un identificatore per ogni singolo blocco, il che significa che ogni blocco ha un hash univoco. Quando viene creato un nuovo blocco, i miner combinano l'hash del blocco precedente con l'hash root del blocco candidato per generare un nuovo hash di blocco. Ma, a parte questi due elementi, devono anche aggiungere un numero arbitrario chiamato nonce.

Quindi, quando si tenta di convalidare il proprio blocco candidato, un miner deve combinare l'hash root, l'hash del blocco precedente e un nonce e inviarli tutti attraverso una funzione di hash. Il loro obiettivo è quello di creare un hash che può essere considerato valido.

L'hash root e l'hash del blocco precedente non possono essere modificati, quindi i miner devono cambiare il valore nonce più volte fino a quando non viene trovato un hash valido.

Per essere considerato valido, l'output (hash di blocco) deve essere inferiore a un determinato valore target, determinato dal protocollo. Nel mining di Bitcoin, l'hash del blocco deve iniziare con un certo numero di zeri. Questo è ciò che chiamiamo difficoltà di mining.

Fase 4 - Broadcasting del blocco minato

Come abbiamo appena visto, i miner devono eseguire più volte l'hash del header di blocco, con diversi valori nonce. Ripetono questo processo finché non trovano un hash di blocco valido. Il miner che lo trova trasmetterà il blocco alla rete. Tutti gli altri nodi controlleranno se il blocco e il relativo hash sono validi e, in tal caso, aggiungeranno il nuovo blocco alla loro copia della blockchain.

A questo punto, il blocco candidato diventa un blocco confermato e tutti i miner passano al mining del blocco successivo. Tutti i miner che non sono riusciti a trovare in tempo un hash valido, scartano il blocco candidato e la corsa al mining ricomincia.


Regolazione della difficoltà di mining

La difficoltà di mining viene adeguata regolarmente dal protocollo, così da assicurare che la velocità con cui vengono creati nuovi blocchi rimanga costante. Questo è ciò che rende l'emissione di nuove monete costante e prevedibile. La difficoltà si regola in proporzione alla quantità di potenza computazionale (hash rate) dedicata alla rete.

Di conseguenza, ogni volta che dei nuovi miner si uniscono alla rete, così da aumentare la concorrenza, la difficoltà di hashing salirà per impedire la riduzione del tempo medio per blocco. Al contrario, se molti miner decidono di lasciare la rete, la difficoltà di hashing diminuirà, rendendo meno difficile minare un nuovo blocco. Queste regolazioni mantengono costante il tempo di blocco, indipendentemente dalla potenza di hashing totale della rete.


Cosa succede se vengono minati due blocchi contemporaneamente?

A volte, due miner trasmettono contemporaneamente un blocco valido e la rete finisce per avere due blocchi validi che competono tra loro. I miner iniziano quindi a minare il blocco successivo in base al blocco ricevuto per primo. Di conseguenza, la rete si divide (temporaneamente) creando due versioni diverse della blockchain.

La competizione tra questi blocchi continuerà fino a quando non verrà minato il blocco successivo, in testa a uno dei due blocchi concorrenti. Quando viene minato un nuovo blocco, il suo blocco precedente sarà considerato il vincitore. Il blocco che viene abbandonato è chiamato orphan block o stale block e porta tutti i miner che hanno scelto questo blocco a tornare al mining sulla catena del blocco vincitore.


Tutte le criptovalute possono essere minate?

Bitcoin è l'esempio più popolare di criptovaluta minabile, ma non tutte le criptovalute seguono questo processo. Il mining di Bitcoin si basa su un algoritmo di consenso chiamato Proof of Work (PoW).


Proof of Work (PoW)

La Proof of Work (PoW) è il meccanismo di consenso blockchain, originariamente creato da Satoshi Nakamoto. È stato introdotto nel white paper di Bitcoin, nel 2008. In poche parole, la PoW determina come una rete blockchain raggiunge il consenso tra tutti i partecipanti distribuiti senza la necessità di intermediari di terze parti. Garantisce il consenso, richiedendo una notevole potenza di calcolo per disincentivare i malintenzionati.
Come abbiamo visto, le transazioni su una rete PoW sono verificate dai miner. Per vincere il diritto di minare il blocco successivo, i miner competono risolvendo complessi enigmi crittografici utilizzando dell'hardware specializzato per il mining. Il primo miner che trova una soluzione valida può quindi trasmettere il proprio blocco di transazioni alla blockchain e ricevere la ricompensa per il blocco.

La quantità di crypto presente in un block reward varia a seconda della rete. Ad esempio, su Bitcoin, un miner può ricevere un block reward pari a 6,25 BTC (questa è la quantità stabilita al momento della scrittura di questo articolo, ovvero a dicembre 2021). La quantità di BTC in un block reward diminuisce della metà ogni 210.000 blocchi (circa ogni quattro anni) per via del meccanismo di halving.


Diverse metodologie di mining tra le criptovalute

Non esiste un unico metodo per minare le criptovalute. Le apparecchiature e i processi cambiano man mano che emergono nuovi hardware e algoritmi di consenso. In genere, i miner utilizzano computer specializzati per risolvere le complesse equazioni crittografiche. Diamo un'occhiata a come funzionano alcuni dei metodi di mining più comuni.


CPU mining

Il mining tramite Central Processing Unit (CPU) comporta l'utilizzo della CPU di un computer per eseguire le funzioni di hash richieste dalla PoW. Quando Bitcoin era agli inizi, il costo e la barriera d'ingresso per il mining erano molto bassi. La difficoltà di mining poteva essere gestita da una semplice CPU, in modo che chiunque era in grado di provare a minare BTC e altre criptovalute.

Tuttavia, man mano che sempre più persone iniziavano a minare e l'hashrate della rete aumentò, il mining redditizio divenne sempre più difficile. Inoltre, l'ascesa di hardware specializzato nel mining e con una maggiore potenza di calcolo dedicata, ha reso alla fine quasi impossibile minare tramite CPU. Ad oggi, il mining tramite CPU non è più un'opzione praticabile, poiché tutti i miner utilizzano dell'hardware specializzato.


GPU mining

Le unità di elaborazione grafica (GPU) sono progettate per l'elaborazione in parallelo di un'ampia gamma di applicazioni. Sebbene siano generalmente utilizzate per i videogiochi o il rendering grafico, possono essere utilizzate anche per il mining.

Le GPU sono relativamente più economiche e flessibili rispetto al popolare hardware di mining chiamato ASIC. Alcune altcoin possono essere minate con le GPU, ma l'efficienza dipende dall'algoritmo di mining e dalla difficoltà.


ASIC mining

Un Application-Specific Integrated Circuit (ASIC) è progettato per svolgere un singolo task. Nel mondo crypto, tale hardware specializzato è sviluppato per il mining. L'ASIC mining è altamente efficiente ma costoso.

Il mining è una competizione. Per minare in modo redditizio, hai bisogno di un hardware di mining competitivo. Poiché gli ASIC miner sono la tecnologia d'avanguardia per il mining, il costo di una di queste unità è molto più elevato rispetto alle CPU o alle GPU. Inoltre, l'avanzamento continuo della tecnologia ASIC rende rapidamente non redditizi i vecchi modelli ASIC, il che significa che spesso devono essere sostituiti. Ciò rende l'ASIC mining uno dei modi più costosi per minare, anche senza tenere conto dei costi dell'elettricità.


Mining pool

Dato che la ricompensa di blocco viene concessa al primo miner di successo, la probabilità di trovare l'hash corretto è estremamente bassa. I miner con una piccola percentuale di potenza di mining hanno una probabilità molto ridotta di scoprire da soli il prossimo blocco. Le mining pool offrono una soluzione a questo problema.

Le mining pool sono gruppi di miner che mettono in comune le proprie risorse computazionali (hash power) per aumentare la probabilità di vincere le ricompense di blocco. Quando una pool trova con successo un blocco, i miner suddivideranno la ricompensa in modo imparziale tra tutti i membri della pool, in base alla quantità di lavoro con cui ha contribuito ogni membro.

Le mining pool possono avvantaggiare i singoli miner in termini di costi per hardware ed elettricità, ma il loro dominio nel settore del mining solleva preoccupazioni per un eventuale 51% attack sulla rete.


In chiusura

Il mining crypto è una caratteristica fondamentale di Bitcoin e di altre blockchain PoW. È una delle attività che mantiene la rete sicura e garantisce l'emissione costante di nuove monete. Il mining ha alcuni vantaggi e svantaggi, il più ovvio è il potenziale guadagno ottenuto dalle ricompense di blocco. Tuttavia, i profitti del mining possono essere influenzati da una serie di fattori, tra cui i costi dell'elettricità e i prezzi di mercato. Non vi è alcuna garanzia che realizzerai dei profitti, quindi prima di iniziare a fare mining, dovresti DYOR e valutare tutti i potenziali rischi.