Introducere
Un algoritm de consens este un mecanism care le permite utilizatorilor sau mașinilor să se coordoneze într-un cadru distribuit. Trebuie să se asigure că toți agenții din sistem pot conveni asupra unei singure surse de adevăr, chiar dacă unii agenți eșuează. Cu alte cuvinte, sistemul trebuie să fie tolerant la erori (consultați și: Toleranța la erori bizantine explicată).
Într-o configurație centralizată, o singură entitate are putere asupra sistemului. În majoritatea cazurilor, aceasta poate face modificări după cum dorește – nu există un sistem complex de guvernanță pentru a ajunge la un consens între mai mulți administratori.
Dar într-o configurație descentralizată, lucrurile sunt complet diferite. Să presupunem că lucrăm cu o bază de date distribuită – cum ajungem la un acord cu privire la intrările adăugate?
Depășirea acestei provocări într-un mediu în care participanții nu au încredere unii în alții a fost poate cea mai importantă dezvoltare care a deschis calea pentru blockchainuri. În acest articol, vom analiza în ce mod algoritmii de consens sunt esențiali pentru funcționarea criptomonedelor și a registrelor distribuite.
Algoritmii de consens și criptomonedele
În criptomonede, soldurile utilizatorilor sunt înregistrate într-o bază de date – blockchain. Este esențial ca toată lumea (sau, mai exact, fiecare nod) să păstreze o copie identică a bazei de date. În caz contrar, veți primi informații conflictuale, subminând întregul scop al rețelei de criptomonede.
Criptografia cu cheie publică asigură că un utilizator nu poate cheltui monedele altuia. Însă, trebuie să existe o singură sursă de adevăr pe care să se bazeze participanții la rețea, pentru a putea determina dacă fondurile au fost deja cheltuite.
Satoshi Nakamoto, creatorul Bitcoin, a propus un sistem Proof of Work pentru a coordona participanții. Vom vedea cum funcționează PoW în scurt timp – deocamdată, vom identifica unele dintre trăsăturile comune ale numeroșilor algoritmi de consens existenți.
În primul rând, le cerem utilizatorilor care doresc să adauge blocuri (îi vom numi validatori) să furnizeze un stake. Stake-ul este un fel de valoare pe care un validator trebuie să o ofere drept garanție, fiind astfel descurajat să întreprindă acțiuni necinstite. Dacă trișează, își va pierde stake-ul. Printre exemple se numără puterea de calcul, criptomoneda sau chiar reputația.
De ce s-ar deranja să își riște propriile resurse? Ei bine, există și o recompensă disponibilă. Aceasta constă de obicei din criptomoneda nativă a protocolului și este alcătuită din comisioanele plătite de alți utilizatori, din unități de criptomonedă proaspăt generate sau ambele.
Ultimul lucru de care avem nevoie este transparența. Trebuie să fim capabili să detectăm când cineva trișează. În mod ideal, ar trebui să fie costisitor pentru aceștia să producă blocuri, dar ieftin pentru oricine să le valideze. Astfel se asigură că validatorii sunt ținuți sub control de către utilizatorii obișnuiți.
Tipuri de algoritmi de consens
Proof of Work (PoW)
Proof of Work (PoW) este cel mai important dintre algoritmii de consens blockchain. A fost implementat pentru prima dată în Bitcoin, dar conceptul real există de ceva timp. În Proof of Work, validatorii (numiți mineri) aplică procesul de hashing pentru datele pe care doresc să le adauge până când produc o soluție specifică.
Un hash este un șir aparent aleatoriu de litere și numere care este creat atunci când rulați date printr-o funcție hash. Dar, dacă rulați aceleași date prin el din nou, veți obține același rezultat. Schimbați chiar și un detaliu, iar hash-ul dvs. va fi complet diferit.
Analizând rezultatul, nu veți putea spune ce informații au fost introduse în funcție. Prin urmare, funcția este utilă pentru a demonstra că cunoașteți datele înainte de un anumit moment. Puteți da cuiva hash-ul și, atunci când dezvăluiți ulterior datele, persoana respectivă le poate rula prin funcție pentru a se asigura că rezultatul este același.
În Proof of Work, protocolul stabilește condiții pentru ceea ce face ca un bloc să fie valid. Acesta poate spune, de exemplu, că numai un bloc al cărui hash începe cu 00 va fi valid. Singura modalitate prin care minerul poate crea unul care se potrivește cu acea combinație este introducerea de forță brută. Acesta poate modifica un parametru în datele sale pentru a produce un rezultat diferit pentru fiecare presupunere, până când obține hash-ul potrivit.
În cazul blockchain-urilor majore, ținta este stabilită incredibil de sus. Pentru a concura cu alți mineri, ați avea nevoie de un depozit plin de hardware special de hashing (ASIC) pentru a avea șansa de a produce un bloc valid.
Atunci când faceți minerit, stake-ul dvs. este costul acestor mașini și energia electrică necesară pentru funcționarea lor. ASIC-urile sunt construite cu un singur scop, astfel încât nu au nicio utilizare în aplicații în afara mineritului de criptomonede. Singura modalitate de a vă recupera investiția inițială este să minați, ceea ce aduce o recompensă semnificativă dacă adăugați cu succes un nou bloc în blockchain.
Este trivial ca rețeaua să verifice dacă ați creat într-adevăr blocul potrivit. Chiar dacă ați încercat trilioane de combinații pentru a obține hash-ul potrivit, trebuie doar să vă ruleze datele printr-o funcție o dată. Dacă datele dvs. produc un hash valid, acestea vor fi acceptate și veți primi o recompensă. În caz contrar, rețeaua le va respinge și veți pierde timp și energie electrică degeaba.
Proof of Stake (PoS)
Proof of Stake (PoS) a fost propus în primele zile ale Bitcoin ca alternativă pentru Proof of Work. Într-un sistem PoS, nu există conceptul de mineri, hardware specializat sau consum masiv de energie. Tot ce aveți nevoie este un computer obișnuit.
Ei bine, nu chiar tot. Mai trebuie să puneți în joc și propria piele. În PoS, nu se folosește o resursă externă (cum ar fi electricitate sau hardware), ci una internă – criptomoneda. Regulile diferă în funcție de fiecare protocol dar, în general, există o sumă minimă de fonduri pe care trebuie să o dețineți pentru a fi eligibil pentru staking.
Apoi, vă blocați fondurile într-un portofel (acestea nu pot fi mutate în timp ce efectuați stakingul). De obicei, veți fi de acord cu alți validatori cu privire la tranzacțiile care vor intra în blocul următor. Într-un fel, pariați pe blocul care va fi selectat, iar protocolul va alege unul.
Dacă blocul dvs. este selectat, veți primi o parte din comisioanele de tranzacție, în funcție de stake-ul dvs. Cu cât ați strâns mai multe fonduri, cu atât aveți mai mult de câștigat. Dar dacă încercați să trișați propunând tranzacții nevalide, veți pierde o parte (sau tot) din stake-ul dvs. Prin urmare, avem un mecanism similar cu PoW – acțiunile cinstite sunt mai profitabile decât cele necinstite.
În general, nu există monede proaspăt create ca parte a recompensei pentru validatori. Moneda nativă a blockchain-ului trebuie, așadar, emisă într-un alt mod. Acest lucru se poate face fie printr-o distribuție inițială (adică, un ICO sau IEO), fie prin lansarea protocolului cu PoW înainte de trecerea ulterioară la PoS.
Până în prezent, Proof of Stake în formă pură a fost implementat doar pentru criptomonede mai mici. Prin urmare, nu este clar dacă poate reprezenta o alternativă viabilă la PoW. Deși teoretic pare solid, va fi foarte diferit în practică.
Odată ce PoS este lansat într-o rețea cu o valoare mare, sistemul devine mediul propice pentru teorii ale jocului și stimulente financiare. Oricine are cunoștințele necesare pentru a „pirata” un sistem PoS probabil ar face acest lucru numai dacă ar putea câștiga de pe urma acestei acțiuni – prin urmare, o rețea live este singura modalitate de a afla dacă este fezabil.
Vom vedea în curând PoS testat pe scară largă – Casper va fi implementat ca parte a unei serii de upgrade-uri ale rețelei Ethereum (cunoscută în mod colectiv sub numele de Ethereum 2.0).
Alți algoritmi de consens
Proof of Work și Proof of Stake sunt cei mai discutați algoritmi de consens. Dar există o mare varietate de algoritmi diferiți, fiecare cu propriile avantaje și dezavantaje. Consultați următoarele articole:
Gânduri de încheiere
Mecanismele pentru atingerea consensului sunt esențiale pentru funcționarea sistemelor distribuite. Mulți cred că cea mai mare inovație a Bitcoin a fost utilizarea Proof of Work pentru a le permite utilizatorilor să se pună de acord asupra unui set comun de fapte.
În prezent, algoritmii de consens nu numai că stau la baza sistemelor de bani digitali, ci și a blockchain-urilor care le permit dezvoltatorilor să ruleze codul într-o rețea distribuită. Aceștia sunt în prezent un element fundamental al tehnologiei blockchain și sunt esențiali pentru viabilitatea pe termen lung a diferitelor rețele existente.
Dintre toți algoritmii de consens, Proof of Work rămâne oferta dominantă. O alternativă mai fiabilă și mai sigură nu a fost încă propusă. Acestea fiind spuse, există un volum uriaș de cercetări și progrese pentru înlocuitori ai PoW și este probabil să vedem mai mulți apărând în următorii ani.