Miksi lohkoketju on hankala

Pöhinä lohkoketjun ympärillä on valtavaa. Lohkoketjupöhinä sanoo, että lohkoketju tulee nyt

  1. Ratkaisemaan eriarvoisuuden
  2. Tekee kaikesta datasta ikuisesti turvallista
  3. Tekee kaikesta paljon tehokkaampaa ja luottamuksetonta
  4. Pelastaa vauvat kuolemalta

Mikä ihme lohkoketju edes on? Voiko se todella tehdä nämä kaikki asiat? Voitko lohkoketju tuoda jotain mahtavaa niinkin erilaisille teollisuuden aloille kuin terveydenhuoltoon, rahoitukseen, toimitusketjujen hallintaan ja musiikintekijöiden oikeuksiin?

Eikö Bitcoinin kannattaminen tarkoita sitä, että kannatat myös lohkoketjua? Kuinka voit sanoa olevasi Bitcoinin puolesta, mutta samalla et kuitenkaan puhu hyvää sen taustalla olevasta teknologiasta?

Tässä artikkelissa pyrin vastaamaan suureen osaan näistä kysymyksissä tarkastelemalla sitä, mitä lohkoketju on ja mikä tärkeintä, mitä se ei ole.

Mitä on lohkoketju?

Tutkiaksemme joitakin näistä väitteistä, meidän on määriteltävä, mitä lohkoketju on ja tästä asiasta on paljon sekaannusta. Monet yritykset käyttävät sanaa “lohkoketju” tarkoittaessaan jonkinlaista taianomaista laitetta, jonka data ei koskaan ole väärässä. Tällaista laitetta ei tietenkään ole olemassa, ainakaan silloin, kun reaalimaailma otetaan huomioon.

Joten mikä on lohkoketju? Teknisesti ottaen lohkoketju on toisiinsa liitettyjen lohkojen luettelo ja lohko on tapahtuma tilattuja tapahtumia. Jos et ymmärtänyt viimeistä virkettä, voit ajatella lohkoketjun olevan tietokannan alajoukko, jossa on muutamia lisäominaisuuksia.

Tärkein asia, joka erottaa lohkoketjun tavanomaisesta tietokannasta on se, että lohkoketjussa on olemassa erityiset säännöt sille, miten dataa laitetaan tietokantaan. Toisin sanoen, uusi data ei voi olla ristiriidassa muun tietokannassa jo olevan datan kanssa (johdonmukaisuus), lohkoketjuun voi vain lisätä dataa (muuttumattomuus) ja itse data on lukittu omistajalle (omistettavuus), se on toistettavissa ja saatavilla. Lopuksi kaikki ovat yhtä mieltä siitä, mikä tietokannan tilanne on (kanonisuus) nojaamatta keskusvastapuoleen (hajautettu).

Juuri tämä viimeinen kohta on lohkoketjun pyhä Graalin malja. Hajauttaminen on erittäin houkuttelevaa, koska se tarkoittaa, että ei ole yhtä yksittäistä pistettä, jonka toimintahäiriö keskeyttäisi tietokannan toiminnan. Toisin sanoen yksikään taho ei voi viedä omaisuuttasi tai muuttaa “historiaa” haluamakseen. Tämä muuttumaton varmennus- ja tarkastusketju, jossa sinun ei tarvitse luottaa kehenkään, on se etu, josta kaikki tämän teknologian kanssa työskentelevät ovat kiinnostuneita. Tämä etu tulee kuitenkin erittäin kalliiksi.

Lohkoketjujen kustannukset

Minkä tahansa yksittäisen osapuolen hallitsematon varmennus- ja tarkastusketju on varmasti hyödyllinen, mutta tällaisen järjestelmän luomiseen liittyy monia kustannuksia. Tarkastellaan joitakin tähän liittyviä asioita.

Kehittäminen on tiukempaa ja hitaampaa

Todennäköisesti yhdenmukaisen järjestelmän luominen ei ole helppo tehtävä. Pieni virhe voi vikaannuttaa koko tietokannan tai aiheuttaa sen, että jotkin tietokannat poikkeavat muista. Vikaantuneella tai pilkotulla tietokannalla ei tietenkään enää ole takeita yhdenmukaisuudesta. Lisäksi kaikki tällaiset järjestelmät on suunniteltava alusta alkaen yhdenmukaisiksi. Lohkoketjussa ei ole varaa “liikkua nopeasti ja rikkoa asioita”. Jos rikot asioita, yhdenmukaisuus on menetetty ja lohkoketjusta tulee vioittunut ja arvoton.

Ehkä ajattelet, miksi et voi vain korjata tietokantaa tai aloittaa alusta ja siirtyä eteenpäin? Tämä olisi helppoa tehdä keskitetyssä järjestelmässä, mutta tämä on erittäin vaikeaa hajautetussa järjestelmässä. Tietokannan vaihtamiseen tarvitaan yksimielisyys tai kaikkien järjestelmän käyttäjien suostumus. Lohkoketjun on oltava julkinen resurssi, joka ei ole yhdenkään yksittäisen toimijan hallinnassa (hajautettu, muistatko?) tai kyse on erittäin kalliin ja hitaan keskitetyn tietokannan luomisesta.

Kannustinrakenteita on vaikea suunnitella

Lisäksi on otettava huomioon oikeuden kannustinrakenteiden lisääminen ja sen varmistaminen, että yksikään järjestelmän käyttäjä ei voi käyttää tietokantaa väärin tai vioittaa sitä. Lohkoketju voi olla yhdenmukainen, mutta se ei ole kovin hyödyllinen, jos siihen lisätään paljon joutavaa hyödytöntä dataa, koska datan lisäämisen lohkoketjuun on erittäin edullista. Lohkoketju ei myöskään ole hyödyllinen, jos siinä ei ole juuri mitään dataa, koska datan lisääminen lohkoketjuun on erittäin kallista.

Mikä takaa datan lopullisuuden? Kuinka voit varmistaa, että palkkiot ovat linjassa verkon tavoitteiden kanssa? Miksi solmut säilyttävät tai päivittävät dataa ja mikä saa ne valitsemaan yhden datan palasen toisen datapalasen sijaan niiden ollessa ristiriidassa keskenään? Nämä ovat kaikki kannustimiin liittyviä kysymyksiä, joihin tarvitaan hyviä vastauksia, ja niiden on oltava yhdenmukaisia paitsi alussa, mutta myös kaikkina ajanhetkinä tulevaisuudessa teknologian ja yritysten muuttuessa. Muussa tapauksessa lohkoketju ei ole hyödyllinen.

Saatat jälleen ihmetellä, miksi et voi “korjata” jotain rikkinäistä kannustinta. Tämä on jälleen kerran helppoa keskitetyssä järjestelmässä, mutta hajautetussa järjestelmässä et yksinkertaisesti voi muuttaa mitään ilman konsensusta eli yksimielisyyttä. Ei voi “korjata” mitään, elleivät kaikki ole tästä yksimielisiä.

Ylläpito on erittäin kallista

Perinteinen keskitetty tietokanta pitää kirjoittaa vain kerran. Lohkoketju on kirjoitettava tuhansia kertoja. Perinteisen keskitetyn tietokannan on tarkistettava data vain kerran. Lohkoketjun on tarkistettava data tuhansia kertoja. Perinteisen keskitetyn tietokannan on lähetettävä data säilytettäväksi vain kerran. Lohkoketjun on lähetettävä data tuhansia kertoja.

Lohkoketjun ylläpidosta aiheutuvat kustannukset ovat suuruusluokkaa suuremmat ja kustannukset on perusteltava hyödyillä. Useimmat sovellukset, jotka etsivät joitakin edellä mainituista ominaisuuksista, kuten yhdenmukaisuutta ja luotettavuutta, voivat saavuttaa nämä ominaisuudet huomattavasti edullisemmin hyödyntämällä eheyden tarkastuksia, kuittauksia ja varmuuskopioita.

Käyttäjät ovat täysivaltaisia

Tämä voi olla todella hyvä, koska yritykset eivät pidä käyttäjätietojen hallussapidon aiheuttamista vastuista. Tämä voi kutenkin olla huono asia, jos käyttäjä “käyttäytyy huonosti”. Ei ole mitään keinoa potkia pois sellaista käyttäjää, joka syöttää lohkoketjuusi turhaa dataa tai on keksinyt tavan tehdä rahaa jollakin tavalla, joka aiheuttaa muille käyttäjille paljon haittaa. Tämä liittyy edellä mainittuun huomautukseen siitä, että kannustinrakenteet on suunniteltava todella, todella hyvin, sillä käyttäjä, joka on keksinyt keinon käyttää lohkoketjua hyväkseen, ei todennäköisesti anna periksi, varsinkin jos tästä on käyttäjälle hyötyä.

Saatat ajatella, että voisit yksinkertaisesti kieltäytyä palvelemasta pahantahtoisia käyttäjiä. Tämä olisi erittäin helppoa keskitetyssä palvelussa. Toisin kuin keskitetyssä palvelussa, palvelun epääminen lohkoketjussa on kuitenkin vaikeaa, koska yhdelläkään taholla ei ole valtuuksia potkia ketään ulos. Lohkoketjun on oltava puolueeton ja valvottava ohjelmiston määrittämiä sääntöjä. Jos säännöt eivät riitä estämään huonoa käyttäytymistä, mitään ei ole tehtävissä. Lohkoketjussa ei ole lain “henkeä”. Sinun on yksinkertaisesti mahdollisesti siedettävä pahantahtoisia tai huonosti käyttäytyviä toimijoita hyvin pitkään.

Kaikki päivitykset ovat vapaaehtoisia

Pakkopäivitys ei ole vaihtoehto. Muilla verkon jäsenillä ei ole velvollisuutta vaihtaa tai muuttaa ohjelmistoaan sinun ohjelmistoasi vastaavaksi. Jos näin olisi, tällainen järjestelmä olisi paljon helpompaa, nopeampaa ja halvempaa rakentaa keskitetyksi järjestelmäksi. Lohkoketjun tarkoitus on, että se ei ole yhdenkään tahon hallinnassa ja pakkopäivitykset rikkovat tätä periaatetta vastaan.

Sen sijaan kaikkien päivitysten on oltava taaksepäin yhteensopivia. Tämä on tietysti melko vaikeaa, varsinkin jos haluat lisätä uusia ominaisuuksia ja vielä vaikeampaa, kun asiaa tarkastellaan testauksen näkökulmasta. Jokainen ohjelmistoversio lisää paljon uutta testimatriisiin ja pidentää julkaisuaikaa.

Jälleen, jos tämä olisi keskitetty järjestelmä, tämä olisi erittäin helppo korjata jättämällä vanhemmat järjestelmät päivittämättä. Et kuitenkaan voi tehdä näin hajautetussa järjestelmässä, koska et voi pakottaa ketään tekemään mitään.

Skaalaaminen on todella vaikeaa

Lopuksi, skaalaaminen on ainakin monta kertaluokkaa vaikeampaa kuin perinteisessä keskitetyssä järjestelmässä. Syy tälle on ilmeinen. Saman tiedon on oltava sadoissa tai tuhansissa paikoissa sen sijaan, että data olisi yhdessä paikassa. Datan lähetys-, varmennus- ja tallennuskustannukset ovat valtavat, koska jokaisen tietokannan kopion on maksettava tästä sen sijaan, että ne maksetaan vain kerran perinteisen keskitetyn tietokannan tapauksessa.

Voit tietysti vähentää taakkaa vähentämällä solmujen määrää. Mutta miksi sitten tässä tapauksessa tarvitaan hajautettua järjestelmää lainkaan? Miksi et tee vain keskitettyä tietokantaa, jos skaalaamiskustannukset ovat suurin huolenaihe?

Keskittäminen on paljon helpompaa

Jos huomaat teeman niin se on se, että hajautettujen järjestelmien kanssa on erittäin vaikeaa työskennellä, niiden ylläpitäminen on kallista, niitä on vaikea päivittää ja hankalia skaalata. Keskitetty tietokanta on paljon nopeampi, edullisempi, vaivattomampaa ylläpitää ja helpompaa päivittää kuin lohkoketjua. Joten miksi ihmiset käyttävät sanaa lohkoketju ikään kuin se olisi jokin ihmelääke kaikkiin heidän ongelmiinsa?

Ensinnäki, monet niistäteollisuudenaloista, jotka ovat haltioituneet lohkoketjusta, ovat todella myöhässä IT-infrastruktuurinsa päivityksissä. Terveydenhuolto on tunnettu kauheasta ohjelmistostaan. Taloudellisiin selvitystoimenpiteisiin käytettävät ohjelmistot ovat 1970-luvulta. Toimitusketjujen hallintaohjelmistoja on vaikea käyttää ja vaikea asentaa. Suurin osa näiden toimialojen yrityksistä vastustaa päivityksiä riskin vuoksi. On olemassa paljon infrastruktuuripäivityksiä, jotka maksavat satoja miljoonia ja jotka joudutaan joka tapauksessa perumaan. Lohkoketju on tapa myydä näitä IT-infrastruktuurin päivityksiä ja tehdä niistä hieman houkuttelevampia.

Toiseksi, lohkoketju on tapa näyttää, että olet ikään kuin aivan teknologian kärkikastia. Pidit siitä tai et, sana “lohkoketju” elää omaa elämäänsä. Hyvin harvat todella ymmärtävät, mikä se on, mutta nämä ihmiset haluavat vaikuttaa uusimpia virtauksia seuraavana, joten he käyttävät näitä sanoja kuulostaakseen älykkäämmältä. Aivan kuten sana “pilvi” (engl. cloud) tarkoittaa jonkun toisen tietokonetta ja “tekoäly” (engl. AI, artificial intelligence) tarkoittaa viritettyä algoritmia, sana “lohkoketju” tarkoittaa tässä yhteydessä hidasta, kallista tietokantaa.

Kolmanneksi, ihmiset eivät todellakaan pidä tiettyjen toimialojen viranomaisvalvonnasta ja haluavat erilaisen päätöksentekomekanismin laillisen kehyksen rinnalle, sillä laki ja oikeus on usein liian hidasta ja kallista. Heille “lohkoketju” on oikeastaan vain tapa päästä eroon valtion raskaasta sääntelyverkosta. Tämä lohkoketjun mahdollisuuksien paisuttelua. Lohkoketju ei taianomaisesti poista ihmisten välisiä ristiriitoja.

Tuloksena on monia ihmisiä, jotka uskovat pöhinän luomiin lupauksiin kuitenkaan ymmärtämättä lohkoketjun kykyjä tai kustannuksia. Mikä pahempaa, VC:t ja johtajat ovat poistaneet tosiasialliset tekniset yksityiskohdat ja kustannukset, hämärtäen näin sen, mitä lohkoketju voi ja ei voi tehdä. Jokainen heidän alaisistaan pelkää sanoa, että keisarilla ei ole vaatteita ja olemme siinä tilanteessa missä nyt olemme.

Joten mihin lohkoketju on hyvä?

Olemme jo todenneet, että lohkoketju on erittäin kallis keskitettyihin tietokantoihin verrattuna. Joten ainoa syy, jonka vuoksi sinun pitäisi käyttää lohkoketjua, on hajauttaminen. Toisin sanoen poistaa yksi yksittäinen piste, jonka toimintahäiriö tai vaarantuminen keskeyttäisi tietokannan toiminnan.

Tämä tarkoittaa luonnollisesti sitä, että ohjelmistoa tai tietokantaa ei saisi muuttaa turhan usein, jos ollenkaan. Päivityksellä pitäisi olla pieniä hyötyjä ja huonolla päivityksellä tai sääntöjen muuttamisella isot kustannukset.

Suurin osa teollisuudenaloista ei ole tällaisia. Useimmilla toimialoilla tarvitaan uusia ominaisuuksia tai päivityksiä sekä vapautta muuttaa ja laajentaa ratkaisuja tarvittaessa. Useimmilla teollisuudenaloilla ei ole paljon käyttöä lohkoketjulle, koska lohkoketjuja on vaikea päivittää, vaikea muuttaa ja vaikea skaalata.

Ainoa poikkeus, jonka olemme löytäneet, on raha. Toisin kuin useimmat teollisuuden käyttötapaukset, raha on parempi, jos se ei muutu. Sääntöjen muuttumattomuus ja vaikeus muuttaa sääntöjä ovat rahalle myönteisiä ominaisuuksia, eivät haitallisia. Tästä syystä lohkoketju on oikea työkalu tähän hommaan, kun kyse on Bitcoinista.

Selvää on se, että monet yritykset, jotka haluavat käyttää lohkoketjua, eivät todellisuudessa halua lohkoketjua lainkaan, vaan pikemminkin IT-päivityksiä heidän omalle teollisuudenalalleen. Tämä on hieno juttu, mutta sanan “lohkoketju” käyttäminen tämän saavuttamiseksi on epärehellistä ja lohkoketjun kyvykkyyden liioittelua.

Johtopäätös

Lohkoketju on nykyään suosittu termi ja valitettavasti “lohkoketju, ei Bitcoin” -meemi ei ota kadotakseen. Jos olet keskitetty palvelu, lohkoketju ei tuota sinulle mitään sellaista, mitä et voi tehdä tuhat kertaa halvemmalla keskitetyn tietokannan avulla. Jos olet hajautettu palvelu, niin luultavasti huijaat itseäsi etkä ota huomioon järjestelmäsi heikointa lenkkiä eli yksittäisiä vikaantumispisteitä. “Sinua” ei ole olemassa aidosti hajautetussa palvelussa.

Koko artikkelin suurin vitsi

Vielä 2000-luvun alussa monet teknologiateollisuuden johtajat halusivat käyttää Javaa ja XML:ää. Siitä huolimatta, että nämä kaksi asiaa olivat työkaluja eivätkä todellisia tuotteita, monet avainhenkilöt vaativat niiden käyttöä riippumatta siitä, kuinka huonosti ne sopivat yhteen sen kanssa, mitä heidän ohjelmistokehittäjänsä yrittivät saavuttaa. Lohkoketjussa on paljon samaa. Keskity ongelmiin, joita yrität ratkaista ja työkaluista tulee ilmeisiä. Keskity työkaluihin, joita haluat käyttää, ja tuloksena on Goldbergin koneita, jotka eivät tee mitään erityisen hyvin.

Tietyssä mielessä nykyiset käsitykset lohkoketjusta yrittävät saavuttaa jotain mahdotonta. Yritetään saavuttaa hajautetun järjestelmän turvallisuus keskitetyn hallinnan avulla. Tavoitteena on saada molempien maailmojen parhaat puolet, mutta se, mitä lopulta saadaan, on kummankin maailman pahimmat puolet. Saat hajautetun järjestelmän kustannukset ja vaikeudet keskitetyn järjestelmän heikoimpien lenkkien kanssa.

Lohkoketjua käytetään aivan liian paljon pöhinäsanana turhan käärmeöljyn myymiseen. Mitä nopeammin pöhinästä päästään eroon, sen parempi pitkällä aikavälillä kaikille.

Kiitos David A. Hardingille ja Michael Flaxmanille.

Jimmy Songin 14.5.2018 ilmestyneen kirjoituksen “Why Blockchain is Hard” on suomentanut Thomas Brand.

Tässä kirjoituksessaan Song esittelee lohkoketjun perusperiaatteet kansan kielellä ja pohtii erilaisia lohkoketjujen käyttöönottoon ja ylläpitoon liittyviä suoria ja epäsuoria kustannuksia. Songin mukaan keskittäminen on hajautettuja tilikirjoja ja tietokantoja helpompi ja edullisempi ratkaisu, koska niiden rakentaminen ja ylläpitäminen on huomattavasti hajautettuja ratkaisuja helpompaa ja yksinkertaisempaa. Songin mukaan lohkoketju itsessään ei yleensä ottaen paranna datan laatua tai tallennettavuutta. Lohkoketju käytännössä mahdollistaa sen, että käyttäjän toimintavaltuudet tietyn datan parissa voidaan todentaa.

Songin mukaan lohkoketju on useimmiten ratkaisu vailla ongelmaa. Songin mukaan lohkoketjusta on tullut välineen sijaan itsetarkoitus. Songin artikkeli on hyvä esimerkki siitä, kuinka iso ero lohkoketjuja työkseen hehkuttavien ja niiden – varsinkin Bitcoin- ja Ethereum-lohkoketjun – parissa työskentelevien ohjelmistokehittäjien välillä on. Ne, jotka ymmärtävät lohkoketjujen haasteet, ovat ymmärrettävän pessimistisiä ja varovaisia arvioissaan lohkoketjujen (ja muiden luottamusteknologioiden) soveltuvuudesta erilaisten ongelmien ratkaisemisessa.

Lue aiempi Songilta suomentamani kirjoitus “Miksi lohkoketju ei ole vastaus” ja Vijay Boyapatin “Bitcoinin valoisa tulevaisuus: Luomiskertomus ja rahan synty (1/4)“.

Jimmy Song on Bitcoin Coren kehittäjä, kouluttaja ja yrittäjä. Aiemmin hän työskenteli Bitcoin-lompakoihin erikoistuneen Armoryn teknologiajohtajana. Hänellä on yli kaksikymmentä vuotta kokemusta ohjelmoinnista. Hän on bitcointechtalk.comin toimittaja ja kirjoittaa artikkeleita medium.comiin. Songin kirja “Programming Bitcoin: Learn How to Program Bitcoin from Scratch” ilmestyi O’Reilly’n kustantamana helmikuussa 2019. Seuraa Songia Twitterissä. Lue Songin haastattelut BREAKERMAGista ja Hackernoonista.

Kuvalähde: Blockchain Network / TheDigitalArtist / Pixabay License

Leave a Reply

Your email address will not be published. Required fields are marked *