Pitäisikö järjestelmän toteutuksessa käyttää organisaatioiden välistä lohkoketjua (consortium blockchain), vai pitäisikö toteutus tehdä aivan jollain muulla tavalla? Tämä blogiartikkeli auttaa päätöksenteossa.
Kysymys on luottamuksesta.
Organisaatioiden välisen lohkoketjun keskeinen ajatus on luoda uskottava luottamussuhde toimijoiden välille. Tekninen ratkaisu perustuu kaikille osapuolille kopioituvaan hajautettuun tietokantaan, joka sisältää “kiistämättömän totuuden”, johon kaikki järjestelmän osapuolet voivat sitoutua.
Onnistumisen ehdot
Lähtöolettamana kaksi tai useampi osapuolta haluavat varastoida ja jakaa tietoa luotettavasti niin, että kukaan osapuolista ei pysty “huijaamaan” – jokainen järjestelmään syötetty tieto on ikuinen ja pysyvä, eikä tietoa voi jälkikäteen muuttaa.
Lisäksi lohkoketjujen tekninen toteutus edellyttää vähintään neljän tahon erikseen varmistavan jokaisen tietokannan transaktion ennenkuin transaktio hyväksytään tietokantaan “voimassaolevaksi totuudeksi”. Näitä tiedon varmentajia kutsutaan lohkoketjun “louhijoiksi” (miner). Louhivat osapuolet ovat yleensä samoja toimintaan osallistuvia organisaatioita, mutta tämä ei kuitenkaan ole lohkoketjujärjestelmän vaatimus. Louhija voi tarpeen mukaan olla myös lohkoketjun ulkopuolinen muu puolueeton taho.
Milloin lohkoketju ei ole oikea valinta
Lohkoketjua on vaikea perustella organisaation sisäseen käyttöön, eli järjestelmässä on vain yksi osapuoli. Totuus ja kiistämättömyys syntyy siitä, että useampi toisistaan riippumaton osapuoli varmistaa tiedon muuttumattomuuden. Jos lohkoketjutoteutus on ainoastaan organisaation sisäinen, mikään ei estä organisaatiota muuttamasta tietokannan sisältöä. Sisältöä voi lisätä, poistaa ja muuttaa aivan vapaasti – tai perustaa uuden lohkoketjun vanhan tilalle mikäli sisältö ei miellytä. Tällä ei ole juurikaan kiistämättömyysarvoa, ja sisäiseen käyttöön löytyy paljon parempia ja helppokäyttöisempiä tietokantoja kuin lohkoketju.
Teknisen ratkaisun ominaisuuksia
Lohkoketju on hajautettu tietokanta. Kannan sisältämä tieto kopioidaan kokonaisuudessaan kaikkien louhintaa suorittavien osapuolten palvelimille. Käytännössä tämä tarkoittaa sitä, että kaikki järjestelmän sisältämä tieto on kaikkien louhintaa tekevien osapuolten luettavissa. Eli laita lohkoketjuun vain kaikille osapuolille julkista tietoa.
Toinen teknisen ratkaisun ominaisuus on hajautuksen poistumisen uhka (loss of decentralization), joka on kaikkien lohkoketjujen ominaisuus. Tämä tapahtuu kun mikä tahansa louhintaa tekevä osapuoli saa omistukseensa yli 50% louhintatehosta. Kapasiteetilla tarkoitetaan raakaa tietokoneen louhintaan käyttämää prosessointivoimaa. Tässä tilanteessa teknisen ylivoiman saanut louhija voi omavaltaisesti purkaa lohkoketjun – poistaa transaktioita, tehdä uusia, muuttaa lohkoketjun sisältämiä tietoja. Lohkoketjun sanotaan tässä tilanteessa menettäneen hajautuksensa, ja lohkoketju menettää kiistämättömyytensä. (Tämä on tapahtunut muutaman kerran esim. bitcoinille – yhteisö päätti kuitenkin olla välittämättä tapauksista käytännön syistä).
Käytännössä suosittelen vähintään neljän louhivan osapuolen käyttämistä. Jos yksi neljästä pettää, kukaan ei vielä luultavasti saa ylivoimaa. Jos järjestelmässä on vain kolme louhijaa, ja yksi pettää, jompi kumpi jäljelle jäävä saa väistämättä ylivoiman heti itselleen.
Lisäksi on muistettava että lohkoketjuteknologia sisältää ohjelmistovirheitä. Lohkoketjuun kirjoitetut sopimukset, Smart Contractit sisältävät myös virheitä. Esimerkkinä: Tämän kaltaisten virheiden takia Ethereum-konsortio joutui aloittamaan oman valuuttansa lohkoketjun alusta. Tilannetta kutsutaan skenessä nimellä Fork. Olemassa oleva lohkoketju menettä uskottavuutensa, ja lohkoketju jaetaan vanhaksi ja uudeksi lohkoketjuksi.
Tarkistuslista: Sopiiko idea lohkoketjuille?
Yhteenvetona, väittäisin lohkoketju-ajatuksen sopivan mikäli:
- Osapuolten lukumäärä on kaksi tai enemmän (organisaatioita, yrityksiä jne.) Osapuolten yhteisenä etuna ja tavoitteena on käyttää jaettua, kiistämätöntä tietokantaa tiedon tallentamiseen ja jakamiseen.
- Louhivien osapuolten lukumäärä on riittävä mihin tahansa kuviteltavissa olevaan tilanteeseen. Missään vaiheessa kenenkään yksittäisen osapuolen louhintateho ei voi ylittää 50% kokonaiskapasiteetista. (Palvelin pois käytöstä, laitevika, verkko-ongelma TAI osapuoli fuusioituu toisen louhivan osapuolen kanssa, konkurssi tai muu force majeure jne.)
- Louhiva osapuoli sitoutuu louhintaan. Teknisen infrastruktuurin hankinta, saatavuus ja ylläpito, riittävä osaaminen ja halu toimia järjestelmän louhivana osapuolena.
Jos vastaus oli kyllä kaikkiin ylläoleviin, väittäisin lohkoketjun olevan mahdollinen toteutusvaihtoehto.
Leave A Comment