Acasă
Articole
Ce este Proof of Work (PoW)?

Ce este Proof of Work (PoW)?

Intermediar
Publicat Dec 6, 2018Actualizat Mar 8, 2024
10m

Introducere

Proof of Work (abreviat în mod obișnuit cu PoW) este un mecanism pentru prevenirea dublei cheltuieli. Majoritatea criptomonedelor majore îl folosesc ca algoritm de consens. Aceasta este ceea ce numim o metodă de securizare a registrului criptomonedelor.

Proof of Work a fost primul algoritm de consens care a apărut și, până în prezent, rămâne cel dominant. A fost introdus de Satoshi Nakamoto în cartea albă Bitcoin din 2008, dar tehnologia în sine a fost concepută cu mult înainte. 

HashCash al lui Adam Back este un exemplu timpuriu al algoritmului Proof of Work în zilele de dinainte de apariția criptomonedelor. Cerând expeditorilor să efectueze câteva calcule minore înainte de a trimite un e-mail, destinatarii puteau atenua spamul. Aceste calcule nu costă practic nimic pentru un expeditor legitim, dar se adună rapid pentru cineva care trimite e-mailuri în masă.


Ce este o cheltuială dublă?

O cheltuială dublă apare atunci când aceleași fonduri sunt cheltuite de mai multe ori. Termenul este folosit aproape exclusiv în contextul banilor digitali – la urma urmei, ar fi greu să cheltuiți același numerar fizic de două ori. Când plătiți pentru o cafea astăzi, predați numerar unui casier care probabil îl introduce într-o casă de marcat. Nu puteți să mergeți la cafeneaua de peste stradă și să plătiți o altă cafea cu aceeași bancnotă.

În schemele digitale de numerar, există această posibilitate. Cu siguranță ați duplicat un fișier de computer până acum – doar copiați și lipiți. Puteți trimite prin e-mail același fișier către zece, douăzeci, cincizeci de persoane. 

Deoarece banii digitali sunt doar date, este necesar ca persoanele să fie împiedicate să copieze și să cheltuiască aceleași unități în locuri diferite. În caz contrar, moneda dvs. se va prăbuși în cel mai scurt timp. 

Pentru o privire mai detaliată asupra cheltuielilor duble, consultați Explicarea cheltuielilor duble.


De ce este necesar Proof of Work?

Dacă ați citit ghidul nostru pentru tehnologia blockchain, veți ști că utilizatorii transmit tranzacții în rețea. Totuși, acele tranzacții nu sunt considerate imediat valide. Asta se întâmplă doar atunci când sunt adăugate la blockchain. 

Blockchain-ul este o bază de date de dimensiuni mari pe care fiecare utilizator o poate vedea, astfel încât să poată verifica dacă fondurile au fost cheltuite înainte. Imaginați-vă următorul scenariu: dvs. și trei prieteni aveți un blocnotes. Oricând unul dintre voi dorește să facă un transfer al oricăror unități pe care le utilizați, îl notați – Alice îi plătește lui Bob cinci unități, Bob îi plătește lui Carol două unități etc.

Există un alt element demn de menționat aici – de fiecare dată când faceți o tranzacție, vă referiți la tranzacția din care au venit fondurile. Deci, dacă Bob îi plătește lui Carol cu două unități, intrarea ar arăta de fapt astfel: Bob îi plătește lui Carol două unități care provin dintr-o tranzacție anterioară cu Alice.

Avem o modalitate de a urmări unitățile. Dacă Bob încearcă să facă o altă tranzacție folosind aceleași unități pe care tocmai le-a trimis lui Carol, toți cei implicați vor ști imediat. Grupul nu va permite ca tranzacția să fie adăugată în blocnotes.

Acest lucru ar putea funcționa bine într-un grup mic. Toată lumea se cunoaște, așa că probabil vor fi de acord cu privire la care dintre prieteni ar trebui să adauge tranzacții în blocnotes. Dar dacă avem un grup de 10.000 de participanți? Ideea blocnotesului nu se scalează bine, pentru că nimeni nu vrea să aibă încredere într-un străin care să îl gestioneze.

Aici intervine Proof of Work. Algoritmul se asigură că utilizatorii nu cheltuiesc bani pe care nu au dreptul să îi cheltuiască. Folosind o combinație de teoria jocurilor și criptografie, un algoritm PoW permite oricui să actualizeze blockchain-ul conform regulilor sistemului.


Cum funcționează PoW?

Blocnotesul nostru de mai sus este blockchain-ul. Dar nu adăugăm tranzacțiile una câte una, ci le grupăm în blocuri. Anunțăm tranzacțiile către rețea, apoi utilizatorii care creează un bloc le vor include într-un bloc candidat. Tranzacțiile vor fi considerate valide numai odată ce blocul lor candidat devine un bloc confirmat, ceea ce înseamnă că a fost adăugat în blockchain.

Adăugarea unui bloc nu este însă ieftină. Proof of Work necesită ca un miner (utilizatorul care creează blocul) să utilizeze unele dintre propriile resurse pentru acest privilegiu. Acea resursă este puterea de calcul, care este folosită pentru a calcula datele blocului până când se găsește o soluție la un puzzle.

Hasharea datelor blocului înseamnă că le treceți printr-o funcție de hashing pentru a genera un hash de bloc. Hash-ul blocului funcționează ca o „amprentă” – este o identitate pentru datele introduse și este unică pentru fiecare bloc.

Este practic imposibil să inversați un hash de bloc pentru a obține datele de intrare. Dar cunoscând această intrare, pentru dvs. este foarte simplu să confirmați că hash-ul este corect. Trebuie doar să trimiteți intrarea prin intermediul funcției și să verificați dacă ieșirea este aceeași.

În Proof of Work, trebuie să furnizați date al căror hash corespunde anumitor condiții. Dar nu știți cum să ajungeți acolo. Singura dvs. opțiune este să treceți datele printr-o funcție hash și să verificați dacă corespund condițiilor. Dacă nu, va trebui să vă modificați ușor datele pentru a obține un hash diferit. Schimbarea chiar și a unui caracter din datele dvs. va avea un rezultat total diferit, deci nu există nicio modalitate de a prezice care ar putea fi ieșirea.

Drept urmare, dacă doriți să creați un bloc, jucați un joc de ghicire. În mod obișnuit, luați informații despre toate tranzacțiile pe care doriți să le adăugați și alte date importante, apoi le puneți pe toate împreună. Dar, deoarece setul de date nu se va schimba, trebuie să adăugați o informație care este variabilă. În caz contrar, veți obține întotdeauna același hash ca rezultat. Aceste date variabile sunt ceea ce numim un nonce. Este un număr pe care îl veți schimba cu fiecare încercare, așa că primiți un hash diferit de fiecare dată. Și asta numim minerit.

În concluzie, mineritul este procesul de colectare a datelor blockchain și de hashing împreună cu un nonce până când găsiți un anumit hash. Dacă găsiți un hash care îndeplinește condițiile stabilite de protocol, obțineți dreptul de a difuza noul bloc în rețea. În acest moment, ceilalți participanți ai rețelei își actualizează blockchain-urile pentru a include noul bloc.

Pentru principalele criptomonedele de astăzi, condițiile sunt incredibil de dificil de îndeplinit. Cu cât rata hash este mai mare în rețea, cu atât este mai dificil să găsiți un hash valid. Acest lucru se face pentru a se asigura că blocurile nu sunt găsite prea repede.

După cum vă puteți imagina, încercarea de a ghici cantități masive de hash-uri poate fi costisitoare pentru computer. Risipiți cicluri de calcul și energie electrică. Dar protocolul vă va răsplăti cu criptomonede dacă găsiți un hash valid.

Să recapitulăm ceea ce știm până acum:

  • Mineritul este costisitor.

  • Sunteți recompensat dacă produceți un bloc valid.

  • Cunoscând o intrare, un utilizator își poate verifica cu ușurință hash-ul - utilizatorii care nu fac minerit pot verifica dacă un bloc este valid fără a consuma multă putere de calcul.

Până acum, totul e bine. Dar dacă încercați să trișați? Ce vă împiedică să puneți o grămadă de tranzacții frauduloase în bloc și să produceți un hash valid?

Aici intervine criptografia cu cheie publică. Nu vom intra în profunzime în acest articol, dar consultați Ce este criptografia cu cheie publică? pentru o privire cuprinzătoare asupra ei. Pe scurt, folosim câteva trucuri criptografice care permit oricărui utilizator să verifice dacă cineva are dreptul de a muta fondurile pe care încearcă să le cheltuiască.

Când creați o tranzacție, o semnați. Oricine din rețea vă poate compara semnătura cu cheia publică și poate verifica dacă se potrivește. Ei vor verifica, de asemenea, dacă vă puteți cheltui fondurile și dacă suma intrărilor dvs. este mai mare decât suma ieșirilor dvs. (adică, dacă cheltuiți mai mult decât ați avut).

Orice bloc care include o tranzacție nevalidă va fi respins automat de rețea. Este costisitor pentru dvs. chiar și să încercați să trișați. Vă veți irosi propriile resurse fără nicio recompensă.

În asta constă frumusețea Proof of Work: este costisitor să tișați, dar profitabil să acționați cinstit. Orice miner rațional va căuta să obțină rentabilitatea investiției, așa că ne putem aștepta să se comporte într-un mod care să garanteze venituri.



Doriți să începeți să tranzacționați criptomonede? Cumpărați Bitcoin pe Binance!



Proof of Work vs. Proof of Stake

Există mulți algoritmi de consens, dar unul dintre cei mai așteptați este Proof of Stake (PoS). Conceptul datează din 2011 și a fost implementat în unele protocoale mai mici. Dar încă nu a fost adoptat în niciunul dintre marile blockchain-uri.

În sistemele Proof of Stake, minerii sunt înlocuiți cu validatori. Nu este vorba de minerit și de nicio cursă pentru a ghici hash-uri. În schimb, utilizatorii sunt selectați aleatoriu – dacă sunt aleși, trebuie să propună un bloc (sau să facă „forging”). Dacă blocul este valid, vor primi o recompensă formată din taxele din tranzacțiile blocului.

Cu toate acestea, nu poate fi selectat orice utilizator – protocolul îl alege pe baza anumitor factori. Pentru a fi eligibili, participanții trebuie să blocheze fonduri în staking, respectiv o sumă predeterminată din moneda nativă a blockchain-ului. Fondurile din staking funcționează ca o cauțiune: la fel cum inculpații depun o sumă mare de bani pentru a-i descuraja de la a nu participa la proces, validatorii blochează o sumă stake pentru a descuraja trișarea. Dacă acționează necinstit, suma stake (sau o parte din ea) va fi luată.

Proof of Stake are unele avantaje față de Proof of Work. Cel mai notabil este amprenta de carbon mai mică – deoarece nu este nevoie de ferme de minerit de mare putere în PoS, electricitatea consumată fiind doar o fracțiune din cea consumată în PoW. 

Cu toate acestea, nu se apropie de palmaresul PoW. Deși ar putea fi perceput ca o risipă, mineritul este singurul algoritm de consens care și-a dovedit eficiența la scară mare. În puțin peste un deceniu, a asigurat tranzacții în valoare de trilioane de dolari. Pentru a spune cu certitudine dacă PoS poate rivaliza cu securitatea sa, staking-ul trebuie testat corespunzător la scară largă. 


Gânduri de încheiere

Proof of Work a fost soluția originală la problema dublei cheltuieli și s-a dovedit a fi fiabilă și sigură. Bitcoin a demonstrat că nu avem nevoie de entități centralizate pentru a preveni cheltuirea acelorași fonduri de două ori. Cu utilizarea inteligentă a criptografiei, a funcțiilor hash și a teoriei jocurilor, participanții într-un mediu descentralizat pot conveni asupra stării unei baze de date financiare.