La proof of work (PoW) è una forma di prova crittografica a conoscenza zero in cui una parte (il prover) dimostra agli altri (i verificatori) che è stata spesa una certa quantità di uno specifico sforzo computazionale. I verificatori possono successivamente confermare questaspesa con il minimo sforzo da parte loro: il concetto è stato inventato da Cynthia Dwork e Moni Naor nel 1993 come un modo per scoraggiare gli attacchi denial-of-service e altri abusi di servizio come lo spam su una rete richiedendo un po 'di lavoro da un richiedente del servizio, di solito cioè il tempo di elaborazione da parte di un computer. Il termine "prova del lavoro" è stato coniato e formalizzato per la prima volta in un documento del 1999 da Markus Jakobsson e Ari Juels. 1][2] La prova del lavoro è stata successivamente resa popolare da Bitcoin come base per il consenso nei blockchain e nelle criptovalute permissionless, in cui i minatori competono per aggiungere blocchi e coniare nuova valuta, ogni minatore sperimenta una probabilità di successo proporzionale al loro sforzo computazionale speso. PoW e PoS (proof of stake) sono i due meccanismi di deterrenc e Sybil più noti. Nel contesto delle criptovalute sono i meccanismi più comuni.[ 3] Una caratteristica chiave degli schemi proof-of-work è la loro asimmetria: il lavoro – il calcolo – deve essere moderatamente difficile (ma fattibile) sul lato prover o richiedente, ma facile da controllare per il verificatore o il fornitore di servizi. Questa idea è anche conosciuta come una funzione di costo della CPU, puzzle client, puzzle computazionale o funzione di determinazione dei prezzi della CPU. Un'altra caratteristica comune sono le strutture di incentivazione integrate che premiano l'allocazione della città di capa computazionalealla rete con valore sotto forma di denaro. Lo scopo degli algoritmi proof-of-work non è quello di dimostrare che un certo lavoro è stato svolto o che un puzzle computazionale è stato "risolto", ma di scoraggiare la manipolazione dei dati attraverso la soluzione specifica distabilire grandi requisiti di controllo energetico e hardware per la capacità di farlo. Sfondo Un sistema popolare, utilizzato in Hashcash, utilizza inversioni di hash parziali per dimostrare che il calcolo è stato fatto, come token di buona volontà per inviare un'e-mail. Ad esempio, l'intestazione following rappresenta circa 252 calcoli hash per inviare un messaggio a calvin@comics.net il 19 gennaio 2038: X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE Si verifica con un unico calcolo controllando che l'hash SHA-1 dello stamp (ometti il nome dell'intestazione X-Hashcash: compresi i due punti e qualsiasi quantità di spazio bianco che lo segue fino alla cifra '1') inizi con 52 zeri binari, cioè 13 zeri esadecimali:[1] 000000000000756af69e2ffbdb930261873cd71 Se i sistemi PoW possano effettivamente risolvere un particolare problema di denial-of-service come il problema dello spam è oggetto di dibattito;[ 4][5] il sistema deve rendere l'invio di e-mail di spam invadentemente improduttivo per lo spammer, ma non dovrebbe nemmeno impedire agli utenti legittimi di inviare i loro messaggi. In altre parole, un utente genuino non dovrebbe incontrare alcuna difficoltà durante l'invio di un'e-mail, ma uno spammer di posta elettronica dovrebbe spendere una notevole quantità di potenza di calcolo per inviare molte e-mail contemporaneamente. I sistemi proof-of-work vengono utilizzati da altri sistemi crittografici più complessi come bitcoin, che utilizza un sistema simile a Hashcash. 4] Varianti Esistono due classi di protocolli proof-of-work. • I protocolli challenge-response presuppongono un collegamento interattivo diretto tra il richiedente (client) e il provider (server). Il provider sceglie una sfida, ad esempio un elemento in un set con una proprietà, il richiedente trova la risposta pertinente nel set, che viene rinviata e controllata dal provider. Poiché la sfida viene scelta sul posto dal fornitore, la sua difficoltàpuò essere adattata al suo carico attuale. Il lavoro sul lato richiedente può essere limitato se il protocollo challenge-response ha una soluzione nota (scelta dal provider) o è noto che esiste all'interno di uno spazio di ricerca delimitato. • I protocolli di verifica della soluzione non presuppongono tale collegamento: di conseguenza, il problema deve essere autoimposto prima che una soluzione venga ricercata dal richiedente e il fornitore deve verificare sia la scelta del problema che la soluzione trovata. La maggior parte di questi schemi sono procedure iterative probabilistiche illimitatecome Hashcash. I protocolli di soluzione nota tendono ad avere una varianza leggermente inferiore rispetto ai protocolli probabilistici illimitati perché la varianza di una distribuzione rettangolare è inferiore alla varianza di una distribuzione di Poisson (con la stessa media).[ Una tecnica generica per ridurre la varianza consiste nell'utilizzare più sotto-sfide indipendenti, poiché la media di più campioni avrà una varianza inferiore. Ci sono anche funzioni a costo fisso come il puzzle time-lock. Inoltre, le funzioni diunderlying utilizzate da questi schemi possono essere: • Legato alla CPU in cui il calcolo viene eseguito alla velocità del processore, che varia notevolmente nel tempo, nonché dal server di fascia alta ai dispositivi portatili di fascia bassa. [6] • Memory-bound[7][8][9][10] dove lavelocità di comp utation è limitata dagli accessi alla memoria principale (latenza o larghezza di banda), le cui prestazioni dovrebbero essere meno sensibili all'evoluzione dell'hardware. • Collegato alla rete[11] se il client deve eseguire alcuni calcoli, ma deve raccogliere alcuni token daiserver remoti prima di interrogare il provider di servizi finale. In questo senso, il lavoro non viene effettivamente eseguito dal richiedente, ma comporta comunque ritardi a causa della latenza per ottenere i token richiesti. Infine, alcuni sistemi PoW offrono collegamentiche consentono ai partecipanti che conoscono un segreto, in genere una chiave privata, di generare PoW economici. La logica è che i titolari di mailing list possono generare francobolli per ogni destinatario senza incorrere in un costo elevato. Se tale funzionalità è desiderabile dipendedallo scenario di utilizzo. Elenco delle funzioni proof-of-work Ecco un elenco di funzioni di prova del lavoro note: • Radice quadrata intera modulo a grande primo[2][dubbio – discutere] • Indebolire le firme Fiat-Shamir[2] • Firma Ong–Schnorr–Shamir rotta da Pollard[2] • Inversione parziale dell'hash[12][13][1] Questo documento formalizza l'idea di una prova di lavoro e introduce "l'idea dipendente di un protocollo di budino di pane", un sistema di "proof-of-work riutilizzabile" (RPoW).[ 14] • Sequenze di hash[15] • Puzzle[16] • Puzzle basato su Diffie-Hellman [17] • Moderato[7] • Mbound[8] • Hokkaido[9] • Ciclo del cuculo[10] • Basato su alberi di Merkle[18] • Protocollo puzzle per visite guidate [11] Proof-of-work riutilizzabile Lo scienziato informatico Hal Finney ha costruito sull'idea proof-of-work, producendo un sistema che sfruttava la prova di lavoro riutilizzabile (RPoW).[ 19] L'idea di rendere le prove del lavoro riutilizzabili per qualche scopo pratico era già stata stabilita nel 1999. [1] Il purpo se di Finneyper RPoW era come denaro simbolico. Proprio come si pensa che il valore di una moneta d'oro sia sostenuto dal valore dell'oro grezzo necessario per realizzarlo, il valore di un token RPoW è garantito dal valore delle risorse del mondo reale necessarie per "coniare" un token PoW. Nellaversione di Fi nney di RPoW, il token PoW è un pezzo di Hashcash. Un sito Web può richiedere un token PoW in cambio di servizio. Richiedere un token PoW agli utenti inibirebbe l'uso frivolo o eccessivo del servizio, risparmiando le risorse sottostanti del servizio,su ch come larghezza di banda per Internet, calcolo, spazio su disco, elettricità e sovraccarico amministrativo. Il sistema RPoW di Finney differiva da un sistema PoW nel consentire lo scambio casuale di token senza ripetere il lavoro richiesto per generarli. Dopo che qualcuno aveva "speso" un token PoW su un sito Web, l'operatore del sito Web poteva scambiare quel token PoW "speso" con un nuovo token RPoW non speso , che poteva quindi essere speso in un sito Web di terze parti equipaggiato in modo simile per accettare token RPoW. Ciò consentirebbe di risparmiare le risorsealtrimenti necessarie per "coniare" un token PoW. La proprietà anti-contraffazione del token RPoW è stata garantita da un'attestazione remota. Il server RPoW che scambia un token PoW o RPoW usato con uno nuovo di pari valore utilizza l'attestazione remota per consentire a qualsiasiparte interessata di verificare quale software è in esecuzione sul server RPoW. Poiché il codice sorgente per il software RPoW di Finney è stato pubblicato (sotto una licenza simile a BSD), qualsiasi programmatore sufficientemente esperto potrebbe, ispezionando il codice, verificare che il software (e, per estensione, il server RPoW) non abbia mai emesso un nuovo token se non in cambio di un token speso di pari valore. Fino al 2009, il sistema di Finney è stato l'unico sistema RPoW ad essere stato implementato; non ha mai visto un uso economicamente significativo. RPoW è protetto dalle chiavi private archiviate nell'hardware TPM (Trusted Platform Module) e dai produttori che detengono chiavi private TPM. Rubare la chiave di un produttore di TPM o ottenere la chiave esaminando il chip TPM stesso sovvertirebbe tale garanzia. Prova di lavoro di tipo Bitcoin Nel 2009, la rete Bitcoin è andata online. Bitcoin è una criptovaluta proof-of-work che, come RPoW di Finney, si basa anche sull'Hashcash PoW. Ma in Bitcoin, la protezione a doppia spesa è fornita da un protocollo P2P decentralizzato per il monitoraggio dei trasferimentidi monete, piuttosto che dalla funzione di elaborazione affidabile hardware utilizzata da RPoW. Bitcoin ha una migliore affidabilità perché è protetto dal calcolo. I bitcoin vengono "estratti" utilizzando la funzione proof-of-work hashcash dai singoli minatori e verificati dai nodi decentralizzati nella rete bitcoin P2P. La difficoltà viene periodicamente regolata per mantenere il tempo di blocco intorno a un tempo target. Consumo energetico Consumo di elettricità Bitcoin a partire dal 2021[20] Dalla creazione di Bitcoin, il proof-of-work è stato ildesign predominante della criptovaluta peer-to-peer. Gli studi hanno stimato il consumo totale di energia del mining di criptovaluta. [21] Il meccanismo PoW richiede una grande quantità di risorse di calcolo, che consumano una quantità significativa di elettricità. Ilconsumo totale di energia di Bitco in è equivalente a quello di un piccolo paese.[ 3] Questo consumo di energia è risultato causare grandi quantità di emissioni di carbonio, interferendo con gli impegni internazionali contemporanei di mitigazione dei cambiamenti climatici. Secondo uno studio del 2021, il mining di Bitcoin nella sola Cina può presto superare le emissioni totali annuali di paesi europei come l'Italia. 22][23] Modifica della cronologia Ogni blocco che viene aggiunto alla blockchain, a partire dal blocco contenente una determinata transazione, è chiamato conferma di tale transazione. Idealmente, i commercianti e i servizi che ricevono il pagamento in criptovaluta dovrebbero attendere che almeno una confirmation venga distribuita sulla rete, prima di presumere che il pagamento sia stato effettuato. Più conferme il commerciante attende, più difficile è per un utente malintenzionato invertire con successo la transazione in una blockchain, a meno che l'attaccante noncontrolli più della metà della potenza totale della rete, nel qual caso viene chiamato attacco del 51%. 24] ASIC e pool di mining All'interno della comunità Bitcoin ci sono gruppi che lavorano insieme in pool di mining. [25] Alcuni minatori utilizzano circuiti integrati specifici dell'applicazione (ASIC) per PoW.[ 26] Questa tendenza verso pool di mining e ASIC specializzati ha reso il mining di alcune criptovalute economicamente impossibile per la maggior parte dei giocatori senza accesso agli ultimi ASIC, alle fonti vicine di energia economica o ad altri vantaggi speciali. [27] Alcuni PoW affermano di essere resistenti all'ASIC, cioè di limitare il guadagno di efficienza che un ASIC può avere rispetto all'hardware di base, come una GPU, per essere ben al di sotto di un ordine di grandezza. La resistenza ASIC ha il vantaggio di mantenere il mining economicamente fattibile su hardware diqualità, ma contribuisce anche al rischio corrispondente che un utente malintenzionato possa affittare brevemente l'accesso a una grande quantità di potenza di elaborazione delle materie prime non specializzata per lanciare un attacco del 51% contro una criptovaluta. 28]