Kas ir darba apliecinājums (PoW)?
Sākums
Raksti
Kas ir darba apliecinājums (PoW)?

Kas ir darba apliecinājums (PoW)?

Sarežģītākas tēmas
Publicēts Dec 6, 2018Atjaunināts Dec 12, 2022
8m

Ievads

Darba apliecinājums (parasti apzīmēts ar saīsinājumu "PoW") ir mehānisms, ar kuru tiek novērsta dubulto tēriņu iespējamība. Daudzas lielākās kriptovalūtas izmanto to kā savu konsensa algoritmu. Tā sauc kriptovalūtas virsgrāmatas aizsardzības metodi.

Darba apliecinājums bija pats pirmais konsensa algoritms, un tas joprojām ir dominējošais. Tas sākotnēji tika aprakstīts 2008. gadā Satoshi Nakamoto publicētajā Bitcoin tehniskajā dokumentācijā, taču pati tehnoloģija radās daudz agrāk. 

Viens no agrīnajiem darba apliecinājuma algoritma piemēriem pirms kriptovalūtu rašanās ir Adama Beka "HashCash" . Sūtītājiem pieprasot veikt nelielu skaitļošanas uzdevumu pirms e-pasta ziņojuma nosūtīšanas, saņēmēji varētu izvairīties no surogātpasta. Parastam sūtītājam šāda skaitļošana neizmaksātu dārgi, taču masveida e-pastu sūtītājiem izmaksas strauji vien pieaugtu.


Kas ir dubultie tēriņi?

Dubultie tēriņi rodas, kad vieni un tie paši līdzekļi tiek iztērēti vairāk nekā vienu reizi. Šo terminu izmanto tikai digitālās naudas kontekstā – galu galā būtu visai grūti divreiz iztērēt vienas un tās pašas skaidrās naudas vienības. Mūsdienās, maksājot par kafiju, tu iedod kasierim skaidro naudu, kas, visticamāk, tiek ievietota kases aparātā. Tu nevari pēc tam aiziet uz kafejnīcu otrā ielas pusē un samaksāt par vēl vienu kafiju ar to pašu naudu.

Savukārt digitālās naudas sistēmā šāda iespējamība teorētiski pastāv. Tu noteikti esi kādreiz veidojis datora failu kopiju – tu to vienkārši nokopē un ielīmē. Tu vari nosūtīt vienu un to pašu e-pastu desmit, divdesmit vai pat piecdesmit adresātiem. 

Tā kā digitālā nauda pēc būtības ir dati, jānodrošina, lai tās lietotāji nevarētu nokopēt un nosūtīt vienas un tās pašas naudas vienības dažādiem adresātiem. Pretējā gadījumā šāda valūtas sistēma ātri vien sabruks. 

Padziļināti dubulto tēriņu tēma ir apskatīta rakstā Dubulto tēriņu skaidrojums.


Kāpēc ir nepieciešams darba apliecinājums?

Ja esi lasījis mūsu ceļvedi par blokķēdes tehnoloģiju, tu noteikti zini, ka lietotāji tīklā pārraida darījumus. Tomēr šie darījumi netiek uzreiz atzīti par derīgiem. Tas notiek tikai pēc darījumu iekļaušanas blokķēdē. 
Blokķēde ir liela datubāze, kuru var redzēt visi lietotāji, tāpēc viņi var pārbaudīt, vai konkrētie līdzekļi nav jau tikuši iztērēti. Iztēlojies to šādi – tev un trim draugiem ir piezīmju grāmatiņa. Katru reizi, kad kāds no jums vēlas pārskaitīt jūsu izgudrotās valūtas vienības, jūs to pierakstāt – Alise samaksā Kārlim piecas vienības, Kārlis samaksā Lienei divas vienības utt.
Ir viens sarežģījums – katru reizi, kad veicat darījumu, jūs norādāt arī darījumu, no kura tika iegūti attiecīgie līdzekļi. Tātad, ja Kārlis maksā Lienei divas vienības, ieraksts faktiski būtu šāds: Kārlis maksā Lienei divas vienības, izmantojot līdzekļus no iepriekš notikuša darījuma ar Alisi.

Tagad mums ir iespēja izsekot naudas vienībām. Ja Kārlis mēģinās veikt vēl vienu darījumu, izmantojot tās pašas vienības, ko viņš nupat nosūtīja Lienei, visi to uzreiz varēs redzēt. Šī grupa neļaus ierakstīt tādu darījumu piezīmju grāmatiņā.

Tas varētu labi darboties nelielā grupā. Visi viens otru pazīst, tāpēc var vienoties par to, kurš no draugiem ierakstīs darījumus piezīmju grāmatiņā. Bet ko darīt 10 000 dalībnieku grupā? Ideja par piezīmju grāmatiņu nešķiet piemērota, jo neviens nevēlēsies uzticēt svešiniekam darījumu reģistrēšanu.

Šajā situācijā risinājums ir darba apliecinājums. Tas nodrošina, ka lietotāji nevar iztērēt naudu, kuru viņiem nav tiesību tērēt. Izmantojot spēļu teorijas un kriptogrāfijas kombināciju, PoW algoritms ļauj jebkuram atjauninināt blokķēdes datus atbilstoši sistēmas noteikumiem.


Kā darbojas PoW?

Šajā gadījumā kā piezīmju grāmatiņa darbojas blokķēde. Taču mēs nepievienojam darījumus pa vienam – tie tiek apvienoti blokos. Mēs paziņojam par darījumiem tīklā, un pēc tam lietotāji, kuri veido blokus, iekļauj šos darījumus potenciālajā blokā. Darījumi tiks atzīti par derīgiem tikai tad, kad attiecīgais potenciālais bloks tiks apstiprināts, proti, pievienots blokķēdei.

Tomēr bloku pievienošana blokķēdei izmaksā dārgi. Darba apliecinājumam ir nepieciešams, lai ieguvējs (lietotājs, kurš veido bloku) apmaiņā pret šo privilēģiju izmantotu savus resursus. Šis resurss ir skaitļošanas jauda, kuru izmanto bloka datu jaukšanai, līdz tiek atrasts uzdevuma atrisinājums.
Bloka datu jaukšana nozīmē to izmantošanu jaukšanas funkcijā, ģenerējot bloka jaucējkodu. Bloka jaucējkods kalpo kā "pirksta nospiedums" – tas apliecina tavu ievades datu identitāti un ir unikāls katram blokam.

Ir praktiski neiespējami noskaidrot sākotnējos ievades datus, izmantojot bloka jaucējkodu. Tomēr, zinot ievades datus, var pavisam vienkārši pārliecināties, ka jaucējkods ir pareizs. Vienkārši ir jāpalaiž attiecīgā funkcija, izmantojot šos ievades datus, un jāpārbauda, vai rezultāts ir tāds pats.

Darba apliecinājuma sistēmā tev jāiesniedz dati, kuru jaucējkods atbilst noteiktiem nosacījumiem. Taču tev nav zināms, kā tos iegūt. Vienīgā iespēja ir piemērot datiem jaukšanas funkciju, pārbaudot rezultāta atbilstību nosacījumiem. Neatbilstības gadījumā dati būs nedaudz jāpamaina, lai iegūtu atšķirīgu jaucējkodu. Pamainot datos pat vienu rakstzīmi, tiks iegūts pilnīgi atšķirīgs rezultāts, tāpēc nav iespējams paredzēt iznākumu.

Rezultātā, ja vēlies izveidot bloku, tev ir jāpiedalās šajā minēšanas spēlē. Parsti tiek ņemta informācija par visiem darījumiem, kurus vēlies pievienot, un nedaudz citu svarīgu datu, pēc tam to visu sajaucot kopā. Taču, tā kā tava datu kopa nemainās, tev jāpievieno kāds mainīgs informācijas fragments. Pretējā gadījumā tu vienmēr iegūsi vienu un to pašu jaucējkodu. Šos mainīgos datus sauc par vienreizējo kodu. Tas ir skaitlis, kas katrā mēģinājumā mainīsies, lai tu katru reizi iegūtu atšķirīgu jaucējkodu. Un šo procesu kopumā sauc par ieguvi.

Rezumējot – ieguve ir process, kurā blokķēdes dati tiek apkopoti un jaukti kopā ar vienreizējo kodu, līdz tiek atrasts noteikts jaucējkods. Ja tev izdodas atrast jaucējkodu, kas atbilst protokola izvirzītajiem nosacījumiem, tu iegūsti tiesības pārraidīt jauno bloku tīklā. Šajā brīdī visi pārējie tīkla dalībnieki atjaunina savas blokķēdes, iekļaujot tajās šo jauno bloku.

Lielākajām mūsdienu kriptovalūtām šos nosacījumus ir ārkārtīgi grūti izpildīt. Jo lielāka ir jaukšanas jauda tīklā, jo grūtāk ir atrast derīgu jaucējkodu. Tas tiek darīts, lai nodrošinātu, ka blokus nevar atrast pārāk ātri.

Kā jau vari iztēloties, mēģinājumi uzminēt lielus jaucējkodu apjomus, izmantojot savu datoru, varētu izmaksāt ļoti dārgi. Tu tērētu skaitļošanas resursus un elektrību. Taču protokols atalgotu tevi ar kriptovalūtu gadījumā, ja tev izdotos noskaidrot derīgu jaucējkodu.

Apkoposim līdz šim noskaidroto.

  • Ieguve izmaksā dārgi.
  • Par derīga bloka izveidi tu saņem atlīdzību.
  • Zinot ievades datus, lietotājs var viegli pārbaudīt jaucējkoda pareizību – lietotāji, kuri neveic ieguvi, var pārbaudīt bloka derīgumu, neiztērējot daudz skaitļošanas jaudas.

Tiktāl viss ir saprotams. Bet kas notiktu, ja tu mēģinātu krāpties? Kas var tevi atturēt no krāpniecisku darījumu iekļaušanas blokā un derīga jaucējkoda iegūšanas?

Šajā nolūkā tiek izmantota publiskās atslēgas kriptogrāfija. Šajā rakstā mēs neiedziļināsimies šajā tēmā, taču tu vari lasīt par to vairāk sadaļā Kas ir publiskās atslēgas kriptogrāfija? . Īsāk sakot, tiek izmantoti daži kriptogrāfiski triki, kā rezultātā jebkurš lietotājs var pārbaudīt, vai maksātājam ir tiesības tērēt attiecīgos līdzekļus.
Izveidojot darījumu, tu to paraksti. Jebkurš tīkla dalībnieks var salīdzināt tavu parakstu ar tavu publisko atslēgu un pārliecināties par to savstarpējo atbilstību. Tāpat tiek pārbaudīts, vai tu drīksti tērēt savus līdzekļus, kā arī, vai tavs ieskaitīto līdzekļu apjoms pārsniedz izskaitīto līdzekļu summu (proti, vai tu netērē vairāk, nekā tev pieder).

Jebkuru bloku, kurā ir kaut viens nederīgs darījums, tīkls automātiski noraidīs. Pat mēģinājums krāpties izmaksās ļoti dārgi. Tu iztērēsi savus resursus bez nekādas atlīdzības.

Šeit arī slēpjas darba apliecinājuma priekšrocība: ir dārgi krāpties, bet izdevīgi rīkoties godīgi. Jebkurš saprātīgs ieguvējs centīsies gūt atdevi no ieguldītā kapitāla (ROI), tāpēc, visticamāk, rīkosies tā, lai garantētu sev ienākumus.



Vēlies sākt izmantot kriptovalūtas? Pērc Bitcoin platformā Binance!



Darba apliecinājums un likmes apliecinājums

Pastāv daudz dažādu konsensa algoritmu, taču viens no visvairāk gaidītajiem ir likmes apliecinājums (PoS). Šīs idejas pirmsākumi meklējami 2011. gadā, un šis mehānisms jau ir ticis ieviests dažos mazākos protokolos. Taču pagaidām tas vēl netiek izmantots lielās blokķēdēs.
Likmes apliecinājuma sistēmās ieguvēji tiek aizstāti ar validētājiem. Netiek veikta ieguve, un nav jāsacenšas mēģinājumos uzminēt jaucējkodus. Tā vietā lietotāji tiek izvēlēti pēc nejaušības principa – ja tie tiek izvēlēti, viņiem ir jāpiedāvā (jeb "jāizveido") bloks. Ja bloks tiek atzīts par derīgu, validētājs saņem atlīdzību, kas sastāv no šajā blokā iekļauto darījumu komisijas maksām.
Tomēr ne katrs lietotājs var tikt izvēlēts – protokola veiktā izvēle ir atkarīga no dažādiem faktoriem. Lai kvalificētos, dalībniekiem ir jāiegulda likme – iepriekš noteikta blokķēdes pamata valūtas summa. Šī likme darbojas kā drošības nauda – līdzīgi kā likumpārkāpējiem ir jāiemaksā liela naudas summa, lai tādējādi motivētu tos piedalīties lietas izskatīšanā, validētāji veic ieguldījumu, lai tādējādi nebūtu motivēti krāpties. Rīkojoties negodīgi, viņi (pilnībā vai daļēji) zaudē savu ieguldījumu.
Likmes apliecinājumam ir zināmas priekšrocības salīdzinājumā ar darba apliecinājumu. Būtiskākā no tām ir saistīta ar mazāku oglekļa dioksīda pēdu – tā kā PoS gadījumā nav nepieciešama lieljaudas ieguves saimniecība, patērētās enerģijas apjoms veido vien nelielu daļu no tā apjoma, ko patērē PoW sistēmās. 

Tajā pat laikā PoS algoritms līdz šim ir daudz mazāk pielietots nekā PoW. Lai arī ieguve tiek uzskatīta par izšķērdīgu procesu, tas ir vienīgais konsensa algoritms, kas ir apliecinājis savu efektivitāti plašā mērogā. Nedaudz vairāk nekā desmit gadu laikā tas ir spējis nodrošināt darījumus triljoniem dolāru vērtībā. Lai varētu ar pārliecību nospriest, vai PoS ir uzskatāms par cienīgu konkurentu drošības jomā, steikinga sistēma ir pienācīgi jāpārbauda praksē. 


Noslēgumā

Darba apliecinājums bija sākotnējais risinājums dubulto tēriņu problēmai, un tas ir apliecinājis sevi kā drošu un uzticamu mehānismu. Bitcoin pierādīja, ka vienu un to pašu līdzekļu vairākkārtējas tērēšanas novēršanai nav nepieciešama centralizēta iestāde. Atjautīgi izmantojot kriptogrāfiju, jaukšanas funkcijas un spēļu teoriju, dalībnieki decentralizētā vidē var vienoties par finanšu datubāzes stāvokli.