Avaleht
Artiklid
BĂŒtsantsi tĂ”rketaluvuse tutvustus

BĂŒtsantsi tĂ”rketaluvuse tutvustus

EdasijÔudnud
Avaldatud Dec 6, 2018VĂ€rskendatud Aug 17, 2023
5m

Alates Bitcoini tekkest 2008. aastal vĂ”rdĂ”igusvĂ”rgus elektroonilise sularahasĂŒsteemina, on loodud veel palju teisi krĂŒptorahasid, millest igaĂŒhel on konkreetne mehhanism. Kuid plokiahel, kui nende arhitektuuri pĂ”hielement, on peaaegu kĂ”igi krĂŒptorahade ĂŒhine tunnus.

Kui mĂ”ned erandid vĂ€lja arvata, on plokiahelad kavandatud tahtlikult detsentraliseerituks, toimides digitaalse pearaamatuna, mida haldab hajutatud arvutisĂ”lmede vĂ”rk. SeetĂ”ttu vĂ”imaldab plokiahela tehnoloogia luua omaniketa majandussĂŒsteeme, kus saab lĂ€bipaistvaid ja usaldusvÀÀrseid finantstehinguid sooritada ilma vahendajateta. KrĂŒptorahasid vĂ”etakse kasutusele elujĂ”ulise alternatiivina traditsiooniliste pangandus- ja maksesĂŒsteemidele, mis sĂ”ltuvad suuresti usaldusest.

Nii nagu enamikus hajutatud arvutisĂŒsteemides, peavad ka krĂŒptorahavĂ”rgus osalejad plokiahela hetkeseisus regulaarselt kokku leppima. Seda me nimetame konsensuse saavutamiseks. Siiski ei ole hajutatud vĂ”rkude puhul konsensuse turvaliselt ja tĂ”husalt saavutamine sugugi lihtne ĂŒlesanne.

Kuidas saab arvutisĂ”lmede hajutatud vĂ”rk otsuses kokku leppida, kui mĂ”ni sĂ”lmedest ebaĂ”nnestub vĂ”i kĂ€itub ebaausalt? See on nn BĂŒtsantsi kindralite probleemi pĂ”hikĂŒsimus, millest sĂŒndis BĂŒtsantsi tĂ”rketaluvuse kontseptsioon.


Mis on BĂŒtsantsi kindralite probleem?

KokkuvĂ”tvalt vĂ”ib öelda, et BĂŒtsantsi kindralite probleem loodi 1982. aastal loogilise dilemmana, mis illustreerib, kuidas BĂŒtsantsi kindralitel vĂ”ib olla suhtlemisprobleeme, kui nad ĂŒritavad oma jĂ€rgmises sammus kokku leppida.

Dilemma eeldab, et igal kindralil on oma armee ja iga grupp asub erinevates kohtades linna ĂŒmber, mida nad kavatsevad rĂŒnnata. Kindralid peavad kokku leppima kas rĂŒnnata vĂ”i taganeda. Pole vahet, kas nad rĂŒndavad vĂ”i taganevad, kuni kĂ”ik kindralid jĂ”uavad ĂŒksmeelele, st lepivad kokku ĂŒhises otsuses, mida kooskĂ”lastatult ellu viia.

SeetÔttu vÔime arvestada jÀrgmiste nÔuetega:

  • iga kindral peab otsustama, kas rĂŒnnata vĂ”i taganeda (jah vĂ”i ei);

  • pĂ€rast otsuse tegemist ei saa seda muuta;

  • kĂ”ik kindralid peavad sama otsusega nĂ”ustuma ja seda sĂŒnkroonselt ellu viima.

Eelmainitud suhtlusprobleemid on seotud sellega, et ĂŒks kindral suudab teisega suhelda vaid kasutades kĂ€skjala edastatud sĂ”numeid. SeetĂ”ttu on BĂŒtsantsi kindralite probleemi keskne vĂ€ljakutse, et sĂ”numid vĂ”ivad mingil moel hilineda, hĂ€vida vĂ”i kaduda.

Lisaks, isegi kui sĂ”num edastatakse edukalt, vĂ”ib ĂŒks vĂ”i mitu kindralit (ĂŒkskĂ”ik millisel pĂ”hjusel) otsustada tegutseda pahatahtlikult ja saata valeteate, et teisi kindraleid segadusse ajada, mille tulemus on tĂ€ielik ebaĂ”nnestumine.

Kui me rakendame dilemma plokiahelate konteksti, siis iga kindral esindab vĂ”rgusĂ”lme ja sĂ”lmed peavad sĂŒsteemi hetkeseisu suhtes jĂ”udma konsensusele. TeisisĂ”nu peab enamik hajutatud vĂ”rgu osalejaid nĂ”ustuma ja toimima samamoodi, et vĂ€ltida tĂ€ielikku ebaĂ”nnestumist.

SeetĂ”ttu on ainus viis seda tĂŒĂŒpi hajutatud sĂŒsteemides konsensuse saavutamiseks omada vĂ€hemalt ⅔ vĂ”i enamat usaldusvÀÀrset ja ausat vĂ”rgusĂ”lme. See tĂ€hendab, et kui suurem osa vĂ”rgust otsustab pahatahtlikult tegutseda, on sĂŒsteem vastuvĂ”tlik tĂ”rgetele ja rĂŒnnakutele (nt 51% rĂŒnnak).


BĂŒtsantsi tĂ”rketaluvus (Byzantine Fault Tolerance - BFT)

KokkuvĂ”tvalt on BĂŒtsantsi tĂ”rketaluvus (BFT) sĂŒsteemi omadus, mis suudab vastu seista rikete klassile, mis on BĂŒtsantsi kindralite probleemist tuletatud. See tĂ€hendab, et BFT-sĂŒsteem suudab jĂ€tkata tööd isegi siis, kui mĂ”ned sĂ”lmed ebaĂ”nnestuvad vĂ”i tegutsevad pahatahtlikult. 

VĂ”imalikke lahendusi BĂŒtsantsi kindralite probleemile on rohkem kui ĂŒks ja seega mitu vĂ”imalust BFT-sĂŒsteemi loomiseks. Samuti on plokiahelal BĂŒtsantsi tĂ”rketaluvuse saavutamiseks erinevad lĂ€henemisviisid ja see viib meid nn konsensusalgoritmide juurde.


Plokiahela konsensusalgoritmid

Saame mÀÀratleda konsensusalgoritmi kui mehhanismi, mille kaudu plokiahela vÔrk konsensusele jÔuab. KÔige levinumad kasutuskohad on töötÔendus (PoW) ja panuse tÔendus (PoS). Kuid vÔtame nÀitena Bitcoini juhtumi.

Kui Bitcoini protokoll sĂ€testab sĂŒsteemi pĂ”hireeglid, siis töötĂ”enduse konsensusalgoritm mÀÀrab, kuidas neid reegleid konsensuse saavutamiseks jĂ€rgitakse (nĂ€iteks tehingute kontrollimisel ja valideerimisel).

Kuigi töötĂ”enduse kontseptsioon on vanem kui krĂŒptorahad, töötas Satoshi Nakamoto algoritmina vĂ€lja selle modifitseeritud versiooni, mis vĂ”imaldas luua BFT-sĂŒsteemina Bitcoini.

Juhime tĂ€helepanu, et töötĂ”enduse algoritm ei ole BĂŒtsantsi tĂ”rgete suhtes 100% tolerantne, kuid kulumahuka kaevandamisprotsessi ja selle aluseks olevate krĂŒptotehnikate tĂ”ttu on töötĂ”endus osutunud ĂŒheks turvalisemaks ja usaldusvÀÀrsemaks plokiahelavĂ”rkude rakenduseks. Selles mĂ”ttes peavad paljud Satoshi Nakamoto loodud töötĂ”enduse konsensusalgoritmi ĂŒheks geniaalsemaks lahenduseks BĂŒtsantsi tĂ”rgete lahendamiseks.


LÔppmÀrkused

BĂŒtsantsi kindralite probleem on intrigeeriv dilemma, mille tulemusena tekkisid BFT-sĂŒsteemid, mida kasutatakse laialdaselt erinevates stsenaariumides. Lisaks plokiahelatööstusele kuuluvad BFT-sĂŒsteemide kasutusjuhtude hulka lennundus-, kosmose- ja tuumaenergiatööstus.

KrĂŒptoraha kontekstis on iga plokiahela ökosĂŒsteemi jaoks ĂŒlioluline tĂ”hus vĂ”rgusuhtlus koos hea konsensusmehhanismiga. Nende sĂŒsteemide turvalisena hoidmine on pidev pingutus ja olemasolevad konsensusalgoritmid peavad veel mĂ”ningaid piiranguid (nt skaleeritavus) ĂŒletama. Sellegi poolest on BFT-sĂŒsteemidena töötĂ”endusel ja panuse tĂ”endusel vĂ€ga huvitavad lĂ€henemisviisid ning potentsiaalsed rakendused inspireerivad kindlasti laialdast innovatsiooni.