Lohkoketju: Bysanttilaisen kenraalin ongelma

Sami Suo-Heikki5.3.2020 · 2 min

Sami Suo-Heikki, ohjelmistokehittäjä ja yksi Idention perustajista, esittelee blogisarjassaan lohkoketjuja, niiden toimintaa sekä kryptovaluuttoja. Sarjan muut kirjoitukset löydät tämän tekstin lopusta.


Hajautetussa ympäristössä ei ole keskitettyä auktoriteettia ja lisäksi ympäristön eri noodit eivät voi luottaa toisiinsa. Haasteeksi syntyy konsensuksen muodostaminen eli yhteisen totuuden saavuttaminen. Tietotekniikassa tätä kutsutaan bysanttilaisen kenraalin ongelmaksi.

a-beautiful-castle-built-on-top-of-a-mountain-surrounded-by-2832083 (1)

Ongelmaa kuvaillaan tilanteella, jossa bysanttilaisen armeijan useampi eri divisioona piirittää vihollislinnan ja valmistautuu valtaamaan linnan. Jokaista divisioonaa johtaa oma kenraali ja kenraalit voivat viestitellä muiden kenraalien kanssa ainoastaan käyttämällä lähettejä. Vallatakseen vihollislinnan kenraalien täytyy sopia yhteisestä hyökkäyshetkestä, koska linnan valtaaminen onnistuu vain, jos kaikki divisioonat hyökkäävät samaan aikaan. Päättivät kenraalit sitten hyökätä tai vetäytyä, tärkeintä on, että he pääsevät yhteisymmärrykseen.

Ongelma muodostuu tilanteesta, koska kenraalit eivät voi luottaa toisiin kenraaleihin, sillä he saattavat olla pettureita tai ajavat vain omia etujaan. Samoin kuin me emme voi luottaa toisiimme Internetissä. Kenraali voi ilmoittaa hyökkäävänsä, vaikka aikookin vetäytyä. Vain yhdenkin epärehellisen kenraalin vuoksi kaikki voivat kuolla taistelussa. Epärehellisten kenraaleiden lisäksi vihollinen saattaa kaapatan lähetin viestin ja korvata viestin omalla viestillään. Ratkaisu ongelmaan on löytää algoritmi, joka varmistaa, että lojaalit kenraalit saavuttavat yhteisymmärryksen, huolimatta siitä mitä epärehelliset kenraalit tekevät.

Keskitetyssä ympäristössä kenraalit välittäisivät hyökkäyssuunnitelmansa esikunnan kautta, jolloin esikunta on taistelukentän luotettu auktoriteetti, johon kenraalit uskovat. Hajautetussa ympäristössä esikuntaa ei ole, jolloin konsensuksen saavuttaminen on vaikeampaa.

Bitcoinin hajautetussa ympäristössä jokaista noodia voi kuvailla bysanttilaiseksi kenraaliksi ja jokaisen rehellisen noodin tulee ensin hyväksyä transaktioiden todellinen historia. Epärehellinen noodi (petturi kenraali) voi lähettää vääriä transaktioita eri puolille verkkoa. Esimerkiksi Jarkko on petturi ja hän lähettää transaktion, jonka mukaan hän on lähettänyt 5 bitcoinia Hennalle ja toisen transaktion, jonka mukaan hän on lähettänyt 5 bitcoinia Juusolle. Oletetaan, että epärehellisellä Jarkolla on vain 5 bitcoinia, niin hän epärehellisesti pyrkii käyttämään enemmän bitcoinia kuin mitä hänellä oikeasti on. Tällä tavoin, kuten bysanttilaisilla kenraaleilla, on ongelmana tietää mitkä viestit (tai transaktiot bitcoinin tapauksessa) ovat luotettavia, ja mitkä tulee liittää lohkoketjuun, jolloin konsensus saavutettaisiin.


Lohkoketju-blogisarjan muut osat:

Osa 1: Bysanttilaisen kenraalin ongelma

Osa 2: Miksi konsensus on tärkeää?

Osa 3: Tapoja muodostaa konsensus 1/2

Osa 4: Tapoja muodostaa konsensus 2/2

Osa 5: Kryptovaluuttojen historia

Osa 6: Bitcoin

Osa 7: Merkittävät kryptovaluutat 1/2

Osa 8: Merkittävät kryptovaluutat 2/2


Kirjoittanut

Sami Suo-Heikki

Myynti, Konsultointi

+358 40 044 9641