Prova di lavoro (PoW) - KamilTaylan.blog
3 Maggio 2021 22:53

Prova di lavoro (PoW)

Che cos’è la prova di lavoro (PoW)?

La prova di lavoro (PoW) descrive un sistema che richiede uno sforzo non trascurabile ma fattibile per scoraggiare usi frivoli o dannosi della potenza di calcolo, come l’invio di e-mail di spam o il lancio di attacchi denial of service. Il concetto è stato successivamente adattato alla sicurezza del denaro digitale da Hal Finney nel 2004 attraverso l’idea di una “prova di lavoro riutilizzabile” utilizzando l’algoritmo di hashing SHA-256.

Dopo la sua introduzione nel 2009, Bitcoin è diventata la prima applicazione ampiamente adottata dell’idea PoW di Finney (Finney è stata anche la destinataria della prima transazione bitcoin). La prova del lavoro costituisce anche la base di molte altre criptovalute, consentendo un consenso sicuro e decentralizzato.

Punti chiave

  • La prova di lavoro (PoW) è un meccanismo di consenso decentralizzato che richiede ai membri di una rete di impegnarsi per risolvere un puzzle matematico arbitrario per impedire a chiunque di giocare con il sistema.
  • La prova di lavoro è ampiamente utilizzata nell’estrazione di criptovalute, per convalidare le transazioni e estrarre nuovi token.
  • A causa della prova del lavoro, Bitcoin e altre transazioni di criptovaluta possono essere elaborate peer-to-peer in modo sicuro senza la necessità di una terza parte fidata.
  • La prova del lavoro su larga scala richiede enormi quantità di energia, che aumenta solo man mano che più minatori si uniscono alla rete.
  • Proof of Stake (POS) è stato uno dei numerosi nuovi meccanismi di consenso creati come alternativa alla prova di lavoro.

Comprensione della prova di lavoro

Questa spiegazione si concentrerà sulla prova del lavoro in quanto funziona nella rete bitcoin. Bitcoin è una valuta digitale sostenuta da una sorta di registro distribuito noto come ” blockchain “. Questo libro mastro contiene una registrazione di tutte le transazioni bitcoin, disposte in “blocchi” sequenziali, in modo che nessun utente possa spendere due volte le proprie disponibilità. Al fine di evitare manomissioni, il libro mastro è pubblico, ovvero “distribuito”; una versione modificata verrebbe rapidamente rifiutata da altri utenti.

Il modo in cui gli utenti rilevano la manomissione nella pratica è attraverso gli hash, lunghe stringhe di numeri che servono come prova del lavoro. Metti un dato insieme di dati attraverso una funzione hash (bitcoin usa SHA-256) e genererà sempre e solo un hash. A causa dell ‘”effetto valanga”, tuttavia, anche una piccola modifica a qualsiasi parte dei dati originali risulterà in un hash totalmente irriconoscibile. Qualunque sia la dimensione del set di dati originale, l’hash generato da una data funzione avrà la stessa lunghezza. L’hash è una funzione unidirezionale: non può essere utilizzato per ottenere i dati originali, ma solo per verificare che i dati che hanno generato l’hash corrispondano ai dati originali.

Generare un qualsiasi hash per un insieme di transazioni bitcoin sarebbe banale per un computer moderno, quindi per trasformare il processo in “lavoro”, la rete bitcoin imposta un certo livello di “difficoltà”. Questa impostazione viene regolata in modo che un nuovo blocco venga ” estratto ” – aggiunto alla blockchain generando un hash valido – circa ogni 10 minuti. L’impostazione della difficoltà si ottiene stabilendo un “obiettivo” per l’hash : più basso è l’obiettivo, più piccolo è l’insieme di hash validi e più difficile è generarne uno. In pratica, questo significa un hash che inizia con una stringa di zeri molto lunga.



La prova di lavoro è stata inizialmente creata come soluzione proposta al crescente problema delle e-mail di spam.

considerazioni speciali

Poiché un determinato set di dati può generare solo un hash, come fanno i minatori ad assicurarsi di generare un hash al di sotto del target? Modificano l’input aggiungendo un numero intero, chiamato nonce (“numero usato una volta”). Una volta trovato un hash valido, viene trasmesso alla rete e il blocco viene aggiunto alla blockchain.

L’estrazione mineraria è un processo competitivo, ma è più una lotteria che una corsa. In media, qualcuno genererà una prova di lavoro accettabile ogni dieci minuti, ma nessuno lo sa chi sarà. I minatori si uniscono per aumentare le loro possibilità di blocchi minerari, il che genera commissioni di transazione e, per un tempo limitato, una ricompensa di bitcoin di nuova creazione.

La prova del lavoro rende estremamente difficile alterare qualsiasi aspetto della blockchain, poiché tale alterazione richiederebbe il re-mining di tutti i blocchi successivi. Inoltre, rende difficile per un utente o un pool di utenti monopolizzare la potenza di calcolo della rete, poiché i macchinari e la potenza necessari per completare le funzioni hash sono costosi.



Se una parte di una rete mineraria inizia ad accettare una prova di lavoro alternativa, si parla di hard fork.

Esempio di prova di lavoro

La prova del lavoro richiede che un computer si impegni in modo casuale nelle funzioni di hashing fino a quando non arriva a un output con la quantità minima corretta di zeri iniziali. Ad esempio, l’hash per il blocco # 429818, estratto il 14 settembre 2016, ad esempio, è 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. La ricompensa del blocco per quell’hash di successo era di 12,5 BTC.

Quel blocco conterrà sempre 2.012 transazioni che coinvolgono poco più di 1.000 bitcoin, così come l’intestazione del blocco precedente. Se qualcuno provasse a modificare l’importo di una transazione anche di 0,000001 bitcoin, l’hash risultante sarebbe irriconoscibile e la rete rifiuterebbe il tentativo di frode.

Domande frequenti sulla prova di lavoro

Cosa significa prova di lavoro?

PoW richiede che i nodi su una rete forniscano la prova che hanno speso potenza di calcolo (cioè lavoro) al fine di raggiungere il consenso in modo decentralizzato e per evitare che i cattivi attori superino la rete.

In che modo la prova di lavoro convalida una transazione crittografica?

Il lavoro in sé è arbitrario. Per Bitcoin, implica iterazioni di algoritmi di hashing SHA-256. Il “vincitore” di un round di hashing, tuttavia, aggrega e registra le transazioni dal mempool al blocco successivo. Poiché il “vincitore” è scelto a caso in modo proporzionale al lavoro svolto, incentiva tutti sulla rete ad agire in modo onesto e a registrare solo transazioni vere.

Perché le criptovalute hanno bisogno di una prova di lavoro?

Poiché sono decentralizzati e peer-to-peer per progettazione, le blockchain come le reti di criptovaluta richiedono un modo per raggiungere sia il consenso che la sicurezza. La prova del lavoro è uno di questi metodi che rende troppo dispendioso in termini di risorse cercare di superare la rete. Esistono anche altri meccanismi di prova che consumano meno risorse, ma che hanno altri svantaggi o difetti, come la prova di stake (PoS) e la prova di bruciatura. Senza un meccanismo di prova, la rete ei dati memorizzati al suo interno sarebbero vulnerabili ad attacchi o furti.

Bitcoin utilizza la prova di lavoro?

Sì. Utilizza un algoritmo PoW basato sulla funzione di hashing SHA-256 per validare e confermare le transazioni oltre che per emettere nuovi bitcoin in circolazione.

In che modo il Proof of Stake (PoS) differisce dal PoW?

PoS è un meccanismo di consenso che assegna in modo casuale il nodo che estrarrà o convaliderà le transazioni a blocchi in base al numero di monete che quel nodo contiene. Più gettoni sono contenuti in un portafoglio, maggiore è la potenza di mining che gli viene effettivamente concessa. Sebbene PoS sia molto meno dispendioso in termini di risorse, ha molti altri difetti tra cui una maggiore possibilità di un attacco del 51% in altcoin più piccoli e incentivi a accumulare gettoni e non usarli.