21 oppituntia

16. oppitunti: Pohdintoja aiheesta “Älä luota — todenna”

Thomas Brand
Brandin kirjasto
5 min readNov 3, 2019

--

Liisa ja Herttakuningatar (Kuvalähde: Lewis Carroll)

“Valamiehistö julistakoon päätöksen”, sanoi kuningas,

Bitcoin pyrkii korvaamaan tai ainakin tarjoamaan vaihtoehdon perinteisille valuutoille. Perinteinen valuutta on sidottu keskusviranomaiseen riippumatta siitä, puhutaanko laillisesta maksuvälineestä kuten Yhdysvaltain dollarista tai nykyajan Monopoli-rahasta kuten Fortniten V-buckseista. Molemmissa tapauksissa sinun on luotettava keskusviranomaisen antamaan, hallitsemaan ja kierrättämään rahaan. Bitcoin purkaa tämän yhteyden, ja tärkein ongelma, jonka Bitcoin ratkaisee, on kysymys luottamuksesta.

Perinteisen valuutan pääongelma on kaikki se luottamus, joka vaaditaan siihen, että valuutta toimii. — Tarvitaan sähköinen maksujärjestelmä, joka perustuu kryptografiseen todisteeseen luottamuksen sijaan.
Satoshi Nakamoto

Bitcoin ratkaisee luottamuksen ongelman olemalla täysin hajautettu, ilman keskuspalvelinta tai luotettavia osapuolia. Ei edes luotettavia kolmansia osapuolia, piste. Kun keskusvastapuolta ei ole, ei yksinkertaisesti ole olemassa ketään, johon luotettaisiin. Täydellinen hajauttaminen on innovaatio. Se on Bitcoinin joustavuuden ja selviytymiskyvyn juurisyy. Syy sille, miksi Bitcoin on edelleen hengissä. Hajauttaminen on myös syy siihen, että meillä on louhijat, solmuja, kovia lompakoita, ja kyllä, lohkoketju. Ainoa asia, johon sinun on “luotettava” on, että ymmärryksemme matematiikasta ja fysiikasta ei ole täysin väärässä, ja että suurin osa louhijoista toimii rehellisesti (mihin heitä myös kannustetaan).

Bitcoin: A Peer-to-Peer Electronic Cash System

Tavallinen maailma toimii oletuksella “luota, mutta todenna”, mutta Bitcoin toimii oletuksella “älä luota — todenna”. Satoshi teki luottamuksen poistamisen merkityksen erittäin selväksi sekä Bitcoin-whitepaperin johdannossa että johtopäätöksissä.

Johtopäätös: olen ehdottanut järjestelmää sähköisiin siirtotapahtumiin turvautumatta luottamukseen.
- Satoshi Nakamoto

Huomaa, että “turvautumatta luottamukseen” käytetään tässä hyvin erityisessä merkityksessä. Puhumme esimerkiksi luotettavista kolmansista osapuolista eli muista yhteisöistä, joiden luotat tuottavan, säilyttävän ja käsittelevän rahaasi. Oletamme esimerkiksi, että voit luottaa tietokoneeseesi.

Ken Thompson osoitti Turing-palkintoluennossaan luottamuksen olevan erittäin hankala seikka laskennallisessa maailmassa. Ohjelmaa suorittaessasi sinun on luotettava kaikenlaisiin ohjelmistoihin (ja laitteistoihin), jotka teoriassa voisivat muuttaa suorittamaasi ohjelmaa haitallisin tavoin. Thompson tiivistää luottamukseen turvautumista koskevat ajatuksensa: “Tarinan opetus on ilmeinen. Et voi luottaa koodiin, jota et ole luonut täysin itse.”

Thompson osoitti, että vaikka sinulla olisi pääsy ohjelmiston lähdekoodiin, ohjelmointikielen kääntäjä — tai mikä tahansa muu ohjelman käsittelyohjelma tai -laitteisto — voi kuitenkin olla vaarantunut. Tällaisten takaovien havaitseminen on hyvin vaikeaa. Näin ollen käytännössä ei ole olemassa aidosti luottamuksetonta järjestelmää. Sinun pitäisi luoda kaikki ohjelmistosi ja kaikki laitteistosi (kokoonpanijat, kääntäjät, linkkerit jne.) tyhjästä tukeutumatta mihinkään ulkoisiin ohjelmistoihin tai ohjelmistoavusteisiin koneisiin.

Jos haluat leipoa omenapiirakan tyhjästä, sinun täytyy ensin keksiä maailmankaikkeus.
- Carl Sagan

Ken Thompson -hakkerointi on erityisen nerokas ja vaikeasti havaittava takaovi, joten tarkastellaan nopeasti vaikeasti havaittavissa olevaa takaovea, joka toimii mitään ohjelmistoja muuttamatta. Tutkijat keksivät keinon turvallisuuden kannalta kriittisten laitteistojen vaarantamiseen muuttamalla piin epäpuhtauksien polariteettia eli napaisuutta. Muuttamalla vain niiden piisirujen fyysistä rakennetta, jotka ovat nykyaikaisten tietokoneiden kivijalka, tutkijat pystyivät vaarantamaan kryptografisesti aiemmin turvallisena pidetyn satunnaislukugeneraattorin. Tätä muutosta ei voi nähdä, joten näitä takaovia ei kyetä havaitsemaan optimisella tarkistuksella. Menetelmällä, joka on ollut yksi tärkeimmistä tavoista havaita erinäiset yritykset peukaloida näitä nykyaikaisen tietojenkäsittelyn kivijalkana pidettyjä siruja.

Georg T. Becker, Francesco Regazzoni, Christof Paar & Wayne P. Burleson: Stealthy dopant-level hardware Trojans: extended version ( Journal of Cryptographic Engineering)

Kuulostaako pelottavalta? Noh, vaikka pystyisit rakentamaan kaiken tyhjästä, sinun pitäisi silti luottaa taustalla olevaan matematiikkaan. Sinun pitäisi luottaa siihen, että secp256k1 on elliptinen käyrä ilman takaovia. Kyllä, haitallisia takaovia voidaan lisätä kryptografisten funktioiden matemaattisiin perustuksiin, ja luultavasti näin on tapahtunut jo ainakin kerran. Vainoharhaisuudelle on syynsä. Se, että kaikkeen aina laitteistoista ohjelmistoihin ja elliptisiin käyriin asti voidaan asettaa takaovia, on hyvä syy olla vainoharhainen.¨

“Älä luota — todenna”

Edellä mainittujen esimerkkien pitäisi havainnollistaa, että luottamukseton tietojenkäsittely on utopiaa. Bitcoin on luultavasti ainut järjestelmä, joka on lähimpänä tätä utopiaa, mutta silti se on vain luottamukseltaan minimoitu — tavoitteena on poistaa luottamus aina kun se on suinkin mahdollista. Luultavasti luottamuksen ketju on loputon, koska joudut luottamaan myös siihen, että laskenta vie energiaa, P ei ole yhtä suuri kuin NP ja että olet itse asiassa perustodellisuudessa etkä vankina pahantahtoisten toimijoiden simulaatiossa.

Kuvakaappaus: gitian.org

Kehittäjät luovat työkaluja ja menettelytapoja, jotta jäljellä olevaa luottamusta voidaan entisestään vähentää. Esimerkiksi Bitcoin-kehittäjät ovat luoneet Gitianin, joka on ohjelmistojen determinististen sovelluskoontien jakelumenetelmä. Ajatuksena on, että jos useat kehittäjät kykenevät tuottamaan identtiset binaaritiedostot, haitallisen peukaloinnin mahdollisuus on pienempi. Hienot takaportit eivät ole ainoat hyökkäysvektorit. Yksinkertainen kiristys tai uhkailu ovat myös todellisia uhkia. Pääprotokollan tavoin hajauttamista käytetään luottamuksen minimointiin.

Kuvalähde: GNU Guix

Erilaisia ponnisteluja perimmäisen muna vai kana -kysymyksen ratkaisemiseksi käynnistysvaiheessa on jo tehty, jonka Ken Thompson -hakkerointi niin loistavasti osoitti. Eräs tällaisista pyrkimyksistä on ollut Guix (lausutaan geeks), joka käyttää toiminnallisesti ilmaistua pakettienhallintaa, joka jo lähtökohtaisesti mahdollistaa bitti bitiltä toistettavien ohjelmistokoontien rakentamisen. Tulos on se, että sinun ei enää tarvitse luottaa ohjelmistoja tarjoaviin palvelimiin, koska voit varmistua siitä, että tarjottua binaaria ei ole peukaloitu. Voit käytännössä rakentaa ne uudelleen tyhjästä. Hiljattain tehtiin sulautuspyyntö Guixin yhdistämiseksi osaksi Bitcoinin rakennusprosessia.

Oliko ensin muna vai kana?

Bitcoin ei onneksi nojaa yhteen yksittäiseen algoritmiin tai laitteiston osaan. Yksi Bitcoinin radikaalin hajauttamisen vaikutuksista on hajautettu tietoturvamalli. Yllä kuvattuja takaovia ei pidä ottaa kevyesti, mutta on kuitenkin epätodennäköisesti, että jokainen ohjelmistolompakko, laitteistolompakko, kryptografinen kirjasto, solmutoteutus ja kääntäjän ohjelmointikieli olisivat vaarantuneet. Tämä on toki mahdollista, mutta erittäin epätodennäköistä.

Voit luoda yksityisen avaimen luottamatta mihinkään laskentalaitteistoon tai ohjelmistoon. Voit heittää kolikkoa muutaman kerran, vaikka käyttämästäsi kolikosta ja heittotyylistä johtuen tämä satunnaisuuden lähde ei ehkä luo riittävää määrää satunnaisuutta. Sille on syynsä, miksi Glacierin kaltaiset säilytysprotokollat käyttävät kasinolaatuista noppaa yhtenä kahdesta entropian lähteestä.

Bitcoin pakotti minut pohtimaan sitä, mitä se tuo mukanaan, että et oikeastaan luota kehenkään. Se lisäsi tietoisuuttani erilaisten projektien käynnistämiseen liittyvistä ongelmista ja epäsuorasta luottamusketjusta ohjelmistojen kehittämisessä ja suorittamisessa. Se lisäsi myös tietoisuuttani niistä monista eri tavoista, joilla ohjelmistot ja laitteistot saattavat vaarantua.

Bitcoin opetti minua olemaan luottamatta. Älä luota — todenna.

Alas kaninkoloon

--

--

Thomas Brand
Brandin kirjasto

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