Introducere
Un algoritm de consens este un mecanism care 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 (vezi și: Explicarea toleranței bizantine la erori).
Într-o configurație centralizată, o singură entitate are putere asupra sistemului. În majoritatea cazurilor, aceștia pot face modificări după bunul plac – nu există un sistem de guvernanță complex pentru a ajunge la un consens între mulți administratori.
Dar într-o configurație descentralizată, este cu totul altă poveste. Să presupunem că lucrăm cu o bază de date distribuită - cum ajungem la un acord cu privire la ce intrări sunt adăugate?
Depășirea acestei provocări într-un mediu în care străinii nu au încredere unii în alții a fost poate cea mai importantă dezvoltare care a deschis calea pentru blockchain-uri. În acest articol, vom arunca o privire asupra modului în care algoritmii de consens sunt vitali pentru funcționarea criptomonedelor și a registrelor contabile distribuite.
Algoritmi de consens și criptomonede
În criptomonede, soldurile utilizatorilor sunt înregistrate într-o bază de date – blockchain. Este esențial ca toată lumea (sau, mai precis, fiecare nod) să mențină o copie identică a bazei de date. În caz contrar, veți ajunge în curând cu informații conflictuale, subminând întregul scop al rețelei de criptomonede.
Criptografia cu cheie publică asigură că utilizatorii nu pot cheltui monedele celuilalt. Dar mai 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 intra în curând în modul în care funcționează PoW – pentru moment, vom identifica unele dintre trăsăturile comune ale numeroșilor algoritmi de consens existent.
În primul rând, solicităm ca utilizatorii care doresc să adauge blocuri (le vom numi validatori) să ofere o miză. Miza este un fel de valoare pe care un validator trebuie să o prezinte, care îi descurajează să acționeze necinstit. Dacă trișează, își vor pierde miza. Exemplele includ 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 taxe plătite de alți utilizatori, unități de criptomonede proaspăt generate sau ambele.
Ultimul lucru de care avem nevoie este transparența. Trebuie să fim capabili să detectăm când cineva înșală. În mod ideal, ar trebui să fie costisitor pentru ei să producă blocuri, dar ieftin pentru oricine să le valideze. Acest lucru asigură că validatorii sunt ținuți sub control de către utilizatorii obișnuiți.
Tipuri de algoritmi de consens
Dovada muncii (PoW)
Proof of Work (PoW) este nașul algoritmilor 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) trimit 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 ajunge întotdeauna cu aceeași ieșire. Schimbați chiar și un detaliu, totuși, și hash-ul dvs. va fi complet diferit.
Privind rezultatul, nu puteți spune ce informații au fost introduse în funcție. Prin urmare, sunt utile pentru a demonstra că cunoașteți o informație înainte de un anumit timp. 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 valabil. S-ar putea spune, de exemplu, doar un bloc al cărui hash începe cu 00 va fi valid. Singura modalitate prin care minerul poate crea una care se potrivește cu acea combinație este introducerea de forță brută. Ei pot modifica un parametru în datele lor pentru a produce un rezultat diferit pentru fiecare presupunere, până când obțin hash-ul potrivit.
Cu blockchain-urile majore, ștacheta este stabilită incredibil de sus. Pentru a concura cu alți mineri, ai avea nevoie de un depozit plin de hardware special de hashing (ASIC) pentru a avea șansa de a produce un bloc valid.
Miza dvs., atunci când exploați, este costul acestor mașini și energia electrică necesară pentru a le exploata. ASIC-urile sunt construite cu un singur scop, astfel încât nu au nicio utilizare în aplicații în afara minării criptomonedelor. Singura modalitate de a vă recupera investiția inițială este să mine, ceea ce aduce o recompensă semnificativă dacă adăugați cu succes un nou bloc în blockchain.
Este banal 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 tale produc un hash valid, acestea vor fi acceptate și vei primi o recompensă. În caz contrar, rețeaua o va respinge și veți pierde timp și energie electrică pentru nimic.
Dovada mizei (PoS)
Proof of Stake (PoS) a fost propus în primele zile ale Bitcoin ca alternativă la 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 toate. Încă mai trebuie să pui ceva skin în joc. În PoS, nu propui o resursă externă (cum ar fi electricitatea sau hardware-ul), 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 miza.
De acolo, vă blocați fondurile într-un portofel (acestea nu pot fi mutate în timp ce mizați). De obicei, veți fi de acord cu alți validatori cu privire la tranzacțiile care vor intra în următorul bloc. Într-un fel, pariezi pe blocul care va fi selectat, iar protocolul va alege unul.
Dacă blocarea dvs. este selectată, veți primi o parte din comisioanele de tranzacție, în funcție de miza dvs. Cu cât ai strâns mai multe fonduri, cu atât mai mult ai de câștigat. Dar dacă încercați să înșelați propunând tranzacții nevalide, veți pierde o parte (sau toată) din miza dvs. Prin urmare, avem un mecanism similar cu PoW – a acționa cinstit este mai profitabil decât a acționa necinstit.
În general, nu există monede proaspăt create ca parte a recompensei pentru validatori. Moneda nativă a blockchain-ului trebuie astfel 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 tranziția ulterioară la PoS.
Până în prezent, purul Proof of Stake a fost implementat doar în criptomonede mai mici. Prin urmare, nu este clar dacă poate servi ca 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 un teren de joc de teoria jocurilor și stimulente financiare. Oricine are cunoștințele de a „pirata” un sistem PoS probabil ar face acest lucru numai dacă ar putea câștiga din el – prin urmare, singura modalitate de a afla dacă este fezabil este într-o rețea live.
Vom vedea în curând PoS testat la scară largă – Casper va fi implementat ca parte a unei serii de upgrade-uri la rețeaua Ethereum (cunoscută în mod colectiv ca 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 altele, toate cu propriile avantaje și dezavantaje. Consultați următoarele articole:
Dovada de lucru întârziată explicată
S-a explicat dovada mizei închiriate
Dovada de autoritate explicată
Dovada arsurii explicată
Dovada mizei delegate explicată
Consensul hibrid PoW/PoS explicat
Gânduri de închidere
Mecanismele pentru atingerea consensului sunt vitale pentru funcționarea sistemelor distribuite. Mulți cred că cea mai mare inovație în Bitcoin a fost utilizarea Proof of Work pentru a permite utilizatorilor să cadă de acord asupra unui set comun de fapte.
Algoritmii de consens de astăzi stau la baza nu numai sistemelor de bani digitali, ci și blockchain-urilor care le permit dezvoltatorilor să ruleze cod într-o rețea distribuită. Ele sunt acum o piatră de temelie a tehnologiei blockchain și sunt esențiale 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ă o cantitate uriașă de cercetare și dezvoltare în înlocuiri pentru PoW și este probabil să vedem mai multe dintre ele la suprafață în următorii ani.