Questo articolo è un viaggio completo che ti permetterà di conoscere il processo di creazione di un blocco Bitcoin e i dettagli che rendono possibile il mining di Bitcoin.
Negli articoli precedenti abbiamo analizzato la tecnologia blockchain y com'è costituito. Abbiamo anche un articolo dedicato a blocchi che compongono la blockchain e un'altra dedicata a transazioni, che a loro volta compongono i blocchi. Se non conosci questi termini, ti invitiamo a dare un'occhiata a questi tre articoli prima di continuare ad avere una conoscenza più chiara e più ampia di questi elementi che ti aiuteranno a capire: Come si estrae un blocco?
Sulla blockchain, i minatori sono incaricati di generare i nuovi blocchi aggiungendoli alla fine della catena. E come stabilisce il protocollo Bitcoin, devono eseguire questo processo ogni 10 minuti circa. Ogni blocco estratto contiene un record dettagliato delle diverse transazioni effettuate in ciascun periodo. E che quando vengono aggiunti alla fine della blockchain aggiornano il loro registro.
Blocca il processo di mining
Per creare un nuovo blocco, i miner devono seguire un processo per risolvere un problema di matematica. Una volta trovata una soluzione valida per la rete, è possibile estrarre un nuovo blocco che verrà aggiunto alla blockchain in consenso. E per questo, il minatore che ha trovato la soluzione, riceverà una ricompensa per il nuovo blocco. Questa ricompensa è nota come ricompensa di blocco.
Un nuovo blocco Bitcoin viene generato circa ogni 10 minuti.. Quindi ogni volta che ne viene trovato uno, significa l'inizio del mining per un altro. Dal momento che questi sono matematicamente correlati o concatenati insieme. Ma vediamo più in dettaglio come viene eseguito questo processo:
Prima fase: transazione
Il processo di estrazione di un nuovo blocco inizia quando un utente desidera inviare una certa quantità di criptovaluta a un'altra persona. Quindi manda beatitudine transazione con i dati del tuo portafoglio, in attesa che la rete esegua e confermi. Rimangono lì fino a quando non viene estratto un blocco in cui possono essere inclusi e convalidati.
Seconda fase: compilazione
Queste transazioni in sospeso sulla rete vengono raccolte e raggruppate in un blocco di transazioni dal nodi di mining. È molto probabile che più miner raccolgano le stesse transazioni. E tutto non sarà confermato fino a quando il blocco non verrà estratto.
Terza fase: formazione
Ogni minatore selezionerà le transazioni che desidera includere e costruirà il proprio blocco. Se ci sono transazioni già convalidate e incluse nel blocco precedente, verranno rimosse da questo. Questo nuovo blocco è noto come candidato, poiché non è ancora valido perché non ha una prova di lavoro valida.
Nella formazione di questo nuovo blocco, deve essere inclusa un'intestazione che contenga il file hash dal blocco precedente, il radice di merkle e dati per la concorrenza mineraria. Questo è il timestamp, l'obiettivo dell'algoritmo PoW per quel blocco (i bit), la versione del software e il file nonce.
Quarta fase: prova del lavoro
Una volta che ogni minatore ha creato il proprio blocco di transazioni, dovrà trovarne uno firma valida per quel blocco. Cioè, eseguire una prova di lavoro. Ogni minatore deve eseguire un processo di calcolo matematico unico per ogni blocco che ha formato. Pertanto, sebbene la procedura sia la stessa, il risultato sarà totalmente diverso per ciascuno. Questo calcolo complesso richiede molta potenza di calcolo e quindi un grande dispendio di energia elettrica. Ciò dipenderà anche dal difficoltà di sistema per il tempo del mining.
La soluzione che i minatori devono trovare è nota come hash. Questa funzione è molto difficile da trovare, ma una volta trovata è facile da verificare da altri nodi. In modo che possano verificare che il file hash di output rispettare le condizioni di sistema stabilite.
Per trovare un hash di output valido, i minatori eseguono ripetutamente calcoli matematici attraverso un file nonce. Che è un numero casuale che usano e cambiano costantemente finché non trovano una firma di output o un hash valido in base alla condizione. Non c'è modo di prevedere quale nonce risolverà il problema, quindi devono usarne quanti sono necessari. E stiamo parlando di miliardi di valori!Incredibile vero?
Nel caso della rete Bitcoin, il sistema condiziona che l'hash in uscita deve contenere un certo numero di zeri all'inizio dell'hash.
Quinta fase: trasmissione
Quando un nodo di mining riesce a trovare un hash di output valido per un blocco, trasmette detto blocco insieme alla firma agli altri nodi sulla rete in modo che possano convalidarlo.
A quest'ora, fintanto che i 21 milioni di bitcoin non saranno stati emessi, il miner riceve la ricompensa stabilita per il mining, mettendo in circolazione nuovi bitcoin. Questo è registrato sul proprio nodo, gli altri nodi sulla rete lo faranno nel passaggio successivo.
Inoltre, indipendentemente dal fatto che tutti i bitcoin siano stati emessi o meno, il miner riceve anche tutte le commissioni di mining che gli utenti hanno messo nelle transazioni che compongono questo blocco.
Fase sei: verifica
Gli altri nodi della rete sono responsabili di convalidare e verificare che il blocco e l'hash soddisfino le condizioni del sistema, verificandone la legittimità e se contiene effettivamente il numero di zeri dichiarato.
Anche qui viene confermata la proof of work, ovvero la potenza di calcolo che è stata spesa per trovare la soluzione, e si nota che il miner che ha scoperto il blocco può infatti avvalersi dei bitcoin appena ricevuti.
Fase sette: conferma
Una volta aggiunto il nuovo blocco alla blockchain, tutti gli altri che verranno aggiunti sopra di esso conteranno come conferma. A questo punto, possiamo arrivare a pensare che poiché ogni miner ha avviato il processo con il proprio blocco, può continuare a fare mining. Ma non è così. Una volta generato un blocco, tutti i nodi di mining devono avviare il processo formando un nuovo blocco di transazioni. Non possono continuare a estrarre il blocco precedente perché ogni blocco deve aggiungere l'hash di output del blocco che lo precede.
Ecco perché conosciamo questa tecnologia come una catena di blocchi o blockchain. Quindi, quando il minatore ottiene un hash valido, potrebbe essere stato estratto un altro numero di nuovi blocchi. Quindi l'hash di output del tuo blocco estratto non corrisponderà all'hash di output dell'ultimo blocco aggiunto nella catena. Sarà rifiutato.
Inoltre, è molto probabile che tutte o la maggior parte delle transazioni incluse in quel blocco siano già state aggiunte ad altre. Anche se riesci a estrarre il blocco, la maggior parte delle transazioni incluse non potranno essere convalidate o confermate.
Caratteristiche dei blocchi estratti
I blocchi estratti nel sistema Bitcoin devono soddisfare determinate caratteristiche e condizioni per essere considerati validi. Vediamo cosa sono:
- L'hash dell'intestazione del blocco estratto deve essere inferiore al target. Se è maggiore, non sarà considerato valido.
- La dimensione del blocco deve essere entro limiti accettabili. In Bitcoin, un blocco deve avere una dimensione massima di 2 MB.
- La timestamp del blocco dovrebbe essere meno di due ore nel futuro.
- La prima transazione aggiunta al blocco sarà il file transazione coinbase. Ciò garantirà al nodo di mining la ricompensa della rete. E ci sarà solo una transazione coinbase per blocco.
- Tutte le transazioni aggiunte al blocco sono valide.
- L'intestazione di ogni blocco conterrà l'hash del blocco precedente e il file altezza del blocco stessa.
Tutte queste funzioni vengono controllate per confermare un blocco. E ogni nodo di mining convalida in modo indipendente nuovi blocchi seguendo esattamente le stesse regole. COSÌ, si assicura che nessun nodo di mining possa imbrogliare. Cosa fornisce robustezza e sicurezza alla rete. Una volta convalidato il blocco, gli altri nodi della rete lo aggiungeranno alla loro copia della blockchain. E quando ciò accade, non può essere modificato o cambiato.
Ora conosci il file processo di creazione che hanno seguito tutti i bitcoin che esistono in circolazione. Ognuno dei bitcoin esistenti, è stato emesso seguendo questo processo, per essere successivamente utilizzato o venduto dal minatore ad altre persone, fino a quando non arrivano nelle tue mani.