Varantotodiste ja väärä tekninen ajattelutapa

Hugo Nguyenin essee Bitcoinin perusteista

--

Varanto- tai osuustodiste (engl. Proof-of-Stake, PoS) on nykyään voimissaan. Ethereum Casper, Cardano Ouroboros ja niin edelleen ovat tunnetuimpia. Kasvava kiinnostus PoS-protokollia kohtaan johtuu luultavasti halusta skaalata lohkoketjuja loputtomasti yhdistettynä siihen virheelliseen ajatukseen, että työntodiste (engl. Proof-of-Work, PoW) on jotenkin “tuhlaileva”. (Lue yksityiskohtainen PoW:in tarkastelu täältä.)

Aihe, jota ei ole korostettu tarpeeksi PoS-protokollien yhteydessä, on niiden puutteellinen kestävyys pahimmassa kuviteltavissa tilanteissa. [1] Esimerkiksi satunnaiset tapahtumat, jotka voivat pimentää tai osittaa merkittävän osan verkosta tai jopa koko verkon. Tai varastettujen tai ostettujen yksityisten avainten vaara.

Lähde: Resilienssi lisää yritykse vikasietoisuutta (Harri Jalonen)

Voidaan ajatella, että tällaiset skenaariot ovat (erittäin) harvinaisia tai epätodennäköisiä, mutta a) ne eivät välttämättä ole niin harvinaisia kuin luulet ja b) jopa jokin, jonka tapahtuman stodennäköisyys on 0,1 %, tarkoittaa, että näin tapahtuu aikavälin ollessa riittävän pitkä riittävän — nämä ovat mitä Nassim Taleb kutsuu mustiksi joutseniksi. [*]

Yksinkertaisesti sanottuna, nämä tapahtumat ovat erittäin epätodennäköisiä, mutta kun ne tapahtumat, tulokset ovat usein katastrofaalisia. Me ihmiset aliarvioimme toistuvasti suurivaikutteisia, pitkän hännän tapahtumia. Esimerkiksi harhakuva siitä, että huominen on turvallinen yksinkertaisesti siksi, että viimeiset 10 tai 100 vuotta ovat olleet turvallisia.

Pitkälle hännälle asettuvien tapahtumien huolellinen tarkastelu on erityisen tärkeää suunniteltaessa protokollaa, josta voi tulla globaalin talouden selkäranka ja johon miljoona ihmiset ja yritykset luottavat.

Meidän on käsiteltävä Bitcoin-ohjelmistoa samalla tavoin kuin käsittelemme ydinreaktoria pyörittävää ohjelmistoa. Teknisessä kirjallisuudessa tällaista ohjelmistoluokkaa kutsutaan kriittisiksi järjestelmiksi. Käytössä on kolmenlaisia kriittisiä järjestelmiä: turvallisuuskriittinen, toimintakriittinen ja liiketoimintakriittinen. Bitcoin lukeutuu kaikkiin kolmeen luokkaan (rahan menetykset voivat johtaa ihmishenkien menetyksiin). Virheisiin ei ole varaa.

Kokeneet insinöörit eivät saa hyviä yöunia edes nykyisellä Bitcoinin turvatasolla, mikä ei todellakaan ole täydellinen. He tietävät, että olemme aina yhden askeleen päässä katastrofista riippumatta siitä, miten hyvältä asiat näyttävät paperilla ja kuinka hyvin asiat näyttävät sujuneen toistaiseksi.

Aikaisemmin on sattunut lukuisia tunnettuja teknisiä vikaantumisia, jotka osoittavat selvästi tämäntyyppisen piilotetun vaaran. Joitakin esimerkkiä:

1) Concorden onnettomuus (2000)

Kuvalähde: SuperBoxMagic

Concorde-matkustajakone (1976–2003) oli neuvostovalmisteisen Tupolev Tu-144:n ohella ainoa kaupallisessa käytössä ollut yliääninen matkustajakone. Vuonna 25. heinäkuuta Air Francen lento 4590 putosi, kun “kiitotiellä ollut metalliesine puhkaisi renkaan ja renkaasta irronnut pala osui polttoainetankkiin aiheuttaen vuodon ja tulipalon, joiden takia kone ei enää kyennyt nousemaan.” (Lähde) Concordea pidettiin yhteen aikaan yhtenä “maailman turvallisimmista lentokoneista”.

2) Challenger-avaruussukkulan katastrofi (1986)

Kuvalähde: nhpr

Yhdysvaltain avaruushallinto NASA arvioi aluksi vikaantumisen todennäköisyyden olevan yhden suhde sataan tuhanteen (1:100 000). Richard Feynmanin johtaman onnettomuustutkimuksen mukaan o-rengastiiviste oli pettänyt laukaisussa. “Laukaisua edeltäneen yön pakkasesta johtuen tiiviste oli menettänyt kimmoisuuttaan ja raketin polttoaine pääsi virtaamaan tiivisteen välistä aiheuttaen onnettomuuden”, Wikipediassa todetaan. Todelliset kertoimet olivat yhden suhde sataan (1:100). Tuhatkertainen virhe!

3) Fukushiman ydinvoimalaonnettomuus (2011)

Kuvalähde: NPR

Japani on eräs maailman parhaista maanjäristysteknologian ja -turvallisuuden saralla.

Fukushiman ydinvoimalaonnettomuus, jonka seurauksena “kolmen reaktorin sydämessä polttoaine ylikuumeni ja lopulta suli”, on esimerkki täydellisestä katastrofien myrskystä: Japanin kirjoitetun historian suurin magnitudin 9,0 maanjäristys ja sitä seurannut 14–15-metrinen kerran vuosituhannessa tapahtuva järistyksen jälkeen johtivat ketjureaktionomaiseen onnettomuuteen.

Pahimpien skenaarioiden ajattelu on ehdottoman tärkeää käsiteltäessä kriittisiä järjestelmiä, ja vielä tärkeämpää, kun nämä järjestelmät ovat maailmanlaajuisia.

Tarkastellaan sitä, miten PoW ja PoS käsittelevät verkon osittumista ja odottamattomia käyttökatkoksia. [2]

Osoittaakseni, että tämäntyyppiset skenaariot eivät ole niin kaukaa haettuja kuin voidaan ajatella: arabikevään aikana Turkin hallitus onnistui kaappaamaan BGP:n estääkseen turkkilaisten Twitterin käytön. Kiinalla on käytössään vielä hienostuneempia työkaluja internet-liikenteen estämiseksi osana suurta palomuuria.

Voit myös kuvitella tilanteita, kuten sotia, joiden aikana keskenään taistelevat maat pyrkivät sulkemaan vihollisen viestintäinfrastruktuurin. Viestintäinfrastruktuurin häiritseminen (tai kaappaaminen tai tuhoaminen) ovat tyypillisesti ensimmäinen tavoite, sillä se kenellä on parempi viestintäjärjestelmä, on etulyöntiasemassa.

Joten kuinka resilientti eli kestävä PoW- tai PoS-järjestelmä on näissä tilanteissa? Tarkastellaan joitakin esimerkkejä.

Skenaario 1: Koko verkko on suljettuna jonkin aikaa. Käynnistetään myöhemmin uudelleen.

Koska kaikki alueet eivät ehkä onnistu käynnistymään uudelleen ja ottamaan yhteyttä toisiinsa samanaikaisesti, verkossa todennäköisesti syntyy useita alueita, jotka aloittavat oman riippumattoman lohkoketjunsa viimeisestä yhteisestä lohkosta juuri ennen kuin verkko meni pimeäksi. Tämän tuloksena syntyy useita lohkoketjun jakautumisia.

Kun alueet kykenevät jälleen viestimään uudelleen, näiden riippumattomien ketjujen solmut viestivät jälleen toistensa kanssa.

Työntodisteen tapauksessa järjestelevät itsensä automaattisesti uudelleen ja lopulta kallistuvat kohti yhtä ketjua: ketjua, joka on onnistunut kerryttämään eniten työntodistetta (ja on täten turvallisin). Se on tuskallista, koska osa ketjuista pyyhkiytyy pois prosessin tuloksena. Tämä kuitenkin toimii ja käyttäytyminen on determinististä eli ennalta määrättyä syy-seuraussuhteen näkökulmasta.

Varantotodisteen tapauksessa solmuilla ei ole aavistustakaan siitä, mikä ketju on “oikea” ketju. Toisin kuin työntodisteessa, varantotodisteen tapauksessa ei ole objektiivista mittatikkua kahden ketjun “aitouden” väliseen vertailuun. Käyttäytyminen on indeterminististä eli ennalta määrättyä syy-seuraussuhteen näkökulmasta ja sitä on mahdotonta automatisoida pois ottamatta käyttöön mielivaltaisia sääntöjä, jotka puolestaan kasvattavat hyökkäyspintaa. https://www.nixu.com/fi/blog/mita-ovat-hyokkayspinta-ja-hyokkaysvektori Jakautumisesta voi tulla pysyvä, koska jotkut PoS-protokollat eivät mahdollista paluuta liian kauas menneisyyteen.

PoS-protokollan suunnittelijat tekevät kaikkensa huonosti käyttävien toimijoiden “rankaisemiseksi”. He eivät ota huomioon sitä, että kaikki solmut voivat toimia rehellisesti, mutta ketju on tästä huolimatta jakautunut!

Skenaario 2: Jotkut verkon osat osittuvat pääverkosta

Osoittautuu, että tämä skenaario johtaa samanlaiseen lopputulokseen kuin ensimmäisessä skenaariossa. Osiot jatkavat aivan kuin kaikki olisi kunnossa — paitsi että “aktiivisten” varastoivien solmujen määrä kussakin eristetyssä osiossa on aiempaa pienempi. Syntyy kuitenkin sekaannusta, kun osioidun verkon toimijat ovat jälleen yhteydessä pääverkkoon. Solmuilla ei ole aavistustakaan siitä, mikä ketju on sääntöjen mukainen ketju.

Ratkaiseva ero ensimmäisen ja toisen skenaarion välillä on se, että toisen skenaarion todennäköisyys on vielä suurempi. Liikenteen uudelleenohjaaminen on helpompaa kuin koko verkkoliikenteen sulkeminen — olemme jo nähneet tämän tapahtuvan. Osiot voivat olla niinkin pieniä kuin kaupungin verkko. Voimme kuvitella, että jotain tällaista tapahtuu muutaman vuoden välein tai jopa useammin.

Skenaario 3: Varantotodiste on huonompi myös muissa katastrofitilanteissa, kuten varastettujen yksityisten avainten tapauksessa

Varallisuuden jakautuminen noudattaa usein potenssilakeja, eikä ole mitään syytä ajatella, että kryptovaluutat eroaisivat tästä. “1 prosentti kryptosta”, joka voi olla vain kourallinen ihmisiä, saattaa hyvinkin hallita merkittävää osaa tai suurinta osaa kolikoiden kokonaistarjonnasta.

Nämä varakkaimpien PoS-varantohaltijoiden yksityiset avaimet saattavat päätyä vääriin käsiin hienostuneen sosiaalisen manipuloinnin seurauksena (kidnappaus, kidutus, kiristys jne.). Sen sijaan, että otat kolikoita lainaan tai ostat niitä avoimilta markkinoilta, yksityiset avaimet varastamalla hyökkääjä ei nosta kolikon arvoa markkinoilla hyökkäyksen aikana. Tätä hyökkäysvektoria tarkasteltaessa PoS-protokollan suunnittelijat olettavat usein kummallisesti, että kolikoiden ostaminen avoimilta markkinoilta on ainoa tapa hankkia enemmistö määräysvallasta, ja päättelevät tästä virheellisesti, että PoS-valuutan vastaiset hyökkäyskustannukset määräytyvät pelkästään sen markkina-arvon perusteella. Yksityisten avainten varastaminen ohittaa “puolustuksen” kokonaan ja vähentää merkittävästi hyökkäyksen kustannuksia.

(Eräs muunnelma tästä hyökkäyksestä on hankkia vanhoja yksityisiä avaimia vanhoilta suurilta varannonhaltijoilta, jotka eivät ole enää kiinnostuneita valuutasta.)

PoW:issa tätä vastaa tilanne, jossa ilkeämielinen taho onnistuu saavuttamaan enemmistön laskentatehosta.

Mitä joku, jolla on yli 50 prosenttia laskentatehosta, voi tehdä PoW:ille? Hän voi yrittää kaksinkertaista kulutusta tai kirjoittaa historian uudelleen. Mutta kaksinkertaiseen kuluttamiseen hänen on käytettävä paljon rahaa. Laskentatehon enemmistön hallinta on vain ensimmäinen askel. Niin pahalta kuin tilanne vaikuttaa, niin siis jopa tässä tapauksessa PoW-protokolla toimii edelleen odotetulla tavalla ja vain yhtä ketjua pidetään pätevänä (vaikka SPV-solmut saattavat joutua hämmennyksen valtaan, jonka vuoksi täyssolmujen ajamista suositellaan usein). Historian uudelleenkirjoittaminen maksaa vielä järjettömämmän summan rahaa, joten käyttäjätasapainon menettämisen riski on alhainen. Käyttäjät voivat jäädä odottamaan myrskyn iskemistä tai ryhtyä toimiin PoW-algoritmin muuttamiseksi.

Kaiken kaikkiaan tilanne on melko ruma. Mutta huomaamme, että PoW-laskentatehon enemmistökään ei anna hyökkääjälle rajatonta valtaa. Sinun on saatava enemmistö hallintaan JA käytettävä rahaa hyökkäyksen suorittamiseksi. Voimme ajatella tätä kaksikerroksisena puolustuslinjana. Hyökkäyksen aikana käyttäytyminen on determinististä ja ei ole epäselvyyttä siitä, mikä ketjuista on pätevä. Tätä hyökkäystilanneissa ilmenevää kestävyyttä aliarvioidaan.

Sen sijaan enemmistöosuuden saavuttaminen PoS-järjestelmässä antaa sinulle rajattomasti valtaa. Voit tuplakuluttaa käyttämättä ylimääräistä rahaa hyökkäykseen, toisin kuin työntodistuksessa. Voit myös joko a) kirjoittaa historian uudelleen, jos protokollassa ei ole tarkistuspisteitä tai b) aiheuttaa ristiriitaisen ketjujakautumisen, jos protokollassa on tarkistuspisteitä (esim. Casper). PoS-algoritmin vaihtaminen tai muuttaminen ei auta, koska vaihtamiseen liittyviä kustannuksia ei ole toisin kuin PoW-louhintaan liittyvissä laitteistoissa.

Yhteenvetona voidaan todeta, että PoW:iin liittyy kaksi turvatakuuta:

  1. PoW suojaa tulevaisuutta: kun ketju on jakautunut, se antaa objektiivisen mekanismin, automaattisen tavan ratkaista konfliktit ilman manuaalista inhimillistä väliintuloa tai luotettavia kolmansia osapuolia.
  2. PoW suojaa menneisyyttä: laskentatehon enemmistön hallitseminen maksaa edelleen paljon rahaa ja vaivaa historian uudelleenkirjoittamiseksi, joten PoW:in turvaamat saldot ovat jokseenkin turvassa.

PoS ei tarjoa kumpaakaan näistä turvatakuista. PoS:in puolustajat saattavat väittää, että tarkistuspisteet korjaavat toisen ongelman, mutta todellisuudessa tarkistuspisteet vain siirtävät ongelman toisaalle. Tarkastuspisteet ovat keskitetty ratkaisu, joka on toinen matopurkki [3].

(* Jos etsit syvällisempää katsausta “yksityisten avainten hyökkäyksestä”, tutustu toiseen osaan.)

Yhteenvetona sanottakoon, että on hyvin tärkeää, että Bitcoin- ja lohkoketjuprotokollien kehittäjillä on oikea ajattelutapa. Nämä ovat kriittisiä järjestelmiä, jotka ansaitsevat tulla suunnitelluiksi parhaalla mahdollisella tavalla.

PoS-protokollat perustuvat virheellisiin ja naiiveihin oletuksiin, jotka pettävät pahimmissa mahdollisissa uhkakuvissa. PoS on askel väärään suuntaan: se alentaa laatutasoa sen sijaan, että se nostaisi sitä.

Kirjoittajan huomioita

[1] Katso Andrew Poelstran aiempi analyysi PoS:ista, “On Stake & Consensus” (2015).

[2] Verkon osittuminen ja osaverkot ovat tärkeä tutkimus aihe tietoliikenneverkkotutkimuksessa. Katso esimerkiksi Ethan Heilmanin ja kumppanien tutkimus, “Eclipse Attacks on Bitcoin’s Peer-to-Peer Network” (2015).

[3] Tarkistuspisteet voidaan toteuttaa hajautetusti, mutta ne aiheuttavat tästä huolimatta ongelmia, jotka vaativat keskitettyjä ratkaisuja. Joten käytännössä tarkistuspisteiden käyttäminen johtaa keskittymiseen.

Suomentajan huomioita

[*] Yksinkertainen ja selkeä selitys mustalle joutsenelle, ks. alla oleva kalvo

Suomennos Hugo Nguyenin (Twitter) kirjoittamasta artikkelista “Proof-of-Stake & the Wrong Engineering Mindset”. Artikkeli on julkaistu alun perin Mediumissa 18.3.2018.

Hugo Nguyen on työskennellyt Litecoinin kehittämisen parissa Litecoin Foundationissa. Hänellä on yli 10 vuotta kokemusta ohjelmistokehitystä. Hän vietti yli seitsemän vuotta vanhempana ohjelmistokehittäjänä. Nykyisin hän työskentelee mobiilikehittäjänä YCombinatorista ponnistaneen Scribdin palveluksessa.

Kirjoituksen on suomentanut Thomas Brand (Twitter).

--

--

Thomas Brand
Brandin kirjasto

Curious observer. Interested in economics, fintech, Bitcoin, philosophy, strategy, innovation & existential risks.