Mis on plokiahela konsensusalgoritm?
Avaleht
Artiklid
Mis on plokiahela konsensusalgoritm?

Mis on plokiahela konsensusalgoritm?

Algaja
Avaldatud Dec 13, 2018VĂ€rskendatud Aug 17, 2023
7m

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.