Kas ir blokķēdes konsensa algoritms?
Sākums
Raksti
Kas ir blokķēdes konsensa algoritms?

Kas ir blokķēdes konsensa algoritms?

Iesācējiem
Publicēts Dec 13, 2018Atjaunināts Jun 13, 2024
7m

Ievads

Konsensa algoritms ir mehānisms, ar kuru tiek nodrošināta lietotāju vai mašīnu koordinēšana decentralizētā sistēmā. Tam ir jānodrošina, lai visi pārstāvji sistēmā varētu vienoties par vienotu patiesības avotu – pat tad, ja dažiem no tiem rodas darbības kļūmes. Citiem vārdiem sakot, sistēmai jābūt noturīgai pret kļūdām (skat. arī: Bizantijas kļūdu tolerances skaidrojums).

Centralizētā sistēmā vienai personai ir vara pār visu sistēmu. Vairumā gadījumu šī persona var veikt izmaiņas pēc saviem ieskatiem – nav nekādas komplicētas pārvaldības sistēmas, kas ļautu vairākiem administratoriem sasniegt konsensu. 

Taču decentralizētā sistēmā ir pavisam citādi. Pieņemsim, ka mēs strādājam ar decentralizētu datubāzi, – kā lai vienojamies par to, kādus ierakstus tai pievienot?

Nepieciešamība risināt šo problēmu vidē, kurā svešinieki viens otram neuzticas, bija, iespējams, nozīmīgākais apstāklis, kas pavēra ceļu blokķēdēm. Šajā rakstā apskatīsim, kāpēc konsensa algoritmi ir tik nozīmīgi kriptovalūtu un sadalīto virsgrāmatu darbībā.


Konsensa algoritmi un kriptovalūta

Kriptovalūtu lietotāju kontu atlikumi tiek reģistrēti datubāzē jeb blokķēdē. Ir svarīgi, lai ikviens (jeb, precīzāk, katrs mezgls) saglabātu identisku datubāzes kopiju. Pretējā gadījumā drīz vien izveidosies situācija ar pretrunīgu informāciju, tādējādi apdraudot kriptovalūtu tīkla pastāvēšanas mērķi.
Publiskās atslēgas kriptogrāfija nodrošina, ka lietotāji nevar tērēt citiem piederošu kriptovalūtu. Tomēr joprojām ir nepieciešams vienots patiesības avots, kuram tīkla dalībnieki uzticētos, lai varētu noteikt, vai līdzekļi jau nav iztērēti.

Bitcoin radītājs Satoshi Nakamoto dalībnieku koordinēšanai piedāvāja darba apliecinājuma sistēmu. Drīzumā apskatīsim darba apliecinājuma (PoW) darbības principu, bet pagaidām identificēsim dažas kopīgās iezīmes, kas raksturīgas visiem pastāvošajiem konsensa algoritmiem.

Pirmkārt, lietotājiem, kuri vēlas pievienot blokus (sauksim tos par validētājiem), ir jānodrošina likme. Likme ir noteikta vērtība, kas validētājam ir jāiegulda, lai viņš nebūtu ieinteresēts rīkoties negodīgi. Krāpjoties validētājs zaudē savu ieguldījumu. Likmes piemēri ir skaitļošanas jauda, kriptovalūta un pat reputācija. 
Kāpēc viņiem būtu jāriskē ar saviem resursiem? Iemesls ir pieejamā atlīdzība. Tā parasti tiek izmaksāta protokola pamata kriptovalūtā un ietver lietotāju samaksātās komisijas maksas, jauniegūtās kriptovalūtas vienības vai šo abu veidu atlīdzību.
Visbeidzot, ir nepieciešams nodrošināt pārskatāmību. Ir jāspēj noteikt, kad kāds krāpjas. Ideālā gadījumā bloku izveide izmaksātu dārgi, bet šo bloku validēšana ikvienam būtu lēta. Tādējādi validētājus pārbaudītu parasti lietotāji.


Konsensa algoritmu veidi

Darba apliecinājums (PoW)

Darba apliecinājums (PoW) ir blokķēžu konsensa mehānismu ciltstēvs. Pirmoreiz tas tika ieviests Bitcoin tīklā, taču tā koncepcija pastāv jau ilgāku laiku. Darba apliecinājuma sistēmā validētāji, kurus sauc par ieguvējiem, jauc datus, kurus viņi vēlas pievienot, līdz tiek iegūts noteikts risinājums.
Jaucējkods ir šķietami nejauša burtu un ciparu virkne, kas tiek izveidota brīdī, kad datiem tiek piemērota jaukšanas funkcija. Tomēr, vieniem un tiem pašiem datiem atkārtoti veicot jaukšanu, vienmēr tiek iegūts nemainīgs rezultāts. Taču, pamainot kaut vienu detaļu, jaucējkods būs pilnīgi atšķirīgs.

Paraugoties uz rezultātu, nav iespējams pateikt, kādi bija jaukšanas funkcijas sākotnējie dati. Tāpēc šis risinājums ir noderīgs tad, ja vēlies pierādīt, ka tu zināji konkrētos datus pirms noteikta laika. Tu vari iedot kādam jaucējkodu un vēlāk, kad atklāsi datus, šis cilvēks varēs ar jaukšanas funkcijas palīdzību pārbaudīt, vai iegūtais rezultāts atbilst attiecīgajam jaucējkodam.

Darba apliecinājuma gadījumā protokols izvirza nosacījumus, kas jāizpilda, lai atzītu bloku par derīgu. Piemēram, nosacījums varētu būt tāds, ka derīgs ir tikai bloks ar jaucējkodu, kas sākas ar 00. Vienīgais veids, kā ieguvējs varētu izveidot šai kombinācijai atbilstošu bloku, ir veikt pārlases ievades. Viņš var pamainīt kādu parametru savos datos, lai katru reizi iegūtu atšķirīgu rezultātu, līdz tiktu atrasts pareizais jaucējkods. 

Lielākajās blokķēdēs latiņa ir neticami augsta. Lai sacenstos ar citiem ieguvējiem par tiesībām izveidot derīgu bloku, būtu nepieciešama pilna noliktava ar specializētu jaukšanas aparatūru (ASIC).

Ieguves gadījumā tava likme jeb ieguldījums ir šo iekārtu un to patērētās elektrības izmaksas. ASIC ir paredzēti vienam mērķim, tāpēc tos nevar izmantot nekam citam, izņemot kriptovalūtu ieguvi. Vienīgais veids, kā atgūt savu sākotnējo ieguldījumu, ir nodarboties ar ieguvi, par ko tiek piešķirta dāsna atlīdzība, ja izdodas pievienot blokķēdei jaunu bloku.

Tīkls var viegli pārbaudīt, vai tu tiešām izveidoji pareizo bloku. Pat tad, ja izmēģināsi triljoniem dažādu kombināciju, cenšoties atrast pareizo jaucējkodu, taviem datiem būs tikai vienreiz jāpalaiž pārbaudes funkcija. Ja no taviem datiem tiks iegūts derīgs jaucējkods, tas tiks apstiprināts un tu saņemsi atlīdzību. Pretējā gadījumā tīkls to noraidīs un tu būsi izniekojis savu laiku un elektrību.


Likmes apliecinājums (PoS)

Likmes apliecinājuma (PoS) mehānisms Bitcoin pirmsākumos tika piedāvāts kā alternatīvs risinājums darba apliecinājumam. PoS sistēmā nav ieguvēju, specializētas aparatūras vai milzīga enerģijas patēriņa. Ir nepieciešams vien parasts dators.
Patiesībā – ne tikai tas. Tev ir jāveic arī zināms ieguldījums. PoS sistēmā tu ieguldi nevis ārējus resursus (piemēram, elektrību vai aparatūru), bet gan iekšējus resursus – kriptovalūtu. Noteikumi katrā protokolā ir atšķirīgi, taču parasti tiek noteikts minimālais līdzekļu daudzums, kāds tev nepieciešams, lai varētu piedalīties steikingā.

Pēc tam tu iesaldē savus līdzekļus makā (steikinga periodā tos nedrīkst pārvietot). Parasti tu vienojies ar citiem validētājiem par to, kuri darījumi tiks iekļauti nākamajā blokā. Savā ziņā tu liec likmi uz bloku, kurš tiks izvēlēts, un protokols izdara šo izvēli.

Ja tiek izvēlēts tavs bloks, tu saņem daļu no blokā esošo darījumu komisijas maksām, un šī atlīdzība ir atkarīga no tava ieguldījuma. Jo vairāk līdzekļu iesaldēsi, jo lielākas būs tavas izredzes nopelnīt. Taču, mēģinot krāpties un piedāvājot nederīgus darījumus, tu zaudēsi daļu no sava ieguldījuma vai pat to visu. Līdz ar to iegūstam mehānismu, kas līdzinās PoW, – izdevīgāk ir rīkoties godīgi, nevis krāpties.

Parasti validētāji atlīdzībā nesaņem jauniegūtas kriptovalūtas vienības. Tāpēc blokķēdes pamata kriptovalūta ir jāizdod kādā citā veidā. To var izdarīt, izmantojot sākotnējo sadali (piem., ICO vai IEO) vai vispirms palaižot protokolu ar PoW mehānismu un vēlāk veicot pāreju uz PoS.

Līdz šim likmes apliecinājuma mehānisms faktiski ir izmantots tikai mazākām kriptovalūtām. Tāpēc šobrīd nevar ar pārliecību pateikt, vai to var uzskatīt par konkurētspējīgu risinājumu darba apliecinājumam. Lai gan tas teorētiski šķiet efektīvs risinājums, praktiskā situācija var ievērojami atšķirties. 

Ieviešot PoS mehānismu tīklā ar lielu līdzekļu apjomu, sistēmā veidojas labvēlīgi apstākļi spēles teorijas un finansiālo stimulu izmantošanai. Ikviens, kam ir zināšanas par to, kā "uzlauzt" PoS sistēmu, visticamāk, to darītu tikai tad, ja varētu gūt kādu labumu, tāpēc vienīgais veids, kā noskaidrot, vai tas ir iespējams, ir aktīvā tīklā.

Drīzumā PoS tiks testēts plašā mērogā – Casper tiks ieviests līdz ar vairākiem jauninājumiem Ethereum tīklā (tos kopā apzīmē ar jēdzienu Ethereum 2.0).


Citi konsensa algoritmi

Darba apliecinājums un likmes apliecinājums ir visplašāk apspriestie konsensa algoritmi. Taču pastāv arī daudzi citi, un katram no tiem ir savas priekšrocības un trūkumi. Apskati šos rakstus:


Noslēgumā

Konsensa nodrošināšanas mehānismiem ir ļoti svarīga loma decentralizēto sistēmu darbībā. Daudzi uzskata, ka Bitcoin lielākā inovācija bija darba apliecinājuma izmantošana, sniedzot lietotājiem iespēju vienoties par vienotu faktu kopumu.

Mūsdienās uz konsensa algoritmiem balstās ne tikai digitālās naudas sistēmas, bet arī blokķēdes, ļaujot izstrādātājiem palaist kodu visā decentralizētajā tīklā. Tie ir blokķēdes tehnoloģijas stūrakmens un ir ļoti svarīgi dažādu pastāvošo tīklu ilgtermiņa darbībai.

No visiem konsensa algoritmiem dominējošais šobrīd ir darba apliecinājums. Pagaidām nav radīta drošāka un uzticamāka alternatīva. Tajā pat laikā tiek veikti apjomīgi izpētes un izstrādes darbi, lai rastu PoW alternatīvas, un nākamo gadu laikā, visticamāk, kļūs pieejami jauni risinājumi.