Proof of Work Spiegato: Pro e Contro dei PoW

Gli algoritmi di consenso sono una parte intrinseca di tutte le tecnologie basate su blockchain in quanto non esiste alcuna unità di autorità che dovrebbe convalidare le transazioni della rete. Gli algoritmi di consenso sono qui per fornire il funzionamento decentralizzato a prova di problemi della rete. Non possiamo sottovalutare il significato dell'algoritmo di consenso applicato per ogni particolare progetto basato su blockchain. Bitcoin sta utilizzando Proof of Work, che è anche un algoritmo di consenso originale per la blockchain di Ethereum. La gente discute se vale la pena usare questo algoritmo di consenso o è meglio usare altre opzioni.

La storia antica della prova del lavoro

Il primo esempio dell'algoritmo vicino a Proof of Work è stato introdotto nel 1993 da Cynthia Dward e Moni Naor che hanno trovato una soluzione anti-spam nel documento scientifico intitolato "On Memory-Bound Functions For Fighting Spam" . Il metodo descritto in questo documento suppone che al mittente sconosciuto del messaggio sia richiesto di dedicare un po 'di tempo alla propria potenza della CPU (ad es. 10 secondi) per dimostrare che il mittente non è uno spammer.

Secondo Dward e Naor, gli spammer che devono dedicare 10 secondi di tempo alla CPU sarebbero in grado di inviare solo fino a 8.000 messaggi spam al giorno invece di un numero illimitato di messaggi spam che sono in grado di inviare oggi. Non è una cosa difficile controllare una funzione dietro la prova del lavoro, ma il calcolo è un vero mal di testa per i mittenti di spam.

Il termine Proof of Work è stato coniato nel 1999. È emerso nell'articolo intitolato "Proofs of work and bread pudding protocols" (gli autori Markus Jakobsson e Ari Juels). L'idea stessa di Proof of Work suppone che il "prover" debba fornire al "verificatore" l'evidenza del lavoro al computer richiesto svolto nel lasso di tempo stabilito. Il concetto sembrava essere abbastanza interessante, tuttavia non è stato portato in vita fino alla creazione di Bitcoin che si basa fortemente su Proof of Work per creare una rete governata da un consenso distribuito senza fiducia.

Bitcoin e Proof of Work

Una prova del lavoro è un algoritmo di consenso che richiede un processo di produzione costoso e che richiede tempo per la produzione di un pezzo di dati la cui correttezza può essere verificata senza sforzo. Il sistema di prova del lavoro di Hashcash è stato creato come salvezza dai robot spam ma è diventato un punto fermo della rete Bitcoin.

Mentre le persone si scambiano monete l'una con l'altra, il libro mastro riflette queste informazioni sotto forma di blocchi di transazioni. La convalida di queste transazioni richiede la partecipazione di alcuni lavoratori che eseguono il mining.

Le persone desiderose di convalidare le transazioni (note come "minatori") devono eseguire la procedura di prova del lavoro per raggiungere il loro obiettivo. Un lavoratore è un nodo. La difficoltà di questo lavoro (attività) è flessibile, quindi il nuovo blocco deve essere generato ogni 10 minuti. Poiché il numero di minatori è incredibilmente enorme e il lasso di tempo di 10 minuti è relativamente breve, è estremamente difficile prevedere quale lavoratore (minatore) sarà colui che genera un nuovo blocco (verificando tutte le transazioni nel blocco).

Il meccanismo di prova del lavoro

Al fine di generare un nuovo blocco, il minatore dovrebbe fornire l'hash corretto per il blocco delle transazioni. Per fare ciò, il minatore dovrebbe capire la funzione nonce e hash in cui un nonce è un numero casuale usato una sola volta (la rete Bitcoin utilizza numeri interi compresi tra zero e 4.294.967.296 come nonce) e l'hash è una stringa di 64 simboli (un mix di cifre e lettere) contenenti i dati crittografati.

I blocchi nella blockchain hanno hash individuali (tale hash è chiamato "id"). Ogni hash viene creato come risultato della verifica riuscita del blocco. Per verificare il blocco successivo, il minatore aggiunge l'ultimo hash al blocco corrente creando un enorme blocco di testo. Quindi un nonce (un numero casuale) viene aggiunto alla fine del blocco di testo. Questo testo è composto dall'hash del blocco precedente, dalle nuove transazioni in attesa di verifica e dal nonce. Ecco dove inizia il calcolo. Durante i calcoli, il lavoratore modifica il numero casuale fino al momento in cui viene definito il numero corretto di zeri davanti a una stringa.

La difficoltà di questo compito non dovrebbe essere sottovalutata. Come accennato in precedenza, la difficoltà è impostata al livello che, indipendentemente dal numero di minatori e dalla potenza delle loro apparecchiature, ogni problema viene risolto solo una volta ogni 10 minuti. Per fare questo lavoro il computer deve generare milioni di possibili hash ogni secondo.

Per verificare se un nodo ha eseguito correttamente il lavoro richiesto, sarà necessario che una stringa appaia come risultato della convalida e un numero nonce. Applicando la funzione su questi due valori si otterrà il numero di zeri davanti alla stringa. Nel caso in cui questo numero sia corretto, il lavoro è stato svolto bene. Se qualcuno ha cattive intenzioni e prova ad aggiungere alcuni dati non validi alla catena, questo verrà fermato dagli altri partecipanti al mining. Durante la scala di 10 anni, questo schema ha protetto con successo la blockchain di Bitcoin. Ciò che rende speciale l'algoritmo SHA-256 è che nessuno può modificare segretamente nemmeno un singolo bit di informazioni nel blocco. Ecco perché questo libro mastro si chiama immutabile.

Contro di prova del lavoro

Non possiamo concordare sul fatto che l'incredibile consumo di elettricità richiesto da PoW sia solo uno spreco di risorse (molti oppositori di PoW fanno tali affermazioni) poiché abbiamo già spiegato che questo algoritmo di consenso è molto efficace quando si tratta di proteggere la blockchain. Tuttavia, non possiamo ignorare il fatto che Proof of Work spende enormi quantità di energia per indovinare il numero di zeri durante la convalida delle transazioni. Attualmente, la rete Bitcoin consuma tre volte meno energia rispetto al sistema monetario tradizionale , ma se immaginiamo che Bitcoin ottenga l'adozione di massa, il consumo di energia aumenterà drasticamente. Comunque, Bitcoin non sta sostituendo le banche tradizionali, quindi il consumo aumenta grazie a Bitcoin.

L'altro problema è che le persone che usano i loro dispositivi CPU, GPU o ASIC per il mining hanno troppe poche possibilità di trovare un nuovo blocco e ottenere una ricompensa in quanto devono competere con i pool di mining utilizzando dozzine di migliaia di dispositivi per estrarre. Circa la metà del mining si verifica nel gruppo relativamente piccolo di pool di mining. C'è il rischio che se i proprietari di questi pool decidessero di unirsi e governare la blockchain di Bitcoin usando il loro potere di hashing, potrebbero farlo. Un'autorità che ha oltre il 50% del potere di hashing in realtà può governare la blockchain. Tali intrusioni sono note come attacco del 51%.

Un altro fatto notevole è che il 70% della potenza di hashing proviene dalla Cina perché questo paese ha elettricità a basso costo. Offre a questo paese un vantaggio nel mining di Bitcoin e diminuisce il livello di decentralizzazione.

Conclusione

Proof of Work in realtà riesce a proteggere la rete dai cattivi attori, sebbene il costo di questo algoritmo di consenso ci faccia pensare agli altri possibili modi per convalidare le transazioni e far funzionare la rete correttamente e senza intoppi. Non c'è da stupirsi che ci siano già diversi altri algoritmi di consenso applicati a diversi progetti blockchain. Il concorrente più evidenziato di PoW è Proof of Stake.