Logo Criptoinvestire.com
Logo Criptoinvestire.com
Vai ai contenuti
MINING
Cosa accade dietro le quinte di Bitcoin.
Menu:
Il mining è un'attività (o processo) essenziale per una blockchain come Bitcoin (così come per tutte le blockchain che si basano su protocolli proof-of-work). In questa pagina spiegheremo che cos'è il processo di mining prendendo in esame la blockchain di Bitcoin.

Questo processo consente di creare nuovi bitcoin, di certificare (o validare) le transazioni sulla blockchain e, allo stesso tempo, rende altamente sicura la rete proteggendola da eventuali attacchi hacker. Tale attività viene svolta dai miner. Il miner (o nodi validatori) è colui che mette a disposizione della rete la potenza di calcolo del proprio computer, al fine di validare le transazioni nella blockchain.

IN CHE MODO I MINER VALIDANO LE TRANSAZIONI?
Come spiegato nella sezione blockchain, ogni transazione viene inserita all'interno di un blocco, tale blocco prima di essere aggiunto alla catena dei blocchi precedenti, necessita di essere verificato, così da controllare che non vi siano errori che potrebbero compromettere le informazioni archiviate.

Come accennato poco fa, questo processo di verifica viene svolto dai miner. Più precisamente i miner devono trovare un determinato valore che, se aggiunto ad altre informazioni presenti nel blocco, restituisca un determinato codice hash (vedremo in seguito in che cosa consiste questo hash). Ovviamente, i miner vengono remunerati per svolgere questo processo di verifica, di conseguenza, questi competono fra loro per risolvere il blocco, in quanto il primo che lo risolve otterrà una ricompensa in bitcoin (ecco quindi come si creano nuovi bitcoin attraverso il processo di mining).

Per essere più precisi, una volta che un miner trova la soluzione per validare il blocco, tutti gli altri miner dovranno confermare che il risultato trovato sia corretto e, in caso affermativo, il miner che ha validato il blocco otterrà la sua ricompensa (questo meccanismo è quello che viene chiamato in gergo "proof-of-work" o "PoW" ). In seguito, il blocco viene aggiunto alla blockchain, aumentandone la lunghezza, e le transazioni contenute al suo interno giungono a destinazione.
L'intero processo prende il nome di "mining" perché viene paragonato a quanto accade nelle miniere con gli estrattori d'oro, in quanto i miner consentono "l'estrazione" di nuovi bitcoin.


IN COSA CONSISTE LA FUNZIONE DI HASH?
L'hash è una vera e propria impronta digitale (digest). Un hash si ricava prendendo più dati (input) di lunghezza/dimensione variabile, questi vengono processati tramite una funzione di hash, che restituisce (output) un codice (hash) di lunghezza predefinita (di qualsiasi dimensione siano i dati inseriti nell'input, l'hash che si ottiene avrà la stessa lunghezza, quest'ultima è definita dal tipo di funzione hash utilizzata). Questa è una funzione irreversibile, nel senso che dal risultato ottenuto tramite l'output (hash) non è possibile risalire all'input (ovvero ai dati utilizzati per generare l'hash), così come da un’impronta digitale non è possibile risalire al DNA di una persona (nonostante dal DNA sia possibile risalire all’impronta digitale). La blockchain di Bitcoin utilizza l'algoritmo SHA-256 (Secure Hash Algorithm a 256 bit), quindi gli hash utilizzati da questo protocollo sono a 256 bit. SHA-256 risulta tutt'ora essere uno degli algoritmi più sicuri utilizzati nelle blockchain.

È importante capire che, quando si applica la funzione di hash, per esempio a un testo, si ottiene come risultato un numero definito. Di conseguenza, qualsiasi sia la lunghezza del testo inserito nell'input, l'hash corrispondente avrà sempre la stessa lunghezza. Vediamo un esempio per chiarire il concetto:

Hash SHA-256 della parola "sole":
979a3a5fbffb6dfb58216e581222907305b11ee6d13a9c31c843ff3fcfe337dd

Hash SHA-256 della frase "oggi è una bella giornata, il sole è caldo":
5afb677aea0a8dc592a7b573e8def24690cc99a0d4ff803b07f362ca63a13b81

Un determinato hash corrisponderà sempre allo stesso input con il quale è stato generato. Se per esempio 10 persone utilizzassero la funzione di hash sulla parola "cane", queste otterrebbero tutte lo stesso risultato, sia oggi che tra 1 anno. Puoi fare una prova tu stesso generando l'hash a 256 bit della parola "sole" tramite questo link, noterai che otterrai lo stesso risultato che ho riportato nell'esempio soprastante.

Allo stesso modo, se si cambiasse anche una sola lettera a una parola (per esempio "casa" e "cosa"), la funzione di hash restituirebbe risultati completamente differenti.

COME VIENE UTILIZZATO L'HASH NELLA BLOCKCHAIN?
Entrando più nei dettagli, la validazione di un blocco consiste nella risoluzione di un rompicapo da parte dei miner. Estremizzando questo concetto, per renderlo di facile comprensione, si può dire che per risolvere il rompicapo il miner deve trovare un numero (chiamato nonce). Questo, se processato tramite la funzione di hash insieme ad altri dati presenti nel blocco da validare, deve restituire un hash che inizia con un determinato numero di zeri. Questo hash viene chiamato "hash della testa del blocco". Il numero di zeri richiesti definisce il grado di difficoltà per la validazione del blocco, in quanto maggiore è il numero di zeri e maggiore è la difficoltà di validazione (il numero di zeri richiesti è definito in uno dei dati presenti nel blocco).

Quindi, riassumendo quanto appena detto, possiamo dire che: un blocco contiene (oltre che delle transazioni) dei dati, questi sono allocati nella testa del blocco e, se processati tramite una funzione di hash, restituiscono un determinato hash (hash della testa del blocco), che inizia con un determinato numero di zeri. Uno di questi dati però non è presente, ovvero il nonce: sta al miner trovare un nonce valido, che permetta di restituire un hash corretto.

Non esiste una tecnica o un calcolo per trovare un nonce valido, l'unico modo logico per farlo è tramite numerosi tentativi casuali. Proprio per questo motivo i miner si servono di appositi hardware che misurano la loro potenza in "tentativi al secondo" (H/s). Da qui nasce il concetto di "competizione tra miner", in quanto solo il miner che troverà per primo un nonce valido verrà ricompensato per il lavoro svolto. Prima di essere ricompensato però, il miner che trova un nonce valido comunica la soluzione agli altri nodi della rete, questi effettueranno una verifica per confermare che il nonce sia valido. Qualora il nonce non fosse valido, la competizione si riapre e tutti i miner tornano alla ricerca di un nonce valido.

Un esempio di quanto appena trattato ti aiuterà a comprendere meglio questo concetto.
Supponiamo che il grado di difficoltà per validare il blocco sia di 7 zeri. A questo punto, i miner competeranno tra loro per trovare un nonce valido. Quest'ultimo, se unito agli altri dati presenti nella testa del blocco, deve restituire un codice hash che presenta, in questo caso, 7 zeri iniziali:

Hash della testa del blocco (dati contenuti nel blocco + nonce):
0000000h3ie95hwp203595c2e9d8983d0e63c6387cd67eb7e5e2355ffb184d8e

Una volta confermata la validazione del blocco, questo viene agganciato ai blocchi precedenti, mentre il miner che ha trovato la soluzione viene ricompensato con l'immissione di nuovi bitcoin e con tutte le commissioni delle transazioni contenute all'interno del blocco validato.

IN CHE MODO VIENE CONFERMATA LA VALIDAZIONE?
Una volta che uno dei miner trova una soluzione, questo fornisce il "risultato" agli altri miner per provare che il lavoro svolto sia corretto (proof-of-work). A questo punto gli altri nodi controllano il risultato e, se corretto, il blocco viene validato ufficialmente e viene "attaccato" alla catena di blocchi precedenti. Successivamente si prosegue con la validazione di nuovi blocchi per continuare la costruzione della catena.

In questa slide ti mostriamo il percorso e il processo che si aziona quando viene inviata una transazione nella blockchain di Bitcoin, al fine di rendere più chiari i concetti trattati:



QUANTO TEMPO CI VUOLE PER VALIDARE UN BLOCCO?
Il tempo necessario per la validazione di un blocco dipende puramente dal grado di difficoltà impostato per la ricerca del nonce. Come abbiamo spiegato poco fa, la difficoltà per la ricerca di un nonce è legata al numero di zeri presenti davanti all'hash da della testa del blocco. Detto questo si può dire che, in media, la verifica di un blocco nella blockchain Bitcoin avviene ogni 10 minuti.

Questa tempistica non è casuale: l'algoritmo Bitcoin è stato programmato per fare in modo che, ogni 2 settimane, il grado di difficoltà per validare un blocco venga "aggiustato" in funzione della potenza di calcolo di tutti i miner che stanno facendo mining. Più la potenza di calcolo totale è alta e più viene aumentata la "difficoltà di mining", così da mantenere la media di 10 minuti per la validazione di un blocco.

COME MAI BITCOIN VUOLE MANTENERE QUESTA MEDIA?
Mantenere queste tempistiche di validazione è importante per la politica monetaria di Bitcoin, in quanto il processo di mining rappresenta l’unico modo con cui nuovi bitcoin vengono messi in circolazione. Mantenendo questi ritmi, infatti, nell'anno 2029 il 97% dei bitcoin sarà stato emesso (minato). Il limite di bitcoin che saranno messi in circolo è impostato a 21.000.000, di cui l’ultimo verrà estratto nell'anno 2140. Questo meccanismo fa sì che non esista nessun metodo per immettere in rete nuovi bitcoin più velocemente, pertanto questa caratteristica rispecchia proprio la scarsità e la difficoltà estrattiva dell’oro.

BTC attualmente in circolo:
<script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script><div><p align="center"><font color="black"><span id="supplyContainerBTC"></span> BTC
</p></font></div><script>function worker(){$.ajax({url: "https://api.coinmarketcap.com/v1/ticker/bitcoin/",}).done(function( data ) {document.getElementById('supplyContainerBTC').innerHTML = data[0].total_supply;});}worker();setInterval(worker, 10000);</script>
BTC disponibilità massima:
21000000.0 BTC

QUANTI BTC SI GUADAGNANO VALIDANDO UN BLOCCO?
Nell'anno 2009, quando il protocollo Bitcoin è stato creato, la ricompensa per la validazione di un blocco ammontava a 50 BTC. Ogni 4 anni questa quantità si dimezza, in quanto ci si avvicina sempre di più al raggiungimento della disponibilità massima di bitcoin. Oggi (2018) la ricompensa per la validazione di un blocco ammonta a 12.5 bitcoin.


VUOI MAGGIORI INFO SU COME FUNZIONA IL MINING E COME POTERLO FARE?
Nel caso in cui volessi valutare il mining come una vera e propria attività, allora troverai essenziali le nozioni che trattiamo all'interno di MiningGO: la nostra guida al mining. In MiningGO trattiamo ogni aspetto principale relativo all'attività di mining, mettiamo a confronto i vari hardware e gli algoritmi sui quali conviene fare mining.

Puoi scaricare gratuitamente la presentazione e l'indice di MiningGO cliccando qui.
Risorse
_____________________
Formazione
Community
Altro
_____________________
_____________________
_____________________

Login/Registrati

TOP RANKING ICO

Faucet & Airdrop

Criptovalute & Blockchain

Utilizzo degli Exchange

Wallet & Sicurezza

Cos'è una ICO

Canale Telegram

Info su Criptoinvestire

Contattaci

Guide Gratuite

© 2018 Grow, All Right Reserved.

Politica sulla Privacy

Utilizzo dei Cookies

Pocket News

Facebook

Iscriviti al canale Telegram

Disclaimer

Fare trading di CFD con leva comporta un rischio significativo di perdita per il tuo capitale.
Torna ai contenuti