Punti chiave

  • Proof of Work (PoW) è un meccanismo di consenso creato per prevenire la doppia spesa nei sistemi di pagamento digitali.

  • PoW è una parte fondamentale del processo di mining che prevede l'aggiunta di nuovi blocchi di transazioni alla blockchain e la creazione di nuove unità di criptovaluta.

  • Bitcoin e molte altre criptovalute utilizzano PoW come metodo per proteggere la rete blockchain e i suoi dati.

Introduzione

In sintesi, il Proof of Work (PoW) è un meccanismo creato per prevenire la doppia spesa nei sistemi di pagamento digitali. Bitcoin e molte altre criptovalute utilizzano PoW come metodo per proteggere la rete blockchain e i suoi dati. Questi meccanismi sono spesso chiamati algoritmi di consenso o meccanismi di consenso perché coinvolgono più parti che raggiungono il consenso senza bisogno di fidarsi l’una dell’altra.

Il Proof of Work è stato il primo algoritmo di consenso a emergere e continua a essere uno dei più importanti, insieme al Proof of Stake (PoS). Il PoW è stato presentato da Satoshi Nakamoto nel whitepaper di Bitcoin nel 2008, ma la tecnologia stessa è stata concepita molto prima di ciò.

L'HashCash di Adam Back è uno dei primi esempi di un algoritmo Proof of Work prima dell'emergere delle criptovalute. Richiedendo che i mittenti eseguano un piccolo calcolo prima di inviare un'e-mail, i destinatari riuscivano a ridurre l'impatto dello spam. Questo calcolo non costava praticamente nulla per un mittente legittimo, ma per chi inviava e-mail in massa i costi diventavano rapidamente elevati.

Che cos'è la doppia spesa?

Una doppia spesa si verifica quando lo stesso fondo viene speso più di una volta. Il termine è usato quasi esclusivamente nel contesto della valuta digitale – dopotutto, avresti difficoltà a spendere la stessa moneta fisica due volte.

Oggi quando paghi un caffè, consegni il denaro a una persona che probabilmente lo conserva in un cassetto. Non puoi andare al caffè dall'altra parte della strada e pagare un altro caffè con la stessa banconota. Tuttavia, nei sistemi con denaro digitale esiste la possibilità di farlo.

Probabilmente hai già duplicato un file di computer con i comandi copia e incolla. È anche facile inviare lo stesso file via e-mail a decine di persone. Poiché il denaro digitale non è altro che dati, devi evitare che le persone spendano due volte, cioè copino e spendano le stesse unità in luoghi diversi. Un sistema di pagamento digitale che non riesce a prevenire la doppia spesa collasserà in poco tempo.

Per un'analisi più dettagliata sulla doppia spesa, dai un'occhiata all'articolo Guida sulla doppia spesa.

Perché il Proof of Work è necessario?

Se hai letto il nostro articolo sulla tecnologia blockchain, sai che gli utenti di criptovalute stanno continuamente trasmettendo transazioni alla rete. Tuttavia, queste transazioni non sono considerate valide immediatamente, questo avviene solo quando vengono confermate e aggiunte alla blockchain.

La blockchain di Bitcoin, ad esempio, funziona come un database di transazioni pubbliche (ledger/livro-razione) che tutti gli utenti possono vedere. Immagina questo scenario: tu e tre amici avete un blocco note per tenere traccia delle vostre transazioni di bitcoin. Ogni volta che uno di voi vuole effettuare un trasferimento di valore, annota:

Alice ha pagato 5 BTC a Bob; Bob ha pagato 2 BTC a Carol, ecc.

Ma ogni volta che fai una transazione, ti riferisci alla transazione da cui provengono i fondi. Quindi, se Bob stesse pagando Carol con 2 BTC, l'input sarebbe il seguente:

Bob ha pagato 2 BTC a Carol, valore che proveniva dalla transazione precedente con Alice.

Ora abbiamo un modo per tenere traccia delle unità di BTC. Se Bob cercasse di fare un'altra transazione usando gli stessi 2 BTC che ha appena inviato a Carol, tutti saprebbero immediatamente. Il gruppo non permetterà che la transazione venga aggiunta al blocco note perché questi 2 BTC sono già stati spesi.

Questo può funzionare bene in un gruppo piccolo. Poiché tutti si conoscono, probabilmente arriveranno a un accordo su quali amici possono aggiungere transazioni al blocco note. Ma e se volessimo un gruppo di 10.000 partecipanti? L'idea del blocco note non sarebbe adatta, poiché nessuno vuole fidarsi di uno sconosciuto per gestire i registri delle transazioni.

È qui che entra in gioco il Proof of Work. Garantisce che gli utenti non spendano denaro che non hanno il diritto di spendere. Utilizzando una combinazione di teoria dei giochi e crittografia, un algoritmo PoW consente a chiunque di aggiornare la blockchain secondo le regole del sistema.

Come funziona il PoW?

Immagina che il nostro blocco note dell'esempio sopra sia la blockchain, ma non aggiungiamo transazioni una per una – invece, le raggruppiamo in blocchi. Comunichiamo le transazioni alla rete e gli utenti che creano il blocco includeranno le transazioni in un blocco candidato. Le transazioni saranno considerate valide solo quando il loro blocco candidato diventa un blocco confermato, il che significa che è stato aggiunto al database della blockchain.

Il processo di validazione delle transazioni e aggiunta di nuovi blocchi è chiamato estrazione. L'estrazione è costosa e difficile, ma può anche essere gratificante. La ricompensa del blocco proviene dalle commissioni di transazione degli utenti e dai nuovi bitcoin creati dal protocollo.

Il meccanismo Proof of Work richiede che un mineratore (l'utente che crea il blocco) investa risorse come elettricità e potenza di calcolo per processare l'hash dei dati del suo blocco candidato fino a quando non viene trovata la soluzione per un rompicapo.

L'hashing dei dati del blocco significa eseguire una funzione di hash per generare un'identità (hash) per il blocco. Funziona come un "impronta digitale" per i tuoi dati di input ed è unica per ogni blocco.

In altre parole, un mineratore deve verificare e raccogliere transazioni pendenti, organizzarle in un blocco candidato e passare i dati del blocco attraverso una funzione di hashing per creare un hash valido. Se riescono a trovare un hash valido per il loro blocco candidato, lo trasmettono alla rete, aggiungono il blocco alla blockchain e raccolgono le ricompense di estrazione.

Quando un mineratore trasmette il suo blocco candidato e l'hash alla rete, altri partecipanti della rete ripetono il processo di hash per verificare se l'output è realmente valido.

Sebbene siano necessarie innumerevoli tentativi di hash per trovare un hash valido, è facile per una persona confermare se l'hash generato è corretto. Deve solo inviare lo stesso input (dati del blocco) attraverso la funzione hash e verificare se l'output è lo stesso.

Nel Proof of Work devi fornire dati il cui hash soddisfa determinate condizioni, ma non sai come arrivarci. La tua unica opzione è sottoporre i tuoi dati attraverso una funzione hash e verificare se soddisfano le condizioni. In caso contrario, dovrai modificare un po' i tuoi dati per ottenere un hash diverso. La modifica di un semplice carattere nei dati porterà a un risultato completamente diverso, quindi non c'è modo di prevedere il risultato.

Perciò se vuoi creare un blocco, stai giocando a un gioco di indovinare. Normalmente prendi informazioni su tutte le transazioni che desideri aggiungere e alcuni altri dati importanti e poi metti tutto insieme. Ma, poiché il tuo insieme di dati non sarà modificato, dovrai aggiungere un'informazione che sia variabile. Altrimenti, otterresti sempre lo stesso hash come risultato. Questi dati variabili sono ciò che chiamiamo nonce. È un numero che cambierai ad ogni tentativo, quindi riceverai un hash diverso ogni volta.

In sintesi, l'estrazione è il processo di raccolta di dati dalla blockchain e di hashing utilizzando un nonce, fino a trovare un hash specifico come risultato. Se trovi un hash che soddisfa le condizioni stabilite dal protocollo, avrai il diritto di trasmettere il nuovo blocco alla rete. Fatto ciò, gli altri partecipanti della rete aggiorneranno le loro blockchain per includere il nuovo blocco creato.

Per le principali criptovalute di oggi, le condizioni sono molto difficili da soddisfare. Più alta è la velocità di hash nella rete, più difficile è trovare un hash valido. Questo viene fatto per garantire che i blocchi non siano trovati così rapidamente.

Come puoi immaginare, cercare di indovinare grandi quantità di hash può essere costoso per il tuo computer. Stai sprecando cicli di calcolo ed elettricità, ma il protocollo ricompenserà con criptovaluta se trovi un hash valido.

Rivediamo ciò che abbiamo visto finora:

  • L'estrazione è difficile e costosa, ma fornisce sicurezza alla rete.

  • I mineratori che riescono a produrre un blocco valido vengono ricompensati con criptovalute appena emesse e commissioni di transazione.

  • La generazione di un hash valido richiede tempo, ma altri utenti possono facilmente verificarne la validità ripetendo il processo di hash.

Fino a qui, tutto bene. Ma e se qualcuno cercasse di imbrogliare? Cosa impedisce a un utente di inserire transazioni false nel blocco e produrre un hash valido?

È qui che entra in gioco la crittografia a chiave pubblica. Non ci addentreremo in questo articolo, ma dai un'occhiata a Che cos'è la crittografia a chiave pubblica? per un'analisi completa. In poche parole, ci sono alcuni trucchi crittografici che consentono a qualsiasi utente di verificare se qualcuno ha il diritto di muovere i fondi che sta cercando di spendere.

Quando crei una transazione, la firmi. Chiunque nella rete può confrontare la tua firma con la tua chiave pubblica e verificare se corrispondono. Verificheranno anche se puoi davvero spendere i tuoi fondi e se la somma delle tue entrate è maggiore della somma delle tue uscite (cioè, se non stai spendendo più di quanto hai).

Qualsiasi blocco che includa una transazione non valida sarà automaticamente rifiutato dalla rete. Cercare di imbrogliare è costoso. Sprecherai le tue risorse senza ottenere alcuna ricompensa.

È qui che risiede la bellezza del Proof of Work: è costoso imbrogliare, ma è redditizio per chi agisce onestamente. Qualsiasi mineratore razionale cercherà un ritorno sul proprio investimento, quindi ci si aspetta che si comportino in un modo più propenso a generare entrate.

Proof of Work (PoW) vs. Proof of Stake (PoS)

Ci sono vari algoritmi di consenso oltre al PoW, e uno dei più popolari è il Proof of Stake (PoS). Il concetto ha avuto origine nel 2011 ed è stato implementato in Ethereum e in vari altri protocolli.

Nei sistemi Proof of Stake, i mineratori sono sostituiti da validatori. Non c'è estrazione coinvolta e nessuna corsa per indovinare hash. Invece, gli utenti vengono selezionati casualmente – se vengono scelti, devono proporre (o "forgiare") un blocco. Se il blocco è valido, tutti ricevono una ricompensa composta dalle commissioni di transazione del blocco.

Non è qualsiasi utente che può essere selezionato – il protocollo li sceglie in base a vari fattori. Per qualificarsi, i partecipanti devono bloccare uno staking, che è un importo predeterminato della moneta nativa della blockchain. Lo staking funziona come una cauzione: una grande somma di denaro è destinata a scoraggiare l'imputato a fuggire dal processo, in modo simile i validatori bloccano uno staking per scoraggiare l'imbroglio. Se agiscono disonestamente, lo stake (o una parte di esso) sarà confiscato.

Il Proof of Stake ha alcuni vantaggi rispetto al Proof of Work. Il più notevole è che l'impronta di carbonio è minore – poiché non c'è bisogno di fattorie di estrazione ad alta potenza nel PoS, l'elettricità consumata è solo una frazione di quella consumata nel PoW.

Detto ciò, il PoS non ha lo stesso storico del PoW. Sebbene possa essere percepito come uno spreco, l'estrazione è l'unico algoritmo di consenso testato per più di un decennio. Dalla sua introduzione, il PoW di Bitcoin ha garantito trilioni di dollari in transazioni. Per dire con certezza che il PoS può raggiungere lo stesso livello di sicurezza, lo staking deve essere adeguatamente testato a lungo termine.

Considerazioni finali

Il Proof of Work è stata la soluzione originale al problema della doppia spesa e ha dimostrato di essere affidabile e sicura. Bitcoin ha dimostrato che non abbiamo bisogno di entità centralizzate per evitare che lo stesso fondo venga speso due volte. Con l'uso intelligente della crittografia, delle funzioni hash e della teoria dei giochi, i partecipanti di un ambiente decentralizzato possono concordare sullo stato di un database finanziario.

Letture aggiuntive

  • Che cos'è l'estrazione di criptovalute e come funziona?

  • Che cos'è la crittografia a chiave pubblica?

  • Che cos'è un Algoritmo di Consenso Blockchain?

Avviso Legale: questo contenuto è presentato a te “nello stato in cui si trova“ solo per scopi informativi ed educativi, senza alcun tipo di garanzia. Il contenuto non deve essere interpretato come consiglio finanziario, legale o professionale, e non ha l'intento di raccomandare l'acquisto di alcun prodotto o servizio specifico. Devi cercare il tuo consiglio da consulenti professionali. Nel caso di contributi e articoli inviati da collaboratori di terze parti, nota che le opinioni espresse appartengono all'autore rispettivo e non riflettono necessariamente le opinioni della Binance Academy. Per ulteriori dettagli, ti preghiamo di leggere il nostro avviso qui. I prezzi degli asset digitali possono essere volatili. Il valore del tuo investimento può aumentare o diminuire e potresti non recuperare l'importo investito. Sei l'unico responsabile delle tue decisioni di investimento e la Binance Academy non si assume alcuna responsabilità per eventuali perdite. Questo materiale non deve essere interpretato come consiglio finanziario, legale o professionale. Per ulteriori informazioni, ti preghiamo di consultare i nostri Termini di Utilizzo e l'Avviso di Rischio.