Sissejuhatus
Konsensusalgoritm on mehhanism, mis võimaldab kasutajatel või masinatel hajutatud seadistustes koordineeruda. See peab tagama, et kõik süsteemi agendid saaksid kokku leppida ühes tõeallikas, isegi kui mõned agendid ebaõnnestuvad. Teisisõnu peab süsteemil olema tõrketaluvus (vt ka: Byzantine tõrketaluvuse tutvustus).
Tsentraliseeritud seadistuses on süsteemi üle võim ühel asutusel. Enamasti saavad nad teha muudatusi oma äranägemise järgi – paljude administraatorite vahel konsensuse saavutamiseks pole keerulist juhtimissüsteemi.
Kuid detsentraliseeritud seadistuses on see hoopis teine lugu. Oletame, et töötame hajutatud andmebaasiga – kuidas jõuame kokkuleppele, millised kirjed lisatakse?
Selle väljakutse ületamine keskkonnas, kus võõrad üksteist ei usalda, oli ehk kõige olulisem areng, mis sillutas teed plokiahelatele. Selles artiklis vaatleme, kuidas konsensusalgoritmid on krüptorahade ja hajusraamatute toimimiseks üliolulised.
Konsensusalgoritmid ja krüptoraha
Krüptorahades salvestatakse kasutajate saldod andmebaasi – plokiahelasse. On oluline, et kõik (või täpsemalt iga sõlm) säilitaks andmebaasi identse koopia. Vastasel juhul jõuaksid peagi vastuolulise teabeni, mis kahjustab krüptorahavõrgu kogu eesmärki.
Avaliku võtmega krüptograafia tagab, et kasutajad ei saaks üksteise münte kulutada. Kuid ikkagi peab olema üksainus tõeallikas, millele võrgustikus osalejad tuginevad, et teha kindlaks, kas raha on juba kulutatud.
Bitcoini looja Satoshi Nakamoto pakkus osalejate koordineerimiseks välja töötõenduse süsteemi. Peagi uurime, kuidas PoW töötab – praegu teeme kindlaks paljude olemasolevate konsensusalgoritmide ühised jooned.
Esiteks nõuame, et kasutajad, kes soovivad plokke lisada (nimetame neid valideerijateks), esitaksid panuse. Panus on mingi väärtus, mille valideerija peab esitama, mis väldiks nende ebaausat tegutsemast. Kui nad petavad, kaotavad nad oma panuse. Näited hõlmavad arvutusvõimsust, krüptoraha või isegi mainet.
Miks nad peaksid oma ressurssidega riskima? Sest on saadaval ka preemia. Tavaliselt koosneb see protokolli algsest krüptovarahast ja teiste kasutajate makstud tasudest, värskelt loodud krüptorahaühikutest või mõlemast.
Viimane mida vajame, on läbipaistvus. Peame suutma tuvastada, kui keegi petab. Ideaalis peaks plokkide tootmine olema neile kulukas, kuid nende valideerimine oleks igaühele odav. See tagab, et tavakasutajad hoiavad valideerijaid kontrolli all.
Teised konsensusalgoritmid
Töötõendus (PoW)
Töötõendus (PoW) on plokiahela konsensusalgoritmide ristiisa. Seda rakendati esmakordselt Bitcoinis, kuid tegelik kontseptsioon on olnud olemas juba mõnda aega. Töötõenduses räsivad valideerijad (keda nimetatakse kaevandajateks) andmeid, mida nad soovivad lisada, kuni nad loovad konkreetse lahenduse.
Räsi on näiliselt juhuslik tähtede ja numbrite jada, mis luuakse andmete käitamisel räsifunktsiooni kaudu. Kui töötled samad andmed uuesti läbi, saad alati sama väljundi. Kuid muuda kasvõi ühte detaili ja sinu räsi on täiesti erinev.
Väljundit vaadates ei saa sa kuidagi öelda, millist teavet funktsiooni sisestati. Seetõttu on need kasulikud tõestamaks, et teadsid teatud andmeid enne teatud aega. Saad anda kellelegi selle räsi ja kui hiljem andmed avaldad, saab see inimene seda funktsiooni kaudu käivitada, et veenduda, kas väljund on sama.
Töötõenduses sätestab protokoll tingimused, mis muudavad ploki kehtivaks. Näiteks võib öelda, et kehtiv on ainult plokk, mille räsi algab 00-ga. Ainus viis, kuidas kaevandaja saab selle kombinatsiooniga sobiva luua, on toore jõu sisendid. Nad saavad oma andmetes kohandada parameetrit, et saada iga oletuse jaoks erinev tulemus, kuni nad satuvad õige räsi otsa.
Suurte plokiahelate puhul on latt uskumatult kõrgele seatud. Teiste kaevandajatega konkureerimiseks vajad ladu, mis on täis spetsiaalset räsiriistvara (ASIC), et saaksid luua kehtiva ploki.
Kaevandamisel on sinu panus nende masinate maksumus ja nende käitamiseks vajalik elekter. ASIC-ud on loodud ühel eesmärgil, seega pole neist väljaspool krüptoraha kaevandamise rakendust mingit kasu. Sinu ainus viis oma esialgse investeeringu tasumiseks on kaevandamine, mille eest saab märkimisväärset tasu, kui lisad plokiahelasse uue ploki.
Võrgu jaoks on triviaalne kontrollida, kas oled loonud õige ploki. Isegi kui oled õige räsi saamiseks proovinud triljoneid kombinatsioone, on neil vaja sinu andmed läbi funktsiooni lasta vaid ühe korra. Kui sinu andmed annavad kehtiva räsi, võetakse need vastu ja sa saad preemiat. Vastasel juhul lükkab võrk selle tagasi ja sa raiskad aega ja elektrit asjata.
Panuse tõendus (PoS)
Panuse tõendus (PoS) pakuti välja Bitcoini algusaegadel töötõenduse alternatiivina. PoS-süsteemis pole kaevandajate, spetsiaalse riistvara ega tohutu energiatarbimise kontseptsiooni. Kõik, mida vajad, on tavaline arvuti.
Tegelikult, pole see mitte päris kõik. Sul tuleb ikkagi oma nahk mängu panna. PoS-is ei paku sa välja välist ressurssi (nagu elekter või riistvara), vaid sisemist – krüptoraha. Reeglid on iga protokolli puhul erinevad, kuid üldiselt on panustamiseks vajalik minimaalne rahasumma.
Sealt edasi lukustad oma raha rahakotti (neid ei saa panuse tegemise ajal liigutada). Tavaliselt lepid teiste valideerijatega kokku, millised tehingud järgmisesse plokki lähevad. Mõnes mõttes panustad plokki, mis valitakse ja protokoll valib ühe.
Kui sinu plokk osutub valituks, saad olenevalt oma panusest osa tehingutasudest. Mida rohkem raha sul on lukustatud, seda rohkem võidad. Kuid kui üritad petta, pakkudes välja kehtetuid tehinguid, kaotad oma panuse (või osa sellest). Seetõttu on meil PoW-ga sarnane mehhanism – aus tegutsemine on tulusam kui ebaaus käitumine.
Üldjuhul ei ole valideerijate preemiaks osa värskelt loodud münte. Plokiahela natiivne raha tuleb seega väljastada muul viisil. Seda saab teha kas esialgse jaotamise (st ICO või IEO) kaudu või käivitades protokolli PoW-ga enne hilisemat PoS-ile üleminekut.
Siiani on puhast panuse tõendust tegelikult kasutusele võetud ainult väiksemate krüptorahade puhul. Seetõttu on ebaselge, kas see võib olla PoW-le elujõuline alternatiiv. Kuigi see tundub teoreetiliselt mõistlik, on see praktikas väga erinev.
Kui PoS on suure väärtusega võrgus kasutusele võetud, muutub süsteem mänguteooria ja rahaliste stiimulite mänguväljaks. Igaüks, kes oskaks PoS-süsteemi „häkkida“, teeks seda tõenäoliselt ainult siis, kui ta saaks sellest kasu – seega ainus viis teada saada kas see on teostatav, on seda proovida reaalajas võrgus.
Varsti näeme PoS-i suures mahus testituna – Casper võetakse kasutusele Ethereumi võrgu täienduste seeria osana, mida tuntakse kui (Ethereum 2.0).
Muud konsensuse algoritmid
Töötõendus ja panuse tõendus on enim arutatud konsensusalgoritmid. Kuid on palju teisi, kõigil on oma eelised ja puudused. Tutvu järgmiste artiklitega:
Lõppmärkused
Konsensuse saavutamise mehhanismid on hajutatud süsteemide toimimiseks üliolulised. Paljud usuvad, et Bitcoini suurim uuendus oli töötõenduse kasutamine, mis võimaldas kasutajatel kokku leppida jagatud faktide osas.
Konsensusalgoritmid ei toeta tänapäeval mitte ainult digitaalseid rahasüsteeme, vaid ka plokiahelaid, mis võimaldavad arendajatel kasutada koodi hajutatud võrgus. Need on nüüd plokiahela tehnoloogia nurgakiviks ja on erinevate olemasolevate võrkude pikaajalise elujõulisuse jaoks kriitilise tähtsusega.
Kõigist konsensusalgoritmidest jääb domineerivaks pakkumiseks töötõendus. Alternatiivi, mis oleks usaldusväärsem ja turvalisem, pole veel välja pakutud. Sellegi poolest on PoW-i asendamiseks tehtud tohutult palju uurimis- ja arendustööd ning tõenäoliselt näeme neid lähiaastatel rohkem.