Translate

domenica 20 aprile 2014

Come funziona il Bitcoin Mining e la validazione delle transazioni.

Come funziona il Mining dei Bitcoin

 0
 

Cerchiamo di capire come funziona il Bitcoin Mining…

Nei sistemi monetari tradizionali, i governi semplicemente stampano più soldi quando ne hanno bisogno.
Per quanto riguarda il Bitcoin, il denaro non viene stampato, sarebbe più corretto dire che viene “scoperto”.
Computer sparsi per il mondo infatti “Minano” senza sosta i BITCOIN in una competizione all’ultimo calcolo.
Ogni secondo migliaia di persone inviano e ricevono criptovaluta attraverso la rete bitcoin e se non ci fosse qualcuno che tiene traccia di tutte queste transazioni, sarebbe impossibile stabilire chi ha trasferito cosa a chi.
La rete bitcoin fa a fronte a questo problema in questo modo: riunisce tutte le transazioni avvenute in un certo lasso di tempo in una lista, chiamata Blocco (Block)
Quello di cui si occupano i minatori (Miners) è di confermare tali operazioni e infine scriverle in un libro mastro (Blockchain).
La blockchain è un resoconto contabile generale. E’ un lungo elenco di blocchi , noto come blocco catena (Blockchain).
Può essere utilizzato per esplorare qualsiasi transazione effettuata tra gli indirizzi bitcoin, in qualsiasi punto della rete .
Ogni volta che viene creato un nuovo blocco di operazioni, esso viene aggiunto al blocco catena, creando un elenco sempre più lungo di tutte le operazioni mai avvenute sulla rete bitcoin (partendo dalla sua creazione nel 2009).
Una copia costantemente aggiornata della Blockchain è distribuita a tutti coloro che partecipano alla rete Bitcoin, in questo modo il libro mastro è allocato su centinaia di migliaia di computers in tutto il mondo rendendo impossibile la sua modifica da parte di malintenzionati.
Per approfondire l’argomento vedi l’articolo sulla blockchain.

Ma un libro mastro generale deve essere attendibile, e dato che tutto questo si svolge in digitale come possiamo essere sicuri che la Blockchain sia al sicuro, e che nessuno possa metterci le mani? 
Qui è dove i minatori entrano in gioco!
Quando si crea un blocco di transazioni, i minatori iniziano a processarlo.
Prendono le informazioni nel blocco, e applicano una formula matematica ad esso, trasformandolo in qualcosa d’altro.
Quel qualcos’altro è una sequenza apparentemente casuale molto più breve di lettere e numeri noto come Hash.
Questo hash è memorizzato insieme al blocco, alla fine della Blockchain.
Gli hash hanno alcune interessanti proprietà.
E’ facile produrre un hash partendo dai dati in ingresso, come ad esempio un blocco di bitcoin, ma è praticamente impossibile decifrare i dati solo guardando l’hash. 
E’ molto facile da produrre un hash da una grande quantità di dati, ma al tempo stesso ogni hash è unico.
Se si cambia un solo carattere in un blocco di Bitcoin, il suo hash cambierà completamente.
Ai minatori non basta usare le transazioni in un blocco per generare un hash. Anche altri dati vengono utilizzati per la creazione dell’ hash, ad esempio viene utilizzato anche l’Hash dell’ultimo blocco memorizzato nella Blockchain.
Poiché l’hash di ciascun blocco viene generato utilizzando l’hash del blocco precedente, è facile capire che se viene modificata la catena di blocchi in qualsiasi punto tutti i blocchi successivi verrebbero a loro volta distorti…
Una situazione simile andrebbe a generare un errore nel libro mastro che semplicemente bollerebbe questa operazione come non legittima invalidandola.
Se si tenta di simulare una transazione modificando un blocco che era già stato memorizzato nella Blockchain (il libro mastro), questo cambierebbe l’ hash del blocco.
Chiunque controlli l’autenticità del blocco eseguendo la funzione di hashing su di esso, scoprirebbe che l’hash era diverso da quello già memorizzato con quel blocco nella Blockchain. Il blocco risulterebbe quindi falso e non verrebbe confermato e nemmeno inserito nel libro mastro!
Poiché l’ Hash di ciascun blocco è usato per contribuire a produrre l’hash del blocco successivo nella catena , la manomissione di un blocco implicherebbe anche cambiare hash del blocco successivo.
La manomissione di un blocco produrrebbe risultati errati anche nel blocco successivo e questo si riperquoterebbe ciclicamente fino in fondo la catena invalidando tutte le transazioni successive.

La competizione tra i Bitcoin Miners

Tutti i computer coinvolti nella attività di mining sono tutti in competizione tra loro e utilizzano tutti lo stesso software scritto appositamente questo scopo.
Ogni volta che qualcuno crea con successo un hash, ottiene una ricompensa di 25 bitcoin, la catena di blocco viene aggiornata, e tutti gli utenti della rete prendono atto di questo, fisicamente sono creati 25 nuovi Bitcoin che entrano a far parte del circuito Bitcoin. 
Questa ricompensa è l’incentivo a continuare il Mining, e quindi a continuare le operazione di validazione delle transazioni.
Il problema è che è molto facile da produrre un hash da una raccolta di dati, i computer diventano sempre più potenti e questa operazione diventa sempre più veloce.
La rete bitcoin ha il compito di rendere più difficile questo calcolo giorno per giorno, altrimenti verrebbero processati troppi hash in breve tempo e tutti i bitcoin verrebbero estratti in pochi minuti. 
Il protocollo Bitcoin rende volutamente più difficile questa operazione con il passare del tempo, con l’introduzione di una cosa chiamata “Prova di Lavoro”.
Il protocollo Bitcoin non accetta qualsiasi tipo di Hash ma richiede che gli Hash di un blocco abbiano certe caratteristiche, una delle quale è che debbano iniziare con un certo numero di Zeri.
Non c’è modo di sapere come apparirà un hash prima di calcolarlo, e non appena avviene un minimo cambiamento nei dati iniziali dal quale viene processato l’Hash stesso cambierà drasticamente.
I minatori non intervengono in nessun modo sui dati in ingresso delle transazioni, si limitano a cambiare i dati che stanno usando per creare un hash diverso.
Qui entra in gioco un’altro elemento, un dato casuale chiamato “Nonce”, esso viene inserito del calcolo dei dati della transazione per creare un hash.
Se l’hash non si adatta al formato richiesto (cioè non inizia con un certo numero di zeri) viene generato un nuovo Nonce e il calcolo dell’Hash riparte da capo…
Sono necessari innumerevoli tentativi per trovare un nonce che funziona (in grado di generare un Hash corretto).
Questa operazione è portata avanti da tutti i minatori della rete allo stesso tempo.
Sotto riporto uno schema riassuntivo di come funziona questa operazione:

Bitcoin Mining Hash Nonce
Come funziona il calcolo dell Hash

Ecco svelato quindi il funzionamento del Bitcoin Mining, come i minatori guadagnano bitcoin e infine come vengono creati nuovi bitcoin ogni giorno.

- See more at: http://www.investirebitcoin.com/articoli/mining/bitcoin-mining-validazione-delle-transazioni-bitcoin/#sthash.xWtaJfDG.dpuf