Punti chiave

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

  • 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 propria rete e i propri dati blockchain.

introduzione

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

Il Proof of Work è stato il primo algoritmo di consenso ad emergere e rimane uno dei più importanti insieme al Proof of Stake (PoS). La PoW è stata introdotta da Satoshi Nakamoto nel whitepaper Bitcoin del 2008, ma la tecnologia stessa è stata concepita molto prima di allora.

HashCash di Adam Back è un primo esempio di algoritmo Proof of Work nei giorni pre-criptovaluta. Richiedendo ai mittenti di eseguire una piccola quantità di elaborazione prima di inviare un'e-mail, i destinatari potrebbero mitigare lo spam. Questo calcolo non costerebbe praticamente nulla a un mittente legittimo, ma si aggiungerebbe rapidamente a qualcuno che invia e-mail in massa.

Cos'è una doppia spesa?

Una doppia spesa si verifica quando gli stessi fondi vengono spesi più di una volta. Il termine viene utilizzato quasi esclusivamente nel contesto del denaro digitale: dopo tutto, sarebbe difficile spendere due volte lo stesso denaro fisico.

Quando paghi un caffè oggi, consegni i contanti a un cassiere che probabilmente li chiude in una cassa. Non puoi andare al bar dall’altra parte della strada e pagare un altro caffè con lo stesso conto. Tuttavia, nei sistemi di cassa digitali, esiste la possibilità che ciò sia possibile.

Hai sicuramente duplicato un file del computer prima di utilizzare i comandi copia e incolla. È anche facile per te inviare via email lo stesso file a dozzine di persone. Poiché la moneta digitale è costituita solo da dati, è necessario evitare che le persone spendano due volte, ovvero copino e spendano le stesse unità in luoghi diversi. Un sistema di pagamento digitale che non riesce a prevenire la doppia spesa crollerà in pochissimo tempo.

For a more in-depth look at double-spending, check out Double Spending Explained.

Perché è necessaria la prova del lavoro?

Se hai letto il nostro articolo sulla tecnologia blockchain, saprai che gli utenti di criptovaluta trasmettono costantemente transazioni alla rete. Tuttavia, queste transazioni non sono immediatamente considerate valide. Ciò accade solo quando vengono confermati e aggiunti alla blockchain.

La blockchain di Bitcoin, ad esempio, funziona come un database di transazioni pubbliche (registro) che ogni utente può vedere. Immaginalo in questo modo: tu e tre amici avete un blocco note per tenere traccia delle vostre transazioni bitcoin. Ogni volta che uno di voi vuole effettuare un trasferimento di valore, lo scrive:

Alice paga a Bob 5 BTC; Bob paga Carol 2 BTC, ecc.

Ma ogni volta che effettui una transazione, fai riferimento alla transazione da cui provengono i fondi. Quindi, se Bob pagasse Carol con 2 BTC, la voce sarebbe simile alla seguente:

Bob paga a Carol 2 BTC provenienti da questa precedente transazione con Alice.

Ora abbiamo un modo per tracciare le unità di BTC. Se Bob tenta di effettuare un'altra transazione utilizzando gli stessi 2 BTC che ha appena inviato a Carol, tutti lo sapranno immediatamente. Il gruppo non consentirà che la transazione venga aggiunta al blocco note perché quei 2 BTC erano già spesi.

Ora, questo potrebbe funzionare bene in un piccolo gruppo. Tutti si conoscono, quindi probabilmente saranno d'accordo su quale degli amici dovrebbe aggiungere transazioni al blocco note. E se volessimo un gruppo di 10.000 partecipanti? L’idea del blocco note non si adatta bene, perché nessuno vuole fidarsi di un estraneo per gestirlo.

È qui che entra in gioco Proof of Work. Garantisce che gli utenti non spendano soldi 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 le transazioni una per una, bensì le raggruppiamo in blocchi. Annunciamo le transazioni alla rete e quindi gli utenti che creano un blocco le includeranno in un blocco candidato. Le transazioni saranno considerate valide solo quando il loro blocco candidato diventerà un blocco confermato, ovvero sarà stato aggiunto al database blockchain.

Il processo di convalida delle transazioni e di aggiunta di nuovi blocchi è chiamato mining. È costoso e difficile, ma può anche essere gratificante. La ricompensa per il blocco è costituita dalle commissioni di transazione degli utenti e dai nuovissimi bitcoin creati dal protocollo.

Il meccanismo Proof of Work richiede che un miner (l’utente che crea il blocco) investa risorse come elettricità e potenza di calcolo per eseguire l’hashing dei dati del blocco candidato fino a quando non viene trovata una soluzione a un puzzle.

Eseguire l'hashing dei dati del blocco significa passarli attraverso una funzione di hashing per generare un hash del blocco. L'hash del blocco funziona come una "impronta digitale": è un'identità per i tuoi dati di input ed è univoco per ciascun blocco.

In altre parole, un miner deve verificare e raccogliere le transazioni in sospeso, 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 blocco candidato, lo trasmettono alla rete, aggiungono il blocco alla blockchain e raccolgono i premi di mining.

Quando un minatore trasmette il blocco e l'hash candidati alla rete, gli altri partecipanti alla rete ripeteranno il processo di hashing per verificare che l'output sia effettivamente valido.

Sebbene siano necessari innumerevoli tentativi di hashing per trovare un hash valido, è banale per chiunque confermare che l’hash generato sia corretto. Devono solo inviare lo stesso input (blocco dati) tramite la funzione hash e verificare se l'output è lo stesso.

In Proof of Work, devi fornire dati il ​​cui hash corrisponde a determinate condizioni. Ma non sai come arrivarci. La tua unica opzione è passare i tuoi dati attraverso una funzione hash e verificare se soddisfano le condizioni. In caso contrario, dovrai modificare leggermente i tuoi dati per ottenere un hash diverso. Cambiare anche un solo carattere nei dati comporterà un risultato completamente diverso, quindi non c'è modo di prevedere quale potrebbe essere l'output.

Di conseguenza, se vuoi creare un blocco, stai giocando a un indovinello. In genere prendi informazioni su tutte le transazioni che desideri aggiungere e alcuni altri dati importanti, quindi esegui l'hashing di tutto insieme. Ma poiché il tuo set di dati non cambierà, devi aggiungere un’informazione variabile. Altrimenti, otterresti sempre lo stesso hash come output. Questi dati variabili sono ciò che chiamiamo nonce. È un numero che cambierai ad ogni tentativo, quindi otterrai un hash diverso ogni volta.

Riassumendo, il mining è il processo di raccolta dei dati blockchain e di hashing insieme a un nonce finché non si trova un hash particolare. Se trovi un hash che soddisfa le condizioni stabilite dal protocollo, ottieni il diritto di trasmettere il nuovo blocco alla rete. A questo punto gli altri partecipanti alla rete aggiornano le loro blockchain per includere il nuovo blocco.

Per le principali criptovalute oggi, le condizioni sono incredibilmente difficili da soddisfare. Maggiore è l’hash rate sulla rete, più difficile sarà trovare un hash valido. Questo viene fatto per garantire che i blocchi non vengano trovati troppo rapidamente.

As you can imagine, trying to guess massive amounts of hashes can be costly on your computer. You’re wasting computational cycles and electricity. But the protocol will reward you with cryptocurrency if you find a valid hash.

Ricapitoliamo quello che sappiamo finora:

  • Il mining è difficile e costoso ma fornisce sicurezza alla rete.

  • I minatori che riescono a produrre un blocco valido vengono ricompensati con criptovalute di nuova emissione e commissioni di transazione.

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

Fin qui tutto bene. Ma cosa succede se provi a imbrogliare? Cosa ti impedisce di inserire un sacco di transazioni fraudolente nel blocco e di produrre un hash valido?

È qui che entra in gioco la crittografia a chiave pubblica. Non approfondiremo questo articolo, ma dai un'occhiata a Cos'è la crittografia a chiave pubblica? per uno sguardo completo. In breve, esistono alcuni trucchi crittografici che consentono a qualsiasi utente di verificare se qualcuno ha il diritto di spostare i fondi che sta tentando di spendere.

Quando crei una transazione, la firmi. Chiunque sulla rete può confrontare la tua firma con la tua chiave pubblica e verificare se corrispondono. Controlleranno anche se puoi effettivamente spendere i tuoi fondi e che la somma dei tuoi input sia superiore alla somma dei tuoi output (ovvero, che non stai spendendo più di quanto hai).

Qualsiasi blocco che includa una transazione non valida verrà automaticamente rifiutato dalla rete. È costoso per te anche tentare di imbrogliare. Sprecherai le tue risorse senza alcuna ricompensa.

In questo sta la bellezza della Proof of Work: rende costoso imbrogliare ma redditizio agire onestamente. Qualsiasi minatore razionale cercherà un ritorno sul proprio investimento, quindi ci si può aspettare che si comporti in un modo che abbia maggiori probabilità di generare entrate.

Proof of Work (PoW) e Proof of Stake (PoS)

Esistono molti algoritmi di consenso oltre al PoW, ma uno dei più popolari è il Proof of Stake (PoS). Il concetto risale al 2011 ed è stato implementato in Ethereum e in molti altri protocolli.

Nei sistemi Proof of Stake i miner vengono sostituiti con i validatori. Non è coinvolto il mining e nessuna corsa per indovinare gli hash. Invece, gli utenti vengono selezionati in modo casuale: se vengono scelti, devono proporre (o “forgiare”) un blocco. Se il blocco è valido, riceveranno una ricompensa composta dalle commissioni derivanti dalle transazioni del blocco.

Tuttavia non è possibile selezionare qualsiasi utente: il protocollo li sceglie in base a una serie di fattori. Per essere idonei, i partecipanti devono bloccare una quota, che è un importo predeterminato della valuta nativa della blockchain. La posta in gioco funziona come la cauzione: proprio come gli imputati versano una grossa somma di denaro per disincentivarli dal saltare il processo, i validatori bloccano una posta in gioco per disincentivare gli imbrogli. Se agiscono in modo disonesto, la loro quota (o una parte di essa) verrà presa.

La Proof of Stake presenta alcuni vantaggi rispetto alla Proof of Work. Il più notevole è la minore impronta di carbonio: poiché non sono necessarie mining farm ad alta potenza in PoS, l’elettricità consumata è solo una frazione di quella consumata in PoW.

Detto questo, la PoS non ha lo stesso track record della PoW. Sebbene possa essere percepito come uno spreco, il mining è l’unico algoritmo di consenso testato sul campo da oltre un decennio. Dal suo lancio, il PoW di Bitcoin ha assicurato transazioni per trilioni di dollari. Per dire con certezza se il PoS può rivaleggiare con la sua sicurezza, lo staking deve essere adeguatamente testato a lungo termine.

Pensieri conclusivi

Proof of Work è stata la soluzione originale al problema della doppia spesa e si è dimostrata affidabile e sicura. Bitcoin ha dimostrato che non abbiamo bisogno di entità centralizzate per evitare che gli stessi fondi vengano spesi due volte. Con un uso intelligente della crittografia, delle funzioni hash e della teoria dei giochi, i partecipanti in un ambiente decentralizzato possono concordare lo stato di un database finanziario.

Ulteriori letture

  • Cos'è il mining di criptovalute e come funziona?

  • Cos'è la crittografia a chiave pubblica?

  • Cos’è un algoritmo di consenso Blockchain?

Dichiarazione di non responsabilità: questo contenuto viene presentato "così com'è" solo per informazioni generali e scopi didattici, senza dichiarazioni o garanzie di alcun tipo. Non deve essere interpretato come consulenza finanziaria, legale o di altro tipo, né è inteso a raccomandare l'acquisto di alcun prodotto o servizio specifico. Dovresti chiedere il tuo consiglio a consulenti professionali appropriati. Laddove l'articolo sia fornito da un collaboratore di terze parti, tieni presente che le opinioni espresse appartengono al contributore di terze parti e non riflettono necessariamente quelle di Binance Academy. Si prega di leggere il nostro disclaimer completo qui per ulteriori dettagli. I prezzi degli asset digitali possono essere volatili. Il valore del tuo investimento potrebbe diminuire o aumentare e potresti non recuperare l'importo investito. Sei l'unico responsabile delle tue decisioni di investimento e Binance Academy non è responsabile per eventuali perdite che potresti subire. Questo materiale non deve essere interpretato come consulenza finanziaria, legale o di altro tipo. Per ulteriori informazioni, consultare i nostri Termini di utilizzo e Avvertenza sui rischi.