
Se prendiamo in considerazione tutti questi dettagli, possiamo comprendere più facilmente ciascuno dei passaggi che fanno funzionare il mining di Bitcoin. Ad esempio, sono i nodi di mining – e in alcuni casi gli operatori di gruppi di miner, noti come pool – che sono incaricati di selezionare le transazioni in attesa (dal Mempool) e di aggiungerle a un modello di blocco da estrarre. Allo stesso modo, sono loro che hanno il compito di verificarne la legittimità prima ancora di aggiungerli al blocco.
Cosa fa un miner per verificare un blocco di transazioni
Diamo un’occhiata a questo in modo più approfondito:
Step 1: i nodi completi verificano che ciascuna transazione sia legittima
I full node, tra i quali spiccano i mining nodes per avere una copia della blockchain e la possibilità di lavorare con algoritmi di mining, sono i partecipanti incaricati di controllare le transazioni effettuate dagli utenti. Il compito principale è verificare che le criptovalute che vengono inviate non siano state utilizzate prima in un altro pagamento. In altre parole, che non si faccia una doppia spesa.
Esempio. Un utente malintenzionato ha 2 BTC nel suo portafoglio, vuole trasferire tutte quelle monete all’utente A e restituire 2 BTC (anche se non ne ha più) da trasferire all’utente B. Come possiamo vedere, vuole utilizzare più denaro di quello che hai nel tuo account per effettuare più transazioni e imbrogliare il sistema.
Quello che questo utente non sa è che la rete segnalerà questa anomalia nella transazione stessa. Come si ottiene ciò? Tramite l’hash che identifica la transazione. Sì, l’intera rete blockchain registra le sue informazioni sotto hash univoci costituiti da un set di dati limitato.
La cosa sorprendente della funzione hash è che se si altera solo un dato nella transazione, verrà generato un codice alfanumerico completamente diverso per quell’operazione. In altre parole, le due transazioni del nostro utente malintenzionato, nonostante provengano dallo stesso wallet e utilizzino gli stessi bitcoin, sono completamente diverse perché cambiano l’indirizzo di destinazione.
I nodi sono incaricati di verificare l’hash e dare un voto di conferma per considerarlo valido. La transazione che ha più conferme è quella considerata più sicura, poiché ha il consenso dei full node della rete. Di solito, questa è la transazione che i nodi di mining includono nel modello di blocco per estrarla.
Step 2: i nodi di mining raggruppano le transazioni e i blocchi non confermati
Tutte quelle transazioni inviate dagli utenti, che sono ancora in fase di verifica da parte dei full node e non sono state confermate, aspettano nel Mempool della blockchain di essere selezionate dai nodi di mining.
Questi partecipanti, che il più delle volte sono mining pool, sono incaricati di selezionare le transazioni con le migliori commissioni e che sono state preventivamente verificate dai full node. In questo modo, li raggruppano in un modello o in un elenco e li aggiungono a un blocco che non è stato ancora sottoposto a commit.
I nodi di mining devono rispettare la dimensione dei blocchi di rete, secondo il protocollo che governa la blockchain. Ad esempio, nel caso di Bitcoin, tutti i blocchi hanno una dimensione massima di 2 MB. In questo senso, l’intero batch di transazioni raggruppate dovrebbe pesare vicino a 2 MB, ma mai più di quella dimensione; perché, in caso contrario, non sarà perseguito.
Step 3: aggiungi l’hash del blocco precedente e altri dati al blocco non vincolato
Una volta che le transazioni sono state aggiunte al blocco, i nodi di mining sono anche responsabili della registrazione di informazioni vitali per estrarre criptovalute e confermare il blocco. Ad esempio, i blocchi hanno un’intestazione in cui viene identificato l’hash (ID blocco) del blocco precedente.
Viene inoltre specificata la difficoltà, il timestamp e viene calcolato un eventuale nonce. In questo modo, tutti gli elementi vengono preparati per eseguire la funzione hash e iniziare il lavoro di ricerca dell’hash (identificatore) univoco del blocco che si sta creando. Cioè, inizia la prova del lavoro.
Step 4: il team specializzato inizia a risolvere il problema matematico per trovare un risultato
Come spiegato sopra, tutti i calcoli matematici della funzione hash vengono effettuati da dispositivi specializzati in queste attività. In alcuni casi, come la rete Monero, può essere fatto con schede video o grafiche (GPU), mentre Bitcoin utilizza dispositivi ASIC.
Queste macchine, grazie ai dati precedentemente proposti dal nodo minerario e al nonce determinato, cercano di generare il corretto identificatore di blocco per confermare le transazioni e rilasciare le monete. Se fallisce al primo tentativo, viene utilizzato un altro nonce e la funzione hash inizia a funzionare una volta e così via, fino a quando non viene trovata la risposta o un altro minatore risolve il puzzle matematico.
Il blocco è confermato se, e solo se, la macchina trova l’hash di identificazione che il protocollo ha determinato per quel blocco specifico. I minatori sanno che ciò accade quando il loro blocco viene registrato sulla rete e viene rilasciata la transazione con i bitcoin appena generati (nota come transazione coinbase).
Step 5: Il blocco viene aggiunto alla rete e tutte le altre transazioni pendenti con possibilità di doppia spesa vengono annullate
Quando un miner raggiunge la soluzione della funzione hash, viene generato un nuovo blocco sulla rete e registrato per i posteri. Le informazioni all’interno di questa blockchain non possono più essere modificate e, in reti come Bitcoin o Ethereum, tali dati possono essere consultati pubblicamente.
Nel caso di utenti malintenzionati che inviano più di una transazione con gli stessi bitcoin, come abbiamo visto nel primo passaggio, quando viene confermato un blocco con una delle loro transazioni, l’altra viene automaticamente annullata. Il protocollo è programmato per evitare la doppia spesa, quindi l’unica transazione valida è quella che è stata approvata per prima e ha avuto il maggior numero di conferme dai full node.
Viene generato un nuovo blocco e vengono rilasciate le nuove monete emesse.
In questo modo si chiude il ciclo di estrazione di un blocco, mentre i partecipanti si preparano a passare a quello successivo e così via, ogni giorno. Un processo che mantiene le reti di criptovaluta attive e in esecuzione 24 ore su 24, 7 giorni su 7.