Tietoa Bysantin viansietokyvystä
Sisällysluettelo
Mitä bysanttilaisten kenraalien ongelmalla tarkoitetaan?
Bysantin viansietokyky (Byzantine Fault Tolerance, BFT)
Lohkoketjun konsensusalgoritmit
Loppupohdintoja
Etusivu
Artikkelit
Tietoa Bysantin viansietokyvystä

Tietoa Bysantin viansietokyvystä

Edistynyt
Julkaistu Dec 6, 2018Päivitetty Dec 1, 2022
5m

Sen jälkeen kun Bitcoin perustettiin vuonna 2008 vertaisverkkona toimivaksi sähköiseksi käteisjärjestelmäksi, on luotu useita muita kryptoja, joista jokaisella on tietty mekanismi. Kuitenkin lähes kaikkia kryptoja yhdistävä seikka on se, että niiden arkkitehtuurin ydinelementtinä on lohkoketju.

Muutamia poikkeuksia lukuun ottamatta lohkoketjut on tarkoituksella suunniteltu hajautetuiksi, ja ne toimivat digitaalisena pääkirjana, jota ylläpitää hajautettu tietokonesolmujen verkko. Tästä syystä lohkoketjutekniikka mahdollisti sellaisten ilman ulkopuolista luottamusta toimivien talousjärjestelmien luomisen, joissa avoimet ja luotettavat rahoitustransaktiot voitiin suorittaa ilman välittäjiä. Kryptovaluutat otetaan käyttöön toteuttamiskelpoisena vaihtoehtona perinteisille pankki- ja maksujärjestelmille, jotka ovat erittäin riippuvaisia luottamuksesta.

Aivan kuten useimmissa hajautetuissa tietojenkäsittelyjärjestelmissä, kryptoverkon osallistujien on sovittava säännöllisesti lohkoketjun nykytilasta, mitä kutsutaan konsensuksen saavuttamiseksi. Konsensuksen saavuttaminen hajautetuissa verkoissa turvallisella ja tehokkaalla tavalla on kuitenkin kaikkea muuta kuin helppo tehtävä.

Miten sitten tietokonesolmujen hajautettu verkko voi sopia päätöksestä, jos jotkin solmut todennäköisesti epäonnistuvat tai toimivat epärehellisesti? Tämä on niin sanottujen bysanttilaisten kenraalien ongelman peruskysymys, joka synnytti Bysantin viansietokyvyn käsitteen.


Mitä bysanttilaisten kenraalien ongelmalla tarkoitetaan?

Lyhyesti sanottuna bysanttilaisten kenraalien ongelma kehitettiin vuonna 1982 loogiseksi dilemmaksi, joka havainnollistaa, kuinka bysanttilaisten kenraalien ryhmällä voi olla viestintäongelmia, kun he yrittävät sopia seuraavasta liikkeestään.

Dilemma olettaa, että jokaisella kenraalilla on oma armeijansa ja että jokainen ryhmä sijaitsee eri paikoissa ympäri kaupunkia, johon he aikovat hyökätä. Kenraalien on sovittava joko hyökkäyksestä tai vetäytymisestä. Sillä ei ole väliä, hyökkäävätkö he vai vetäytyvätkö he, kunhan kaikki kenraalit pääsevät yksimielisyyteen asiasta, eli sopivat yhteisestä päätöksestä sen toteuttamiseksi koordinoidusti.

Sen vuoksi meidän täytyy ottaa huomioon seuraavat vaatimukset:

  • Jokaisen kenraalin on päätettävä, haluaako hän hyökätä vai vetäytyä (kyllä vai ei).

  • Kun päätös on tehty, sitä ei voi muuttaa.

  • Kaikkien kenraalien on hyväksyttävä päätös ja suoritettava se synkronoidulla tavalla.

Edellä mainitut viestintäongelmat liittyvät siihen, että yksi kenraali pystyy kommunikoimaan toisen kanssa vain kuriirin välittämien viestien kautta. Näin ollen bysanttilaisten kenraalien ongelman keskeinen haaste on, että viestit voivat jotenkin viivästyä, tuhoutua tai kadota.

Lisäksi vaikka viestin toimittaminen onnistuisikin, yksi tai useampi kenraali voi päättää (mistä tahansa syystä) toimia pahantahtoisesti ja lähettää vilpillisen viestin hämmentääkseen muita kenraaleja, mikä johtaa täydelliseen epäonnistumiseen.

Jos sovellamme ongelmaa lohkoketjujen kontekstiin, jokainen kenraali edustaa verkkosolmua, ja solmujen on päästävä yksimielisyyteen eli konsensukseen järjestelmän nykytilasta. Toisin sanoen suurimman osan hajautetun verkon osallistujista on sovittava ja suoritettava sama toimenpide täydellisen epäonnistumisen välttämiseksi.

Sen vuoksi ainoa tapa saavuttaa konsensus tämän tyyppisissä hajautetuissa järjestelmissä on varmistaa, että vähintään kaksi kolmasosaa verkon solmuista on luotettavia ja rehellisiä. Tämä tarkoittaa, että jos suurin osa verkosta päättää toimia pahantahtoisesti, järjestelmä on altis virheille ja hyökkäyksille (kuten 51 %:n hyökkäykselle).


Bysantin viansietokyky (Byzantine Fault Tolerance, BFT)

Lyhyesti kuvattuna Bysantin viansietokyky (BFT) on järjestelmän ominaisuus, joka pystyy vastustamaan bysanttilaisten kenraalien ongelmasta johdettua vikaluokkaa. Tämä tarkoittaa, että BFT-järjestelmä pystyy jatkamaan toimintaansa, vaikka jotkin solmut epäonnistuisivat tai toimisivat haitallisesti. 

Bysanttilaisten kenraalien ongelmaan on useampi kuin yksi mahdollinen ratkaisu, minkä vuoksi on olemassa useita tapoja rakentaa BFT-järjestelmä. Samoin lohkoketjulle on olemassa erilaisia lähestymistapoja Bysantin viansietokyvyn saavuttamiseksi, ja tämä johtaa meidät niin kutsuttuihin konsensusalgoritmeihin.


Lohkoketjun konsensusalgoritmit

Voimme määritellä konsensusalgoritmin mekanismiksi, jonka avulla lohkoketjuverkko saavuttaa konsensuksen. Yleisimmät toteutukset ovat työntodiste (Proof of Work, PoW) ja varantotodiste (Proof of Stake, PoS). Käytämme tässä esimerkkinä Bitcoinia.

Vaikka Bitcoin-protokolla määrää järjestelmän ensisijaiset säännöt, PoW-konsensusalgoritmi määrittelee, miten näitä sääntöjä noudatetaan konsensuksen saavuttamiseksi (esimerkiksi transaktioiden todentamisen ja vahvistamisen aikana).

Vaikka työntodisteen käsite on vanhempi kuin kryptovaluutat, Satoshi Nakamoto kehitti siitä muokatun version algoritmiksi, joka mahdollisti Bitcoinin luomisen BFT-järjestelmäksi.

Huomaa, että PoW-algoritmi ei ole sataprosenttisen sietokykyinen Bysantin vikoja vastaan, mutta kalliin louhintaprosessin ja taustalla olevien kryptografisten tekniikoiden vuoksi PoW on osoittautunut yhdeksi turvallisimmista ja luotettavimmista toteutuksista lohkoketjuverkoille. Tässä mielessä monet pitävät Satoshi Nakamoton suunnittelemaa työntodistekonsensusalgoritmia yhtenä nerokkaimmista ratkaisuista Bysantin vikoja vastaan.


Loppupohdintoja

Bysanttilaisten kenraalien ongelma on kiehtova ongelma, joka lopulta synnytti BFT-järjestelmät, joita sovelletaan laajasti eri skenaarioissa. Lohkoketjuteollisuuden lisäksi muutamia BFT-järjestelmien käyttötapauksia ovat ilmailu-, avaruus- ja ydinvoimateollisuus.

Kryptokontekstissa tehokas verkkoviestintä ja hyvä konsensusmekanismi ovat elintärkeitä mille tahansa lohkoketjuekosysteemille. Näiden järjestelmien turvaaminen on jatkuva ponnistus, sillä nykyiset konsensusalgoritmit eivät ole vielä selättäneet muutamia rajoituksia (kuten skaalautuvuutta). Siitä huolimatta PoW ja PoS ovat BFT-järjestelminä erittäin mielenkiintoisia lähestymistapoja, ja niiden mahdolliset sovellukset inspiroivat varmasti laajempaa innovaatiotoimintaa.