Il mining è il modo utilizzato dal sistema bitcoin e dalle criptovalute in generale per
emettere moneta.
La rete bitcoin memorizza le transazioni all'interno di strutture di dati chiamate in gergo "
blocchi". Affinchè un blocco possa essere aggiunto alla
catena dei blocchi, ovvero all'enorme database pubblico contenete
tutte le transazioni in bitcoin, è necessario che un elaboratore lo "chiuda" trovando un particolare codice, che può essere unicamente azzeccato a furia di tentativi. Questa operazione cristallizza il blocco, impedendo qualsiasi modifica futura, e chi trova tale codice è ricompensato con una certa quantità di bitcoin (attualmente 25), più tutte le tasse delle transazioni da lui inserite nel blocco, come incentivo alla "donazione" di tempo macchina alla causa del bitcoin. Questa operazione è chiamata in gergo
mining, nome che deriva dal parallelismo bitcoin-oro, nel quale il reciproco è costituito dai minatori che cercano strenuamente le pepite d'oro nella roccia.
Un po' di storia
Quando fu progettata la rete bitcon il suo creatore si trovò davanti al problema di come emettere nuova moneta. Tutti i sistemi monetari mondiali emettono moneta attraverso le banche centrali, ma la decentralizzazione del bitcoin richiede un metodo di generazione della moneta altrettanto decentralizzato. La soluzione fu di progettare il sistema affinchè elargisse bitcoin come premio ai componenti della rete che forniscono potenza elaborativa, necessaria a fortificare e strutturare la rete stessa,
secondo un sistema casuale studiato in modo da restituire bitcoin in modo proporzionale alla potenza computazionale fornita.
Inizialmente, l'unico modo per minare era utilizzare il client originale abilitando la funzione di "generazione monete", permettendogli di usare tutto il tempo libero della CPU per cercare di chiudere i blocchi. Dal momento che il bitcoin era ancora agli albori e i partecipanti erano molto pochi, lasciando un PC 24h/24 ci si poteva ragionevolmente aspettare di generare migliaia di bitcoin al giorno. Non bisogna dimenticarsi, tuttavia, che in questa fase il bitcoin non aveva praticamente valore o utilità, il mining era poco più che una donazione a fondo perduto per il bene del progetto.
Il sistema bitcoin è in grado di autoregolarsi: modifica la difficoltà del lavoro necessario a chiudere un blocco in modo tale che in tutta la rete si generi una media di 6 nuovi blocchi ogni ora (si veda "Cosa è la Difficoltà?"). Col tempo, sempre più persone si sono avvicinate al mondo bitcoin, e di conseguenza al mining, aggiungendo la loro potenza elaborativa alla rete. Questo ha causato l'aumento della difficoltà, diminuendo il guadagno medio giornaliero per singola macchina da migliaia di bitcoin al giorno a pochi centesimi, e portando inoltre minatori a unirsi in "gilde", le cosiddette "mining pool", il cui scopo è garantire un afflusso di denaro più costante rispetto al mining in solo. L'aspetto positivo di questo aumento di difficoltà è stato il consentire la nascita di una certa domanda e di un mercato, fornendo quindi al bitcoin un valore tangibile e una certa liquidità. Questo a sua volta spinse la nascita del mining "professionale", ovvero il costruire potenti macchine ad-hoc con il solo scopo di lasciarle accese 24h/24 7g/7 a minare (i cosiddetti "
mining rig") e rivenderne il ricavato sul mercato, o addirittura vendere contratti o azioni che consentono agli investitori di guadagnare dal mining senza dover costruire, configurare e gestire gli appaati necessari.
Nel frattempo il mining di bitcoin si è specializzato, passando da usare CPU a GPU (Schede grafiche), a FPGA (dispositivi logici programmabili) e infine ad ASIC (microprocessori costruiti su misura per un preciso compito). Al giorno d'oggi il mining di bitcoin è una processo che, per essere remunerativo, richiede competenza, hardware dedicato dal costo elevato e investimenti non trascurabili. D'altro canto la disponibilità di molti computer un tempo usati per minare bitcoin e improvvisamente restati senza lavoro ha portato alla fioritura di criptomonete alternative la cui peculiarità è quella di poter essere minate solo con hardware "casalingo", almeno per ora. La criptomoneta di questo tipo più famosa è sicuramente il
Litecoin.
Un po' di teoriaTecnicamente, il mining di bitcoin è un'operazione di brute forcing in cui lo scopo è trovare il numero da inserire in un insieme di dati (l'header del blocco) tale per cui il doppio hash
SHA-256 di tali dati sia un numero inferiore ad un certo target (obiettivo), target che viene calcolato sulla base del coefficiente di difficoltà:
maggiore è la difficoltà, minore è il target e maggiori saranno i tentativi necessari per trovare il suddetto numero.
In pratica, il computer che sta facendo girare il programma di mining riceve l'header del blocco che si sta cercando di chiudere da un client opportunamente configurato (solo mining) o tramite internet da un server apposito (pool mining). All'interno di questa header viene aggiunto un numero, "
nonce", e viene calcolato l'hash doppio del tutto. se tale hash è numericamente minore del target, l'header viene mandato al server per l'approvazione, altrimenti la nonce viene incrementata di uno e il controllo si ripete.
Questa operazione viene effettuata diversi milioni di volte al secondo, tanti quanti sono i
MHash/sec riportati dal programma di mining.
Da notare che il mining è un processo basato sulla pura statistica: ogni tentativo di hashing ha la stessa probabilità di essere quello buono. Non ha senso dire che servono un certo numero di hash o di tempo per chiudere un blocco, si può esclusivamente parlare di media.
ApprofondimentoLo scopo di questa FAQ è spiegare cosa sia il mining senza usare numeri o scendere troppo nel dettaglio. Chi volesse approfondire può leggere:
Conviene minare?Come si fa a minare?Quanti bitcoin posso fare con il mio hardware?Cosa è il pool mining?
Cosa è la difficoltà?
Ultimo aggiornamento: 19/06/2013