Sākums
Raksti
Bizantijas kļūdu tolerances skaidrojums

Bizantijas kļūdu tolerances skaidrojums

Vidēji sarežģītas tēmas
Publicēts Dec 6, 2018Atjaunināts Aug 17, 2023
5m

Kopš Bitcoin pirmsākumiem 2008. gadā, kad tas tika ieviests kā vienādranga elektroniskās naudas sistēma, ir radušās daudzas citas kriptovalūtas, un katra no tām izmanto savu mehānismu. Taču gandrīz visām kriptovalūtām ir viena kopīga iezīme – to arhitektūras pamatelements ir blokķēde.

Lai gan ir daži izņēmumi, blokķēdes tiek apzināti veidotas tā, lai tās būtu decentralizētas un darbotos kā digitāla virsgrāmata, kuras darbību nodrošina decentralizēts datoru mezglu tīkls. Šī iemesla dēļ blokķēdes tehnoloģija ir ļāvusi izveidot ekonomikas sistēmas, kurās nav nepieciešamības uzticēties un var pārskatāmā un drošā veidā izpildīt finanšu darījumus bez starpniekiem. Kriptovalūtas tiek izmantotas kā reāla alternatīva tradicionālajām banku un maksājumu sistēmām, kas ir ļoti lielā mērā atkarīgas no uzticēšanās.

Līdzīgi kā vairumā decentralizēto datorsistēmu, kriptovalūtu tīkla dalībniekiem ir pastāvīgi jāvienojas par blokķēdes aktuālo stāvokli, un to sauc par konsensa nodrošināšanu. Tomēr efektīva un droša konsensa panākšana decentralizētā tīklā nebūt nav viegls uzdevums.

Kā decentralizētā datoru mezglu tīklā var vienoties par lēmumu, ja pastāv iespējamība, ka daži mezgli rīkosies negodīgi vai to darbība būs traucēta? Tas ir fundamentāls t. s. Bizantijas ģenerāļu problēmas jautājums, kā rezultātā radās ideja par Bizantijas kļūdu toleranci.


Kas ir Bizantijas ģenerāļu problēma?

Īsumā – Bizantijas ģenerāļu problēma radās 1982. gadā kā loģiska dilemma, kas raksturo Bizantijas ģenerāļu iespējamās saziņas problēmas, kādas varētu rasties saistībā ar viņu vienošanos par nākamo soli.

Atbilstoši šai dilemmai katram ģenerālim ir sava armija un katra grupa ir izvietota atšķirīgā vietā tuvumā pilsētai, kurā viņi plāno iebrukt. Ģenerāļiem ir jāvienojas par to, vai viņi uzbruks vai atkāpsies. Nav svarīgi, vai viņi izvēlēsies uzbrukt vai atkāpties, ja vien tiek panākts konsenss, proti, viņi vienojas par kopīgu lēmumu, kurš tiks vienoti izpildīts.

Tādējādi prasības varētu būt šādas:

  • Katram ģenerāliem ir jāizlemj: uzbrukt vai atkāpties (jā vai nē);

  • Kad lēmums ir pieņemts, to nedrīkst mainīt;

  • Visiem ģenerāļiem ir jāvienojas par vienu un to pašu lēmumu un sinhroni tas jāizpilda.

Minētās saziņas problēmas ir saistītas ar faktu, ka ģenerāļi savā starpā var sazināties tikai ar ziņneša starpniecību. Līdz ar to Bizantijas ģenerāļu problēmas pamatā ir fakts, ka ziņojumi var aizkavēties, tikt iznīcināti vai pazaudēti.

Turklāt pat tad, ja ziņojums tiks veiksmīgi piegādāts, kāds (vai kādi) no ģenerāļiem varētu jebkādu iemeslu dēļ izvēlēties rīkoties ļaunprātīgi un nosūtīt krāpniecisku ziņojumu, lai maldinātu pārējos ģenerāļus, un tas izraisītu pilnīgu neveiksmi.

Ja attiecina šo dilemmu uz blokķēdēm, katrs ģenerālis ir tīkla mezgls, un šiem mezgliem ir jāpanāk konsenss par sistēmas aktuālo stāvokli. Citiem vārdiem sakot, decentralizētā tīkla dalībnieku vairākumam ir jāvienojas par vienotu rīcību un šis lēmums jāizpilda, lai izvairītos no pilnīgas neveiksmes.

Tādējādi vienīgais veids, kā sasniegt konsensu šādā decentralizētā sistēmā, ir nodrošināt, lai vismaz 2/3 tīkla mezglu būtu uzticami un godīgi. Tas nozīmē, ka gadījumā, ja tīkla vairākums nolems rīkoties negodīgi, sistēma būs pakļauta kļūmju un uzbrukumu riskam (piemēram, 51 % uzbrukuma riskam).


Bizantijas kļūdu tolerance (BFT)

Īsumā – Bizantijas kļūdu tolerance (BFT) ir sistēmas īpašība, kas norāda uz pretestību kļūmēm, kas izriet no Bizantijas ģenerāļu problēmas. Tas nozīmē, ka BFT sistēma spēj turpināt darbību arī tad, ja daži mezgli rīkojas negodprātīgi vai to darbība ir traucēta. 

Bizantijas ģenerāļu problēmai ir vairāk nekā viens iespējamais risinājums, tāpēc arī BFT sistēmu var veidot vairākos veidos. Attiecīgi pastāv arī atšķirīgas pieejas, kā blokķēdē tiek nodrošināta Bizantijas kļūdu tolerance, un tādējādi mēs nonākam pie t. s. konsensa algoritmiem.


Blokķēdes konsensa algoritmi

Konsensa algoritmu var definēt kā mehānismu, izmantojot kuru blokķēdes tīklā tiek nodrošināts konsenss. Populārākie risinājumi ir darba apliecinājums (PoW) un likmes apliecinājums (PoS). Kā piemēru apskatīsim Bitcoin.

Bitcoin protokols paredz sistēmas primāros noteikumus, bet PoW konsensa algoritms definē to, kā šie noteikumi tiek ievēroti, lai nodrošinātu konsensu (piemēram, darījumu validēšanas un verifikācijas procesā).

Lai gan darba apliecinājuma ideja ir senāka par kriptovalūtām, Satoshi Nakamoto izveidoja tā modificētu versiju – algoritmu, kas ļāva izveidot Bitcoin kā BFT sistēmu.

Jāņem vērā, ka PoW algoritms nav pilnībā pasargāts pret Bizantijas kļūdām, taču, ņemot vērā dārgo ieguves procesu un pamatā esošās kriptogrāfiskās metodes, PoW ir izrādījies viens no drošākajiem risinājumiem blokķēdes tīklos. Šajā ziņā Satoshi Nakamoto izveidoto darba apliecinājuma konsensa algoritmu daudzi uzskata par vienu no ģeniālākajiem Bizantijas kļūdu risinājumiem.


Noslēgumā

Bizantijas ģenerāļu problēma ir intriģējoša dilemma – tās ietekmē radās BFT sistēmas, kas tiek plaši izmantotas dažādos scenārijos. Ārpus blokķēdes nozares BFT sistēmas tiek izmantotas, piemēram, aviācijas, kosmonautikas un kodolenerģijas nozarē.

Kriptovalūtu kontekstā jebkurai blokķēdes ekosistēmai ir svarīga efektīva komunikācija tīklā un efektīvs konsensa mehānisms. Šo sistēmu aizsardzība ir nepārtraukts process, un esošajiem konsensa mehānismiem pagaidām pastāv dažādi ierobežojumi (piemēram, mērogojamības ziņā). Tomēr PoW un PoS kā BFT sistēmas ir ļoti interesantas pieejas, un to potenciālās izmantošanas iespējas noteikti iedvesmo plašām inovācijām.