Introducere

Un algoritm de consens este un mecanism care permite utilizatorilor sau mașinilor să se coordoneze într-un mediu distribuit. Se asigură că toți agenții din sistem sunt de acord cu o singură sursă de adevăr, chiar dacă unii agenți eșuează. Adică, sistemul trebuie să fie tolerant la erori (vezi și: Explicarea toleranței bizantine la erori).

Într-un sistem centralizat, o singură entitate alimentează și controlează rețeaua. În cele mai multe cazuri, entitatea poate face modificări după cum consideră de cuviință – nu există un sistem complex de guvernanță pentru ca mai mulți directori să ajungă la un consens.

Într-un sistem descentralizat, este o poveste complet diferită. Să presupunem că lucrăm cu o bază de date distribuită – cum facem să ne punem de acord asupra datelor care urmează a fi adăugate?

Reușind să depășească această provocare într-un mediu în care participanții nu au încredere unii în alții poate fi fost cea mai crucială dezvoltare care a deschis calea pentru blockchains. În acest articol, vom vedea de ce algoritmii de consimțământ sunt esențiali pentru funcționarea criptomonedelor și a registrelor distribuite.


Algoritmi de consimțământ și criptomonede

În criptomonede, soldurile utilizatorilor sunt înregistrate într-o bază de date – blockchain. Este esențial ca toată lumea (fiecare nod pentru a fi exact) să păstreze o copie identică a bazei de date. Altfel, informații contradictorii ar putea apărea, dăunând întregii rețele.

Criptografia cu cheie publică asigură că utilizatorii nu pot cheltui monedele altora. Cu toate acestea, trebuie să existe încă o sursă unică de adevăr pe care participanții rețelei să se bazeze pentru a determina dacă fondurile au fost deja cheltuite.

Satoshi Nakamoto, creatorul Bitcoin, a propus sistemul Proof of Work pentru a coordona participanții. Vom vedea în curând cum funcționează PoW – pentru moment să identificăm trăsăturile comune ale numeroaselor algoritmi de consimțământ existente.

În primul rând, cerem utilizatorilor care doresc să adauge blocuri (pe care îi vom numi validatori) să furnizeze un stake. Stake-ul este o valoare pe care un validator trebuie să o pună în gaj pentru a-l descuraja să acționeze în mod malițios. Dacă aceștia trișează, vor pierde stake-ul. De exemplu, puterea de calcul, criptomonede sau reputația lor.

De ce și-ar risca propriile resurse? Pur și simplu pentru că există o recompensă în joc. Aceasta este de obicei o criptomonedă nativă a protocolului care se bazează pe taxele plătite de utilizatori, pe criptomonede proaspăt create sau pe ambele.

Ultimul lucru de care avem nevoie este transparența. Trebuie să putem ști când cineva trișează. Ideal, ar trebui să fie costisitor pentru ei să producă blocuri, dar ieftin pentru oricine să le valideze. Acest lucru garantează că validatorii sunt, de asemenea, controlați de utilizatorii obișnuiți.


Tipuri de algoritmi de consimțământ

Dovada muncii (PoW)

Proof of Work (PoW) este parintele algoritmilor de consimțământ pentru blockchain. A fost implementat pentru prima dată cu Bitcoin, deși conceptul său există de mult timp. În Proof of Work, validatorii (pe care îi numim mineri) hash-uiesc datele pe care doresc să le adauge până la producerea unei soluții specifice.

Un hash este un șir aleatoriu de litere și cifre creat în timpul execuției unei funcții de hash. Dar dacă datele de intrare sunt identice, rezultatele la ieșire vor fi de asemenea identice. Totuși, cea mai mică modificare va genera un hash complet diferit.

Datele de ieșire nu permit determinarea celor de intrare. Prin urmare, aceasta este o funcție foarte eficientă pentru a dovedi că ați cunoscut o dată de ceva timp. Puteți oferi hash-ul său cuiva și când veți dezvălui datele, acea persoană le va putea executa prin funcție pentru a se asigura că ieșirea este identică.

În Proof of Work, protocolul definește condițiile care fac un bloc valid. Acesta poate, de exemplu, să spună că doar un bloc al cărui hash începe cu 00 este valid. Singura modalitate pentru un miner de a crea un bloc valid este să procedeze prin forță brută. Pentru a produce un rezultat diferit până la găsirea celui corect, minerii pot modifica un parametru în datele lor.

Pentru cele mai mari blockchains, nivelul este foarte, foarte ridicat. Pentru a concura cu ceilalți mineri, trebuie să aveți un depozit plin de ASIC-uri, un hardware conceput special pentru a vă crește șansele de a produce un bloc valid.

Stake-ul dumneavoastră, în mining, corespunde costurilor acestor mașini și electricității necesare pentru a le pune în funcțiune. ASIC-urile sunt proiectate cu scopul exclusiv de a mina, așa că nu au utilizări în afara mineritului de criptomonede. Singura modalitate de a recupera investiția inițială este să minați și să obțineți recompense reușind să adăugați un nou bloc la blockchain.

Este foarte simplu pentru rețea să verifice că ați creat blocul corect. O singură execuție cu funcția permite verificarea rezultatului numeroaselor dumneavoastră încercări. Dacă datele dumneavoastră produc un hash valid, acesta va fi acceptat și veți primi o recompensă. Altfel, rețeaua îl va invalida și veți fi pierdut timp și electricitate degeaba.


Dovada mizei (PoS)

Proof of Stake (PoS) a fost propus la începutul Bitcoin ca o alternativă la Proof of Work. În PoS, conceptele de mineri, hardware specializat și consum masiv de energie nu există. Trebuie doar să aveți un computer.

Și un mic detaliu... Trebuie să puneți o monedă în mașină. În PoS, în loc să folosiți o resursă externă (mașini și electricitate), veți folosi o resursă internă (o criptomonedă). Reguli diferă în funcție de protocoale, dar în general va trebui să dețineți o sumă minimă pentru a participa la staking.

Apoi va trebui să blocați fondurile în portofel (nu pot fi mutate atunci când faceți staking). De obicei, veți conveni cu ceilalți validatori asupra tranzacțiilor care vor trece în blocul următor. Într-un sens, pariați pe blocul care va fi selectat, iar protocolul decide restul.

Dacă blocul dumneavoastră este selectat, veți primi o parte din taxele de tranzacție, proporțional cu stake-ul dumneavoastră. Cu cât blocați mai multe fonduri, cu atât aveți mai multe șanse de a câștiga. Dar dacă încercați să trișați propunând tranzacții invalide, veți pierde o parte (sau întreaga) din stake. Prin urmare, avem un mecanism similar cu PoW – a acționa onest este mai profitabil decât a acționa în mod necinstit.

În general, monedele create recent nu fac parte din recompensele validatorilor. Moneda nativă a blockchain-ului trebuie, așadar, să fie emisă într-un mod diferit. Acest lucru se poate face printr-o distribuție inițială (ex.: o ICO sau o IEO) sau prin utilizarea PoW la începutul protocolului înainte de tranziția către PoS.

Până în prezent, Proof of Stake pur este utilizat doar de criptomonede mici. Prin urmare, nu este sigur că poate servi ca o alternativă viabilă la PoW. Deși pare teoretic valabil, în practică va fi altceva.

Odată ce PoS a fost implementat pe o rețea cu o cantitate mare de informații, sistemul devine un teren perfect pentru stimulente financiare și teoria jocurilor. Oricine are competențele necesare pentru a „pirata” un sistem PoS nu o va face decât dacă este posibil să profite de pe urma acestuia – de aceea, singura modalitate de a afla dacă este posibil este de a încerca direct pe rețea.

Vom vedea în curând teste la scară largă ale PoS – Casper va fi implementat în cadrul unei serii de actualizări ale rețelei Ethereum (cunoscut și sub numele de Ethereum 2.0).


Tipuri de algoritmi de consimțământ

Proof of Work și Proof of Stake sunt cei mai comuni algoritmi de consimțământ. Dar există evident multe altele, fiecare având avantaje și dezavantaje. Consultați articolele următoare:

  • Proof of Work întârziat explicat

  • Consensul Leased Proof of Stake explicat

  • Proof of Authority explicat

  • Proof of Burn explicat

  • Delegated Proof of Stake explicat

  • Consensul Hybrid PoW/PoS explicat


Pentru a concluziona

Mecanismele pentru obținerea unui consens sunt vitale pentru funcționarea sistemelor distribuite. Mulți consideră că cea mai mare inovație a Bitcoin este utilizarea Proof of Work pentru a permite utilizatorilor să ajungă la un acord asupra unui set comun de fapte.

Algoritmii de consimțământ susțin astăzi nu doar sistemele de monedă digitală, ci și blockchains, care permit dezvoltatorilor să execute cod pe o rețea distribuită. Aceștia constituie o piatră de temelie a tehnologiei blockchain și sunt esențiali pentru viabilitatea pe termen lung a diferitelor rețele existente.

Dintre toți algoritmii de consimțământ, Proof of Work rămâne cel mai utilizat. De fapt, nu a fost propusă încă o alternativă mai fiabilă și mai sigură. Ceea ce este adevărat este că există o mulțime de cercetare și dezvoltare pentru a înlocui PoW și este foarte probabil că vom vedea mai multe consensuri emergente în anii următori.