Devi sapere: Proof of Stake: cos'è in parole semplici. Cos'è la prova di lavoro

Proof-of-Work e Proof-of-Stake sono algoritmi di consenso utilizzati per convalidare nuovi blocchi della rete, nonché per aggiungere transazioni ad essi. Di conseguenza, il principio di funzionamento di questi sistemi influisce direttamente sui minatori, che decrittografano i blocchi 24 ore su 24, 7 giorni su 7. Qual è la differenza tra i due algoritmi e quale è più redditizio dal punto di vista del mining? Consideriamo i loro principi di funzionamento e facciamo anche una descrizione comparativa.

Proof-of-Work: principio di funzionamento

Proof-of-Work, o PoW, come viene chiamato in breve, viene tradotto dall'inglese come "prova di lavoro". In realtà, il principio del suo funzionamento è racchiuso nel nome stesso dell'algoritmo. Permette alla rete di verificare che il miner abbia effettivamente svolto tutto il lavoro di calcolo della funzione SHA-256 o Scrypt che è alla base delle criptovalute.

L'essenza del PoW è la seguente:

  • Il minatore deve risolvere un problema complesso che solo i computer sufficientemente potenti possono fare.
  • Il risultato ottenuto durante la soluzione dovrebbe essere facilmente verificabile.

Se parliamo dell'algoritmo proof-of-work, nello specifico nel contesto delle criptovalute, esso consente ai nodi (puoi scoprire cosa sono i nodi e come funzionano) di verificare il lavoro dei miner, nonché l'affidabilità dei loro calcoli.

Questo meccanismo stimola la comunità dei minatori ad aggiornare costantemente le proprie attrezzature minerarie, poiché la complessità della rete è in costante aumento, quindi la potenza di calcolo totale nella rete Bitcoin già nel 2012 ha superato quella dei supercomputer più moderni.

Vale la pena notare che la necessità di modernizzazione dal punto di vista dei minatori non è tanto un vantaggio quanto uno svantaggio. Dopotutto, il costante aggiornamento delle attrezzature richiede ingenti costi finanziari, che escludono alcuni giocatori dal mercato.

Proof of Stake: principiolavoro

Fino al 2012, il PoW era l’unico algoritmo utilizzato nelle criptovalute, ma all’orizzonte appariva un concorrente. È diventato l’algoritmo Proof-of-Stake, o PoS, che tradotto dall’inglese significa “controllare la puntata”. La struttura del suo funzionamento è fondamentalmente diversa dalla “prova di posta in gioco”. Se nel primo algoritmo veniva utilizzata la potenza di calcolo per aumentare la priorità nella rete, nel caso del PoS il ruolo principale è giocato dal numero di monete nel portafoglio.

Cioè, per aumentare le tue possibilità di essere il primo a decrittografare un blocco, devi tenere nel tuo portafoglio il maggior numero possibile di monete della criptovaluta che stai estraendo. Da un lato, questo approccio è molto vantaggioso per i minatori, perché non hanno più bisogno di aggiornare le proprie apparecchiature, sprecare grandi quantità di elettricità e attaccare la rete diventa quasi impossibile. Ma ha anche i suoi svantaggi. Ad esempio, se uno degli utenti o un gruppo unito riesce a concentrare nelle proprie mani gran parte di tutte le monete, sarà in grado di controllare la rete.

Proof-of-Work e Proof-of-Stake: da che parte sta la community?

Gli algoritmi Proof-of-Work e Proof-of-Stake (o Proof-of-work e Proof-of-stake) sono da tempo alla base di gravi controversie tra miner. Alcuni sostengono che la prova del lavoro sia più giusta, altri quella della prova della posta in gioco. È impossibile dare una risposta certa.

Inoltre, oggi viene spesso utilizzata una versione ibrida che combina entrambi gli algoritmi. Quando una moneta viene emessa, la rete opera su Proof-of-Work e, una volta completata l’emissione, su Proof-of-Stake. Questo è abbastanza logico. Dopotutto, la partecipazione attiva alla fase di test del lavoro consente di accumulare un numero sufficiente di monete per inserirsi "organicamente" in una nuova fase di test delle azioni.

Nonostante la novità e le discussioni appassionate sul sistema PoS, la maggior parte delle principali criptovalute non è pronta ad abbandonare l'algoritmo Proof-of-Work. Forse questo accadrà in futuro, ma questo non viene osservato ora. Proof-of-Work e Proof-of-Stake rimangono concorrenti.

Cosa sono la Proof of Work e la Proof of Stake?

Proof-of-Work e Proof-of-Stake sono due degli algoritmi di consenso più conosciuti nelle criptovalute. Offrono meccanismi per dimostrare il lavoro svolto che differiscono nella loro struttura.

Qual è l’essenza della Proof-of-Work?

Il Proof-of-Work (PoW - letteralmente: prova del lavoro) è un algoritmo per proteggere i sistemi distribuiti dagli abusi (attacchi DoS, invii di spam, ecc.), la cui essenza si riduce a due punti principali:

  1. la necessità di svolgere un compito piuttosto complesso e dispendioso in termini di tempo;
  2. possibilità di controllare rapidamente e facilmente il risultato.

I problemi PoW non sono inizialmente destinati agli esseri umani; la loro soluzione tramite computer è sempre realizzabile entro un arco di tempo finito, ma richiede una grande potenza di calcolo. Allo stesso tempo, la verifica della soluzione risultante richiede molte meno risorse e tempo.

Chi ha coniato il termine Proof-of-Work?

Il concetto di Proof-of-Work è stato descritto per la prima volta nel 1993 nel lavoro “Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology” (autori: Cynthia Dwork e Moni Naor). Sebbene il termine stesso non sia stato ancora utilizzato nell’articolo, gli autori hanno proposto la seguente idea:

“Per accedere a una risorsa condivisa, l'utente deve calcolare alcune funzioni: abbastanza complesse, ma fattibili; In questo modo puoi proteggere la risorsa dagli abusi.”

Nel 1997 ha lanciato il progetto Hashcash, dedicato alla stessa protezione anti-spam. Il problema è stato formulato come segue: “Trova un valore di x tale che l’hash SHA(x) contenga N bit zero iniziali”.

Il sistema offriva un hashing di inversione parziale quando inviato via e-mail. Il calcolo dell'intestazione corrispondente richiede circa 252 calcoli di hash, che devono essere ricalcolati per ogni invio. E se calcoli aggiuntivi non creano ostacoli per l'invio di diverse lettere regolari, l'invio di spam, la necessità di un ricalcolo costante, lo rende molto dispendioso in termini di risorse. Allo stesso tempo, il controllo della correttezza del codice calcolato viene eseguito molto rapidamente: viene utilizzato un calcolo SHA-1 una tantum con un'etichetta pre-preparata.

Nel 1999 è apparso il termine stesso Proof-of-Work, utilizzato nell'articolo "Proofs of Work and Bread Pudding Protocols" (autori Marcus Jacobsson e Ari Juels) nella rivista Communications and Multimedia Security.

Cosa c’entra il Proof-of-Work con le criptovalute?

Nella rete Bitcoin, il meccanismo PoW è stato utilizzato come mezzo per raggiungere il consenso (un’opinione comune su quale versione della blockchain sia considerata corretta). Allo stesso tempo, il creatore della prima criptovaluta, Satoshi Nakamoto, ha preso come base l'idea del suddetto progetto Hashcash, aggiungendovi un meccanismo di varia complessità: diminuendo o aumentando N (il numero richiesto di zeri ) a seconda della potenza totale dei partecipanti alla rete. La funzione calcolata è diventata SHA-256.

In termini semplici, il meccanismo PoW prevede la capacità di un nodo (nodo) della rete di verificare che il miner (ovvero il nodo che aggiunge un nuovo blocco alla blockchain) abbia effettivamente completato i calcoli. Questo processo prevede il tentativo di trovare un hash dell'intestazione del blocco (la parte della blockchain che contiene un collegamento al blocco precedente e il valore sommato delle transazioni in esso incluse) che corrisponderà in valore al livello di difficoltà attuale.

La complessità computazionale è davvero “difficile”?

Questi calcoli possono essere eseguiti solo in modo interattivo e la difficoltà è impostata a un livello tale da risultare effettivamente difficile. Allo stesso tempo, controllare i risultati del calcolo rimane semplice. I nodi possono sempre verificare che il minatore abbia trovato il valore corretto, tuttavia, poiché il processo di ricerca di un blocco è molto laborioso e casuale, è impossibile prevedere con precisione quale minatore risolverà il problema e troverà il blocco.

Affinché il sistema riconosca un blocco come valido, il suo valore hash deve essere inferiore al target corrente. Pertanto, ogni blocco mostra che è stato svolto del lavoro per trovarlo.

Ogni blocco contiene l'hash del blocco precedente, formando una catena. Non è possibile modificare un blocco: è possibile solo creare un blocco alla stessa altezza, che conterrà l'hash del blocco precedente. Per eseguire tale processo, è necessario eseguire il lavoro di ricerca di tutti i blocchi precedenti. L’elevata complessità di questo processo protegge la blockchain da accessi non autorizzati e doppie spese.

In che modo la Proof-of-Work ha influenzato il mining?

La Proof-of-Work di Bitcoin ha dato vita a un'intera industria mineraria e ha dato impulso allo sviluppo di apparecchiature specializzate, poiché le risorse di calcolo spese per l'hashing dei blocchi sono enormi e superano di gran lunga la capacità dei più grandi supercomputer.

Allo stesso tempo, c’era anche il famigerato “altro lato della medaglia”: PoW si trasformò rapidamente in un mostro, divorando elettricità nella corsa alla redditività del mining. Nel 2012, la potenza totale della rete Bitcoin superava già le prestazioni del supercomputer più potente del mondo e all'orizzonte appariva la prima alternativa: la Proof of Stake.

Cos'è la Proof of Stake?

Un meccanismo di consenso alternativo implementato per la prima volta nel 2012 nella criptovaluta PPCoin (ora nota come PeerCoin). L’idea è quella di utilizzare uno “stake” come risorsa che determina quale nodo avrà il diritto di minare il blocco successivo.

Nell’approccio Proof-of-Stake, i nodi provano anche ad eseguire l’hashing dei dati alla ricerca di un risultato inferiore a un certo valore, ma in questo caso la difficoltà è distribuita proporzionalmente e in base all’equilibrio del dato nodo. In altre parole, in base al numero di monete (token) presenti sul conto dell’utente.

Pertanto, un nodo con un saldo maggiore ha maggiori possibilità di generare il blocco successivo. Lo schema sembra piuttosto interessante, soprattutto a causa del ridotto fabbisogno di risorse di calcolo, e anche perché non si tratta di energia "sprecata".

Quali sono gli argomenti a favore e contro la Proof of Stake?

In genere, i seguenti argomenti vengono forniti a favore dell'utilizzo del PoS:

  • Per portare a termine un attacco sono necessari ingenti fondi, il che lo rende impraticabile dal punto di vista finanziario.
  • Allo stesso tempo, se l'aggressore ha a disposizione un gran numero di token, lui stesso subirà l'attacco, poiché ciò distruggerà la stabilità della criptovaluta.

Argomenti che destano preoccupazione:

  • Il PoS fornisce ulteriore motivazione per accumulare fondi in una mano, il che può influire negativamente sulla decentralizzazione della rete.
  • Se si forma un piccolo gruppo che raccoglie fondi sufficientemente grandi, sarà in grado di imporre agli altri partecipanti le sue regole per il funzionamento della rete.

Inoltre, possiamo notare il problema Nothing-at-Stake, che rende i sistemi PoS intrinsecamente instabili agli occhi di molti appassionati di criptovaluta. Un utente malintenzionato può tentare di biforcare la blockchain, ovvero creare una catena alternativa più lunga spendendo risorse “inesistenti”. Inoltre, può essere supportato da altri minatori poiché anch’essi non consumano risorse “autentiche”. Attraverso un fork, un utente malintenzionato può rifiutare determinate transazioni ed eseguire un attacco a doppia spesa.

Da che parte della bilancia sta?

Il dibattito tra i sostenitori del Pow e del PoS va avanti da molto tempo, ma la natura di questi dibattiti è più teorica. La pratica dimostra che il ruolo dello sviluppatore in materia di sicurezza è ancora molto elevato.

Allo stesso tempo, molti considerano una versione ibrida dei sistemi PoS e PoW la soluzione più sicura. Questo approccio è già attivamente praticato: molte criptovalute hanno una fase PoW, quando la valuta viene emessa tramite mining classico, e una fase PoS, che si verifica dopo il completamento dell'emissione.

Tuttavia, mentre i sistemi PoS saranno sempre più facili da implementare e generalmente altrettanto affidabili dal punto di vista della sicurezza, le criptovalute più serie probabilmente non abbandoneranno il PoW.

Un tempo, ForkLog era una traduzione adattata di un whitepaper scritto dal Gruppo BitFury, che mette a confronto il funzionamento dei principi di sicurezza dei sistemi PoW e PoS.

Quali altri meccanismi di prova ci sono nelle criptovalute?

Il loro elenco potrebbe essere piuttosto ampio, quindi elencheremo alcuni dei più famosi:

  • Proof of Activity è uno schema ibrido standard che combina PoW e PoS;
  • Proof of Stake delegato è un termine generale che descrive l'evoluzione dei protocolli di consenso sottostanti basati sulla prova di stake. DPoS è utilizzato in , e ;
  • Proof of Burn - Il “burning” avviene inviando monete ad un indirizzo dal quale è garantito che non possano essere spese. Liberandosi delle sue monete in questo modo, l'utente riceve il diritto al mining permanente, che è anche strutturato come una lotteria tra tutti i possessori delle monete bruciate;
  • La prova di capacità è un’implementazione dell’idea popolare di “megabyte come risorse”. È necessario allocare una quantità significativa di spazio su disco per consentire il mining;
  • Proof of Storage – simile al concetto precedente, in cui lo spazio assegnato viene utilizzato da tutti i partecipanti come spazio di archiviazione cloud condiviso.
  • Traduzione

Continuiamo a tradurre articoli interessanti dal sito web Bytecoin.org. Oggi - "Alternative alla prova di lavoro, parte 1: prova di palo" di Ray Patterson.
Leggi anche la traduzione di "Una breve storia dell'evoluzione della prova di lavoro nelle criptovalute": e.

Critica della prova di lavoro

Come tutti ricordiamo, Proof of Work nasce nel lontano 1993 in una famiglia di crittografi; i suoi genitori avevano previsto per lui una carriera come difensore anti-DoS e anti-spam. Tuttavia, nel 2008, ha ricevuto un'offerta allettante da una persona anonima con accento giapponese: diventare la base per un server di marcatura temporale distribuito. Lo schema sembrava semplice: i nodi della rete “votano” per la loro versione della cronologia delle transazioni, investendo il loro potere nel calcolo degli hash “rari”. La versione che riceve il maggior numero di voti viene accettata dagli altri nodi come versione di riferimento.

Un punto importante era garantire una grande capacità totale della rete: proteggere da un potenziale aggressore con il suo potenziale 51% delle risorse. Tuttavia, il concetto originale di PoW prevedeva piccole attività che il client doveva completare per ottenere l'accesso alle risorse del server. Nell'ambito di questo modello di protezione DoS, anche le piccole capacità del client non interferiranno con l'uso corretto delle risorse, mentre quelle grandi semplicemente non erano necessarie. Pertanto, la motivazione del lavoro dei minatori è stata realizzata semplicemente: “in natura”, bitcoin, ad es. in realtà soldi.

E questo ha cambiato tutto. Nel mondo delle criptovalute, PoW è diventato un mostro, divorando elettricità nella corsa alla redditività del mining. Affermazioni serie sono apparse intorno al 2012, quando la potenza totale della rete Bitcoin ha “superato” il supercomputer più potente del mondo in termini di prestazioni. “Uno spreco di energia!” - si udirono urla da tutte le parti. Le timide proteste dei difensori riguardo alla protezione dall'attacco del 51% e all'appetito energetico dei terminali bancari sono state ignorate, fortunatamente la prima alternativa era già all'orizzonte: la Proof of Stake.

Prova di puntata

È venuta alla luce come idea in uno dei post su bitcointalk nel 2011. La prima implementazione è stata rilasciata un anno dopo, nel 2012, nella criptovaluta PPCoin (ora chiamata PeerCoin). Successivamente, protocolli simili sono apparsi in altri progetti, di cui parleremo più avanti.

Il PoS ha diverse incarnazioni, ma un’idea comune: la risorsa limitata su cui bisogna votare può essere trovata non solo nel mondo esterno (ferro bruciato ed elettricità), ma all’interno del sistema stesso: le stesse monete digitali. I proprietari di monete - detentori (stakeholder) - ovviamente non le spendono durante il voto, ma le bloccano per un po', ed è così che si ottiene la limitazione. Ovviamente, anche se per effettuare il mining il computer deve essere acceso, non è necessario effettuare calcoli seri.

Come funziona PPCoin?

Quindi, la risorsa del minatore sono le sue monete (non spese, ovviamente). Più precisamente, output di transazioni non spesi, ciascuno dei quali corrisponde ad un certo numero di monete. L'estrazione mineraria avviene come segue:

  1. Selezioniamo il tuo output, che è stato ricevuto almeno 30 giorni fa.
  2. Formiamo una struttura Kernel, che include: dati deterministici dall'output (ora del blocco in cui è apparso, il suo numero all'interno del blocco, ecc.), ora corrente, ecc. nStakeModifier (blocco ricalcolato periodicamente di bit pseudo-casuali).
  3. Eseguiamo l'hashing del Kernel e confrontiamo il valore risultante con l'obiettivo attuale, che dipende dalla complessità attuale della rete (complessità maggiore - obiettivo più basso), dall'"età" dell'output (età più alta - obiettivo più alto) e dalla sua quantità (più monete - obiettivo più alto).
  4. Se l'hash risulta essere maggiore del target, torniamo al passaggio 1 e prendiamo l'output successivo.
  5. Se l'output si è rivelato "riuscito", lo spendiamo in una transazione coinbase (inviandolo a noi stessi), aggiungiamo la ricompensa per il blocco e le commissioni dalle transazioni incluse e firmiamo l'intero blocco con la chiave associata al produzione spesa.
  6. Voilà, il blocco è pronto. Iniziamo a cercare il prossimo.
Note:
  • La verifica del blocco è deterministica: l'ora corrente viene presa dall'intestazione del blocco, i dati di output vengono presi dalla blockchain, inoltre nStakeModifier viene calcolato in modo univoco per ciascun blocco.
  • L’output deve essere “vecchio” in modo che un utente malintenzionato non possa, trasferendo denaro tra i propri portafogli, ottenere un output “buono” che gli permetta immediatamente di trovare il blocco.
  • nStakeModifier viene calcolato in base agli ultimi blocchi ed è quindi imprevedibile. Ciò rende il mining ancora più imprevedibile (e più resistente a possibili attacchi).
  • Il timestamp corrente nel passaggio 2 può variare entro ampi limiti: più o meno un'ora. Quindi, infatti, per ogni output si possono controllare 7200 hash, e non solo uno.
  • Il moltiplicatore dell'obiettivo "età" è limitato a 90 giorni. Altrimenti, un utente malintenzionato potrebbe, con solo poche monete MOLTO vecchie, generare diversi blocchi di seguito con un'alta probabilità.

In sostanza, il processo di mining PoS è la stessa lotteria del PoW. Non è però necessario “pagare” un ticket con la propria potenza: la ricerca delle opzioni avviene in uno spazio molto limitato delle proprie uscite e non dipende dalla velocità della CPU. Le tue possibilità sono influenzate solo dal numero totale di monete e dall'attuale difficoltà della rete.

Grazie a ciò otteniamo il seguente profitto:

  1. Risparmiamo energia. Non si discute, anche se per PoW si possono utilizzare “lavori utili” (vedi Primecoin) o funzioni resistenti agli ASIC (Cuckoo Cycle, CryptoNigh, Ethash ecc.), che limiterebbero l'area di mining ai PC personali.
  2. Nessuna “corsa agli armamenti” infinita: ora l’hashrate totale è limitato non dalla regola di Moore e dalle leggi della termodinamica, ma dal numero totale di monete nei portafogli dei partecipanti. D'altra parte, in un modello del genere è difficile capire se una grande percentuale delle risorse sia in mani oneste?
  3. L'attacco diventa più costoso. Se voglio acquistare il 51% delle monete, il mercato reagirà con un rapido aumento del prezzo. Del resto, che senso ha attaccare una rete se tutte le mie risorse vengono investite nelle monete virtuali di questa rete?
Sembra che tutto vada benissimo: abbiamo effettivamente sostituito il lavoro fisico con una sorta di risorsa virtuale. Ma non è proprio lì il problema?

Critica alla Proof of Stake

Rispondi alla domanda: quanto vengono spesi i soldi? Se qualcuno ti si avvicina e ti offre di acquistare da te delle chiavi private, delle quali hai già speso tutti i soldi, quale prezzo ti concorderai? Visto che queste chiavi non valgono più niente e non servono a nessuno, presumo che qualunque offerta faccia al caso vostro: sono soldi dal nulla!

Ora immagina che per qualche momento X nel passato si scopra che il 50% (o più) di tutte le monete si trovasse sulle chiavi acquistate ora dall'aggressore. Per semplicità, possiamo supporre che il momento X sia il tempo immediatamente successivo alla creazione del secondo blocco e che qualcuno abbia acquistato le chiavi di entrambi i blocchi, ad es. Se fosse tornato al passato, avrebbe posseduto il 100% dell’intera massa monetaria.

In effetti, non ha bisogno di tornare fisicamente indietro nel tempo. D'ora in poi potrà “riscrivere l'intera storia della blockchain” estraendo con queste vecchie monete! Inoltre, ricevi una ricompensa per ogni nuovo blocco e aumenta il tuo capitale. Non deve nemmeno creare transazioni (anche se può semplicemente trasferire denaro a se stesso).

Ad un certo punto, la sua catena alternativa raggiungerà quella reale e addirittura la supererà nel numero di blocchi. L'intera rete passerà ad esso, perché non ci sono differenze sintattiche tra loro. Ma la differenza principale sarà che in uno di essi più della metà delle monete apparterrà ancora all'aggressore. È così che, vendendo le “anime morte”, si possono facilmente perdere le “anime vive”.

Un attacco così specifico, ovviamente, può essere combattuto. PeerCoin, ad esempio, utilizza la pratica dei checkpoint regolari: blocchi firmati con la chiave dello sviluppatore, “più profondi” rispetto ai quali è vietato ricostruire la blockchain. Ma si tratta di una soluzione particolare che non elimina il problema più generale: niente in gioco.

Il problema è che il mining – il voto – non costa nulla e non richiede alcuno sforzo fisico. Se, ad esempio, ad un certo punto compaiono due blocchi alla stessa altezza (forcella della catena), è possibile estrarre contemporaneamente entrambe le versioni della catena. Con PoW questo è in linea di principio impossibile per ovvi motivi: ogni hash verificato della catena A è un hash non verificato della catena B. PoS, invece, consente di cercare in tutti i “mondi paralleli” contemporaneamente e a qualsiasi altezza (cioè, incluso il passato).

In PoS è molto più semplice effettuare un attacco a doppia spesa. È sufficiente minare sempre due versioni del blocco seguente: una con una transazione che trasferisce i tuoi soldi al venditore (che non aspetta N conferme), e l'altra con un trasferimento che te li trasferisce. Se ti capita di trovare entrambi i blocchi, invii il primo al venditore (e ricevi la merce) e il secondo a tutti gli altri. Con un'alta probabilità, la seconda versione della catena verrà continuata e il denaro ti verrà restituito.

Il problema con PoS è che ti avvantaggia il mining di diversi rami alternativi contemporaneamente. Puoi farlo semplicemente gratuitamente, con una probabilità di successo diversa da zero, il che significa che aumenterai il tuo reddito previsto. PoW non ti consente di fare scherzi del genere, e quindi estrai solo in un ramo (quale è la tua scelta). Di conseguenza, nel modello PoW, prima o poi il consenso viene raggiunto, ma nel modello PoS puro non è più possibile prevedere la convergenza.

Se sei interessato a questo problema, puoi trovare i dettagli

Scopri cos'è il protocollo Proof-of-Work, quando è nato, quali sono i suoi pro e contro e come si collega allo spazio delle criptovalute.

Prova di lavoro è un metodo per proteggere la catena di blocchi della valuta digitale da vari tipi di attacchi. Il termine si traduce letteralmente come “conferma del lavoro”. L'algoritmo garantisce la verifica dell'esecuzione di una determinata sequenza di azioni da parte di uno specifico nodo del sistema (ovvero il miner). I dati stabiliti dal protocollo sono le informazioni nel blocco trovato, che visualizzano un collegamento al nodo precedente della catena e il numero di operazioni memorizzate nel blocco. Più potente è il tuo hardware, maggiore è la possibilità che il sistema ti elegga come nodo responsabile della conferma della transazione. Pertanto, il criterio principale per il successo dell'estrazione di moneta elettronica basata su questo algoritmo è la prestazione dell'apparecchiatura. Questo fattore ha contribuito all'unificazione degli utenti in gruppi speciali, chiamati “pool”.

Prova di lavoro è un algoritmo di sicurezza contro gli attacchi dannosi utilizzati nei sistemi distribuiti. Il punto principale è questo:

  • applicazione in processi complessi e lunghi;
  • semplicità ed efficienza nel verificare il risultato.

Per risolvere i problemi dell'algoritmo PoW, viene utilizzata la tecnologia di calcolo ad alte prestazioni. Il processo di elaborazione dei dati dura solitamente un certo periodo di tempo. Il processo di calcolo stesso richiede più risorse hardware rispetto al controllo dei dati ricevuti.

A metà degli anni '90 del secolo scorso fu pubblicato un articolo intitolato “Pricing via Processing or Combatting Junk Mail”, in cui gli autori proponevano per la prima volta il concetto di Proof-of-Work. Il significato dell'idea era che ogni persona che vuole accedere a qualsiasi servizio è tenuta a eseguire una serie di operazioni di una funzione molto complessa che richiede le risorse di un sistema informatico. In questo caso, il processo deve durare un certo periodo di tempo, che può essere definito accettabile per l'attesa. Il processo computazionale lato client deve essere più dispendioso in termini di risorse rispetto al processo di verifica dei risultati ottenuti, avviato lato server.

La funzione proposta deve essere non ammortizzabile, altrimenti la durata della procedura di calcolo aumenterà notevolmente. Gli autori dell'articolo hanno suggerito che ulteriori operazioni matematiche eseguite sul computer dell'utente non costituirebbero un ostacolo al normale invio di e-mail, ma diventerebbero un serio ostacolo all'invio di spam. Un sistema del genere imporrebbe effettivamente un limite quantitativo all'invio di lettere entro un certo periodo di tempo.

Un po' più tardi è stato implementato il progetto Hashcash, che incarna la funzione, la cui essenza è descritta nell'articolo sopra. La definizione di “proof of work” è stata proposta per la prima volta dagli autori dello studio scientifico “Proofs of Work and Bread Pudding Protocols”, pubblicato alla fine degli anni Novanta.

Cinque anni dopo, Hal Finney propose un sofisticato algoritmo chiamato “prova di lavoro riutilizzabile” (RPoW), che doveva essere utilizzato nei sistemi di pagamento elettronici. Un paio di anni dopo, Satoshi Nakamoto creò la prima valuta virtuale che utilizzava l’algoritmo PoW. Risolve il problema della doppia spesa dei token.

Lo svantaggio principale del Proof-of-Work, che è la ragione di tutte le attività legate all'implementazione di metodi di protezione alternativi, è associato all'enorme consumo di energia durante il funzionamento della rete. I costi totali di una piattaforma possono talvolta superare i costi di un piccolo impianto. Tuttavia, a difesa di questo algoritmo si dirà che se la cava bene nel garantire la sicurezza del sito e nel livellare le azioni di tutti i tipi di aggressori. Da ciò dipenderà l'ulteriore sviluppo e promozione della risorsa. Dopotutto, chi investirebbe in un progetto che non è in grado di proteggere la propria rete dagli hacker?

Nella primissima valuta virtuale, la PoW è necessaria per ottenere il consenso nella rete. Poiché possono esistere più versioni della blockchain per ciascun utente in un dato momento, l’algoritmo determina quale versione è affidabile. Per realizzare la sua idea, Nakamoto ha utilizzato gli sviluppi del già citato progetto Hashcash, modificando leggermente la funzione finita (aggiungendo un meccanismo per modificarne la complessità, che dipende dalla potenza di calcolo totale di tutti i nodi della rete). La funzione finita si chiama .

L'algoritmo PoW è necessario affinché i nodi della rete verifichino che il miner abbia effettuato i calcoli. Quest'ultimo esegue calcoli di algoritmi complessi, a seguito dei quali un nuovo blocco generato ("cella") viene aggiunto alla catena di blocchi, memorizzando un certo numero di record sulle transazioni completate. Il meccanismo di prova del lavoro tenta di trovare un hash dell'intestazione del nodo, che contiene un riferimento alla "cella" precedente e il valore totale di tutte le operazioni inserite nel nodo appena generato. Gli indicatori hash corrispondono al grado stabilito.

La complessità delle operazioni descritte è in realtà piuttosto elevata e il processo di calcolo stesso può essere eseguito con la partecipazione degli utenti. La procedura per verificare i risultati, al contrario, è molto semplice e poco impegnativa in termini di risorse di sistema. Qualsiasi nodo può ricevere la prova che un minatore ha generato un nuovo blocco. Tuttavia, a causa della complessità dei processi computazionali eseguiti dai miner, è molto difficile determinare quale di essi riuscirà a farcela più velocemente degli altri.

Per verificare la validità di un nuovo blocco, il suo valore hash viene confrontato con l'obiettivo corrente. Se risulta essere più piccolo, il blocco è valido. Ciò dimostra chiaramente il fatto che è stato svolto un certo lavoro per generare un blocco.

La struttura della blockchain è tale che ogni nodo creato aggiunto alla catena memorizza informazioni su quello precedente. La modifica delle “celle” non è possibile. Puoi solo “attaccarne” uno nuovo allo stesso livello, che memorizzerà l'hash del blocco precedente. Ciò richiederà il lavoro di generazione di tutti i nodi precedenti. Un compito del genere non è banale e richiede molte risorse. Ciò garantisce una protezione affidabile della rete dalle interferenze di terzi e dalla doppia spesa dei token.

Al momento c’è ancora controversia sull’opportunità di utilizzare PoW. Gli esperti hanno identificato i seguenti tipi di vulnerabilità dell’algoritmo:

  1. 51% – una vulnerabilità caratteristica del Bitcoin e di altre valute virtuali nelle prime fasi del loro sviluppo. La sua essenza sta nel fatto che se la maggior parte del potere della rete cade nelle mani di un aggressore, quest’ultimo acquisisce il pieno controllo sulla generazione di nuovi blocchi e sull’esecuzione delle transazioni. Gli viene inoltre data la possibilità di apportare eventuali modifiche al database distribuito, fino ad una riscrittura completa e creare un proprio ramo, che verrà riconosciuto come valido. Di conseguenza, tutti i fondi degli utenti scompariranno dai loro portafogli elettronici.
  2. Spendere le stesse monete due volte. In questo caso gli stessi asset possono essere utilizzati più volte. Esistono diverse varietà di questo tipo di attacco.
  3. Controllo sui minatori. Un attacco è possibile da parte di aggressori che dispongono di apparecchiature con una potenza di calcolo inferiore al 50% delle prestazioni totali della rete. Ciò è realizzabile utilizzando metodi pubblicitari aggressivi per attirare i minatori nel pool. Il compito dell’aggressore è ridurre a zero l’efficienza dei processi di calcolo dei concorrenti (singoli miner e pool).

Oltre agli ovvi problemi legati alla protezione dei dati, l’algoritmo in questione presenta i seguenti svantaggi:

  1. La potenza di calcolo dell’attrezzatura utilizzata dal miner e la probabilità di generare un nuovo blocco sono in rapporto direttamente proporzionale. Pertanto, ogni minatore si impegna ad aumentare le prestazioni dei sistemi utilizzati. Il risultato di tali azioni è un forte consumo eccessivo di risorse energetiche.
  2. I risultati dei calcoli sono significativi solo all'interno della rete; non hanno altra applicazione. La rete, infatti, ha un enorme potenziale computazionale che non viene utilizzato per risolvere problemi utili (ad esempio, di produzione).

Poiché le carenze e i problemi dell'algoritmo erano sempre evidenti, si lavorava costantemente per eliminarli. Di conseguenza, sono stati proposti nuovi algoritmi.

L’uso di PoW per gestire Bitcoin ha dato origine a un’intera industria mineraria. Sono stati creati dispositivi volti a risolvere problemi altamente specializzati di blocchi di hashing, che persino i supercomputer più potenti del mondo difficilmente riescono a far fronte.

L'estrazione mineraria ha portato a un'intensa concorrenza in questo settore. Molti grandi attori, alla ricerca del profitto, hanno iniziato ad aumentare la propria potenza di calcolo, il che ha portato ad un aumento significativo del consumo di elettricità. Nel 2012, la rete complessiva di Bitcoin ha superato il computer più potente al mondo. Più o meno nello stesso momento venne proposta una delle prime alternative all’algoritmo PoW allora utilizzato.

Prova di lavoroè uno dei due algoritmi di consenso più popolari su cui sono costruiti i progetti di criptovaluta. In questa recensione ti diremo cos'è il Proof-of-Work, quali sono le sue caratteristiche e condurremo un'analisi comparativa con il suo principale concorrente: Algoritmo Proof of Stake.

Cos'è il Proof-of-Work: dalle origini all'essenza

La prima idea che può essere attribuita al termine Proof-of-Work è apparsa nel 1993 nel lavoro di Cynthia Dwork e Moni Naor, intitolato “Pricing through Processing, Or, Combatting Junk Mail, Advances in Cryptology”. Gli autori di questo lavoro propongono l'idea che per ottenere l'accesso alle risorse condivise, l'utente deve eseguire alcuni calcoli complessi che proteggeranno questa risorsa dall'uso eccessivo da parte dei partecipanti alla rete. 4 anni dopo è stato lanciato il progetto Hashcash, dedicato al sistema anti-spam. Il sistema ha proposto di eseguire l'hashing di parte dell'inversione utilizzando risorse di posta elettronica. Per calcolare un'intestazione specifica sono necessari 252 calcoli per ciascun invio. Se era necessario inviare lettere standard, non venivano creati ostacoli, ma per l'invio di spam il ricalcolo diventava un compito molto difficile. E il controllo della correttezza del codice calcolato non richiede molto tempo, poiché viene utilizzato un tipo speciale di calcolo, SHA-1, con un'etichetta preparata in anticipo.
Due anni dopo termine Proof-of-Work (PoW)è già entrato in uso ufficiale ed è stato trattato ufficialmente per la prima volta nell'articolo di Jacobson e Jewels sul tema dei protocolli. Dopo un po’ di tempo ci si è abituati al principio della Proof-of-Work (PoW). costruire una rete Bitcoin– il protocollo ha consentito di raggiungere il consenso. Satoshi Nakamoto, lo sviluppatore di Bitcoin, ha leggermente modificato la versione originale Prova di lavoro, aggiungendovi un meccanismo di varia complessità, che diminuiva o aumentava il numero richiesto di zeri rispetto alla quantità totale di potere degli utenti della rete Bitcoin. La funzione SHA-256 garantisce il pieno funzionamento del sistema.


Definizione Prova di lavoro In parole povere si può affermare quanto segue: il protocollo garantisce la capacità di verifica di un nodo, o nodo, per l'esecuzione di calcoli da parte del miner, che è il nodo stesso, introducendo nuovi blocchi nella rete. In questo caso si tenta di cercare un hash dell'intestazione del blocco, che includa il blocco precedente e il valore totale delle operazioni in esso incluse, che determina il grado di complessità del mining Proof-of-Work (PoW).

Caratteristiche distintive del Proof-of-Work: come funziona

Che cos'è la prova di lavoro (PoW)? In primo luogo, si tratta di un algoritmo efficace che fornisce una protezione efficace di un sistema distribuito da attacchi di hacker, attività fraudolente e altri accessi non autorizzati.

Quello, come funziona la prova di lavoro, si può concludere nei seguenti punti:

  1. Esecuzione obbligatoria di calcoli ad alta intensità di lavoro;
  2. Controllo rapido e semplice dei risultati.

Funzionalità di prova del lavoroè che inizialmente questa tecnologia era progettata per l'alimentazione dei computer e non per gli utenti reali. Il metodo Proof-of-Work prevede l'utilizzo di notevoli risorse informatiche, ma garantisce che l'attività venga completata in tempo con una verifica semplificata del risultato ottenuto in tempi minimi.

Prova di lavoro vs. Proof-of-Stake: confronto tra algoritmi


Prova di lavoro (PoW), tradotto in inglese come prova di lavoro, contribuisce in una certa misura alla suscettibilità delle criptovalute alla doppia spesa. Allo stesso tempo, la Proof of Work (PoW) riduce questo indicatore man mano che aumenta il volume delle transazioni confermate all’interno della rete, il che indica una dipendenza dalla quantità di potenza di calcolo a disposizione dell’hacker. La garanzia dell'utilizzo delle criptovalute Proof-of-Work (PoW) è quella di ridurre il rischio di doppia spesa e gli utenti si aspettano un numero specifico di conferme di transazione, oltre a utilizzare sistemi di sicurezza per ridurre gli indicatori di rischio per i pagamenti veloci.
Potrebbe essere difficile capire immediatamente che si tratta di Proof-of-Work, ma in parole semplici, se tracciamo parallelismi con il suo principale concorrente PoS, va notato che questi algoritmi possono essere soggetti ad attacchi simili, ma il risultato è diverso . Il pericolo principale per loro è rappresentato dal DoS, ovvero Denial of Service, e dal Sybill attack, o attacco Sybil. Il primo attacco mira a interrompere il normale funzionamento del sistema, cosa che si ottiene sovraccaricando i nodi della rete. Ad esempio, un hacker può inondare la rete con quantità colossali di transazioni a basso costo: ricordate l'attacco alla rete Bitcoin di 2 anni fa. Quando si utilizza l'attacco Sybil, la rete viene minata creando un numero enorme di nodi che funzionano in modo errato.
Livello di esposizione dell'algoritmo Prova di lavoro e il suo concorrente in questi attacchi dipende non solo dal tipo di negoziazione utilizzata all'interno della rete, ma anche dai dettagli del protocollo di rete. Allo stesso tempo, oggi non esistono caratteristiche interne che possano rendere questo o quel protocollo meno suscettibile agli attacchi.


Un altro attacco che può far preoccupare gli utenti per le loro risorse crittografiche è estrazione egoistica o estrazione egoistica. A Estrazione di prove di lavoro, Questo attacco pubblica selettivamente blocchi, facendo sì che gli utenti sprechino le proprie risorse informatiche. Gli sviluppatori di Proof-of-Work (PoW) sono preoccupati per questo perché, a differenza del suo rivale PoS, che non è gravato da risorse costose, qui la situazione è diversa. Tuttavia, nessuno degli sviluppatori ha ancora confermato l'efficacia di questo tipo di attacco e alcuni ritengono che vi siano gravi errori in tale ipotesi.
Definizione di Proof of Work (PoW) per quanto riguarda la resistenza agli attacchi, si basa sulla potenza di calcolo totale della rete. Ma per la Proof of Stake non esiste l’equivalente di uno “stato di salute”, poiché se la valuta è equamente distribuita nella rete, l’attacco si basa sul suo fork, e se gli utenti ne hanno una quota significativa, c’è il rischio di censura delle transazioni.

Pro e contro della Proof-of-Work (PoW)

Lo svantaggio principale del Proof-of-Work, che è ciò che ha dato inizio a tutto il caos sullo sviluppo di algoritmi alternativi, è rappresentato da un colossale consumo di energia durante il funzionamento. I costi totali delle risorse energetiche talvolta superano i costi delle imprese industriali. Tuttavia, a difesa di questo prodotto, che tra l'altro è stato il primo nel suo genere e merita attenzione già solo per questo, va detto che l'algoritmo prevede protezione di alta qualità risorse e strutture all’interno della rete. Ma è la qualità sicurezza dipende dalla capacità dell’utente di gestire i propri fondi senza timore di possibili furti.