Byzantine Fault Tolerance Explained

Sen jälkeen, kun Bitcoin perustettiin vuonna 2008 vertaisverkkoon perustuvana elektronisena käteisjärjestelmänä, on luotu monia muita kryptovaluuttoja, joilla kullakin on tietty mekanismi. Mutta yksi asia, joka on yhteistä lähes kaikille kryptovaluutoille, on lohkoketju niiden arkkitehtuurin keskeisenä elementtinä.

Lohkoketjut on muutamaa poikkeusta lukuun ottamatta tarkoituksellisesti suunniteltu hajautetuksi, ja ne toimivat digitaalisena pääkirjana, jota ylläpitää hajautettu tietokonesolmujen verkosto. Tästä syystä lohkoketjuteknologia mahdollisti luottamusta vailla olevien talousjärjestelmien luomisen, joissa läpinäkyvät ja luotettavat finanssitransaktiot voitaisiin toteuttaa ilman välikäsiä. Kryptovaluutat on otettu käyttöön toimivana vaihtoehtona perinteisille pankki- ja maksujärjestelmille, jotka ovat vahvasti riippuvaisia luottamuksesta.

Kuten useimmissa hajautetuissa laskentajärjestelmissä, kryptovaluuttaverkon osallistujien on säännöllisesti sovittava lohkoketjun nykytilasta, ja tätä kutsutaan konsensuksen saavuttamiseksi. Konsensuksen saavuttaminen hajautetuissa verkoissa turvallisella ja tehokkaalla tavalla on kuitenkin kaikkea muuta kuin helppo tehtävä.

Miten siis hajautettu tietokoneen solmujen verkko voi sopia päätöksestä, jos osa solmuista todennäköisesti epäonnistuu tai toimii epärehellisesti? Tämä on niin sanotun Bysantin kenraalien ongelman peruskysymys, joka synnytti Bysantin vikasietoisuuden käsitteen.

Mikä on Bysantin kenraalien ongelma?

Lyhyesti sanottuna Bysantin kenraalien ongelma ideoitiin vuonna 1982 loogiseksi dilemmaksi, joka havainnollistaa sitä, miten ryhmällä Bysantin kenraaleita voi olla kommunikaatio-ongelmia, kun he yrittävät sopia seuraavasta liikkeestään.

Dilemmassa oletetaan, että kullakin kenraalilla on oma armeijansa ja että kullakin ryhmällä on eri paikat eri paikoissa ympärillä kaupunkia, johon ne aikovat hyökätä. Kenraalien on sovittava joko hyökkäämisestä tai perääntymisestä. Sillä ei ole väliä hyökkäävätkö vai vetäytyvätkö he, kunhan kaikki kenraalit pääsevät yksimielisyyteen, ts, pääsevät yhteisymmärrykseen yhteisestä päätöksestä toteuttaakseen sen koordinoidusti.

Voidaan siis ajatella seuraavia vaatimuksia:

  • Kunkin kenraalin on päätettävä: hyökätäänkö vai vetäydytäänkö (kyllä vai ei);
  • Päätöksen tekemisen jälkeen sitä ei voi muuttaa;
  • Kaikkien kenraalien on päästävä yhteisymmärrykseen samasta päätöksestä ja pantava se toimeen samanaikaisesti.

Edellä mainitut kommunikaatio-ongelmat liittyvät siihen, että yksi kenraali voi kommunikoida toisen kenraalin kanssa vain viestien välityksellä, jotka kuriiri välittää eteenpäin. Näin ollen Bysantin kenraalien ongelman keskeinen haaste on se, että viestit voivat jotenkin viivästyä, tuhoutua tai kadota.

Lisäksi, vaikka viesti toimitettaisiinkin onnistuneesti, yksi tai useampi kenraali voi päättää (jostain syystä) toimia ilkeämielisesti ja lähettää vilpillisen viestin hämmentääkseen muita kenraaleja, mikä johtaa täydelliseen epäonnistumiseen.

Jos sovellamme dilemmaa lohkoketjujen kontekstiin, jokainen kenraali edustaa verkon solmua, ja solmujen on päästävä yhteisymmärrykseen järjestelmän nykytilasta. Toisella tavalla ilmaistuna, hajautetun verkon osallistujien enemmistön on oltava samaa mieltä ja suoritettava sama toiminto, jotta vältytään täydelliseltä epäonnistumiselta.

Siten ainoa tapa saavuttaa konsensus tämäntyyppisissä hajautetuissa järjestelmissä on vähintään ⅔ luotettavia ja rehellisiä verkon solmuja tai enemmän. Tämä tarkoittaa sitä, että jos enemmistö verkon soluista päättää toimia pahantahtoisesti, järjestelmä on altis vioille ja hyökkäyksille (kuten 51 prosentin hyökkäykselle).

Byzantin vikasietoisuus (BFT)

Lyhyesti sanottuna Byzantin vikasietoisuus (Byzantine Fault Tolerance, BFT) on järjestelmän ominaisuus, joka kykenee vastustamaan Byzantin kenraaliongelmasta johdettua vikaluokkaa. Tämä tarkoittaa, että BFT-järjestelmä pystyy jatkamaan toimintaansa, vaikka osa solmuista vikaantuisi tai toimisi ilkivaltaisesti.

Byzantin kenraalien ongelmaan on olemassa useampi kuin yksi mahdollinen ratkaisu ja siten useita tapoja rakentaa BFT-järjestelmä. Samoin lohkoketjulla on erilaisia lähestymistapoja Bysantin vikasietoisuuden saavuttamiseksi, ja tämä johtaa meidät niin sanottuihin konsensusalgoritmeihin.

Lohkoketjujen konsensusalgoritmit

Voidaan määritellä konsensusalgoritmi mekanismiksi, jonka avulla lohkoketjuverkko saavuttaa konsensuksen. Yleisimmät toteutukset ovat Proof of Work (PoW) ja Proof of Stake (PoS). Otetaan kuitenkin esimerkkinä Bitcoinin tapaus.

Vaikka Bitcoin-protokollassa määrätään järjestelmän ensisijaiset säännöt, PoW-konsensusalgoritmi on se, joka määrittelee, miten näitä sääntöjä noudatetaan konsensukseen pääsemiseksi (esimerkiksi transaktioiden todentamisen ja validoinnin aikana).

Vaikka Proof of Work -konsepti on kryptovaluuttoja vanhempi, Satoshi Nakamoto kehitti siitä muunnellun version algoritmiksi, joka mahdollisti Bitcoinin luomisen BFT-järjestelmänä.

Huomaa, että PoW-algoritmi ei ole 100-prosenttisesti sietokykyinen bysanttilaisille vioille, mutta kustannusintensiivisen louhintaprosessin ja sen taustalla olevien kryptografisten tekniikoiden ansiosta PoW-algoritmi on kuitenkin todistetusti osoittautunut lohkoketjujen verkostojen turvallisimmaksi ja luotettavimmaksi toteutukseksi. Tässä mielessä Satoshi Nakamoton suunnittelemaa Proof of Work -konsensusalgoritmia monet pitävät yhtenä nerokkaimmista ratkaisuista bysanttilaisiin vikoihin.

Loppuajatuksia

Byzantin kenraaliongelma on kiehtova dilemma, joka synnytti lopulta BFT-järjestelmät, joita sovelletaan laajalti erilaisissa skenaarioissa. Lohkoketjuteollisuuden lisäksi muutamia BFT-järjestelmien käyttötapauksia ovat ilmailu-, avaruus- ja ydinvoimateollisuus.

Kryptovaluuttakontekstissa tehokas verkkoviestintä yhdessä hyvän konsensusmekanismin kanssa on elintärkeää mille tahansa lohkoketjuekosysteemille. Näiden järjestelmien turvaaminen on jatkuvaa työtä, ja nykyisten konsensusalgoritmien on vielä voitettava muutamia rajoituksia (kuten skaalautuvuus). PoW ja PoS ovat kuitenkin erittäin mielenkiintoisia lähestymistapoja BFT-järjestelminä, ja niiden potentiaaliset sovellukset innostavat varmasti laajamittaiseen innovointiin.

Jätä kommentti