Mining
Il
mining è il processo attraverso cui le transazioni
crypto vengono raccolte, verificate e registrate in un registro digitale noto come
blockchain. Il lavoro svolto dai miner è essenziale per mantenere l'integrità della rete ed è anche responsabile dell'introduzione di nuove monete nel sistema.
All'interno del sistema bancario tradizionale,
la valuta fiat viene stampata e distribuita da istituzioni finanziarie e autorità governative - ma per la maggior parte delle criptovalute, l'emissione di nuove monete non è nelle mani di entità centralizzate. Invece, le nuove unità di criptovaluta vengono generate attraverso il processo di mining, che segue un insieme predefinito di regole stabilite dal protocollo sottostante. Mentre il protocollo definisce quali sono le regole principali, i cosiddetti
algoritmi di consenso delineano il modo in cui queste regole saranno seguite (ad esempio, durante la convalida delle transazioni).
Prendendo come esempio Bitcoin, i partecipanti al processo di mining sono chiamati
nodi di mining (o semplicemente miner) e svolgono un ruolo fondamentale per la sicurezza della rete blockchain. Il compito di un miner è quello di raccogliere le transazioni non confermate dalla memory pool e organizzarle in un
blocco candidato (candidate block) che cercherà di convalidare.
Quando crea un blocco candidato, un miner include una transazione in cui invia a se stesso la
ricompensa di blocco. Questa transazione è nota come transazione coinbase ed è spesso la prima a essere registrata in un blocco.
Una volta formato l'elenco delle transazioni non confermate, ogni transazione viene sottoposta ad hashing e i suoi output vengono organizzati in coppie. Queste coppie vengono poi sottoposte nuovamente ad hashing, producendo nuovi output che vengono anch'essi organizzati in coppie e nuovamente sottoposti a hashing. Il processo viene ripetuto finché non viene prodotto un singolo hash, denominato root hash o
Merkle tree.
Il root hash viene quindi combinato con l'hash del blocco precedentemente confermato, insieme a un numero pseudocasuale chiamato
nonce (oltre ad alcuni altri parametri). Questi elementi vengono poi sottoposti ad hashing, producendo l'hash del blocco candidato.
Tuttavia, il miner avrà successo solo se l'output risultante (hash del blocco) per il suo blocco candidato è inferiore a un valore predeterminato (target). Di conseguenza, il processo si basa sull'effettuare vari tentativi, ed è necessario eseguire numerose funzioni di hashing con nonce diversi per trovare un risultato valido. Il primo miner che trova un hash valido convalida il proprio blocco candidato e ottiene la ricompensa di blocco. L'intero processo richiede in media dieci minuti.
Una volta convalidato un blocco, viene aggiunto alla blockchain e i miner iniziano a lavorare sul blocco successivo. L'hash valido prodotto dai miner funge da prova del loro lavoro ed è per questo che l'algoritmo di consenso di Bitcoin è chiamato
Proof of Work. Ogni blocco confermato ha un hash unico che funge da identificatore.
La
ricompensa di blocco è definita dal protocollo Bitcoin e diminuisce ogni 210.000 blocchi (circa quattro anni). Inizialmente la ricompensa di blocco era di 50 BTC e ora è di 6,25 BTC.