Kaikkien kryptovaluuttojen toiminta pohjautuu kryptografiaan, mutta mitä kryptografia on? Entä mitä ovat julkisen avaimen kryptografia, digitaaliset allekirjoitukset ja tiivistefunktiot? Tässä blogitekstissä syvennytään muun muassa näihin asioihin.
Last updated: 10.03.2023 15:30Kryptografia
Kryptovaluutta-sana muodostaa kahdesta sanasta, joista toinen on valuutta, jolla tarkoitetaan rahaa sekä sanasta krypto, joka viittaa puolestaan kryptografiaan. Kryptografia on kuitenkin monille kryptovaluuttoja omistaville henkilöille varsin vieras aihe. Kryptografia-sanan englanninkielinen versio cryptography pohjautuu kreikan kielen sanaan salainen tai piilossa, jotka antavat viitteitä siitä, millaisia asioita kryptografia käsittelee.
Käytännössä kryptografialla tarkoitetaan informaation salaamista ja salauksen purkamista kolmansien osapuolten läsnäollessa. Kryptografia on nykyisessä maailmassamme erittäin tärkeää, sillä kryptovaluuttojen lisäksi kryptografiaa hyödynnetään muun muassa salasanajärjestelmissä ja pankkimaailmassa.
Julkisen avaimen kryptografia ja digitaaliset allekirjoitukset
Kryptovaluuttojen kohdalla on aiheellista perehtyä kryptografian salausmenetelmistä etenkin julkisen avaimen kryptografiaan (engl. public-key cryptography). Julkisen avaimen kryptografialla tarkoitetaan salausmenetelmää, jossa käytetään avainpareja. Jokainen näistä avainpareista koostuu julkisesta avaimesta sekä yksityisavaimesta, ja nämä avaimet ovat matemaattisesti yhteydessä toisiinsa. Julkisella avaimella tarkoitetaan nimensä mukaisesti avainta, jota voidaan levittää vapaasti ilman informaation turvallisuuden vaarantamista. Yksityisavain on nimensä mukaisesti puolestaan yksityinen eli sen tulee olla vain informaation omistajan tiedossa. Julkisen avaimen kryptografia mahdollistaa yhden kryptovaluuttojen tärkeimmistä ominaisuuksista eli siirtojen tekemisen ilman kolmatta osapuolta, kuten pankkia.
Esimerkiksi Bitcoinin verkon siirtojen toiminta perustuu julkisen avaimen kryptografiaan ja digitaalisiin allekirjoituksiin. Bitcoin-siirtoa varten tarvitaan siirron lähettävän lompakon julkinen avain ja yksityisavain sekä siirron vastaanottajan julkinen avain. Siirron lähettävän henkilön tulee todistaa yksityisavaimella, että hän on siirron lähettävän lompakon omistaja. Lompakon omistajuus todennetaan käyttämällä yksityisavainta digitaalisen allekirjoituksen tekemiseen. Tässä tapauksessa ei puhuta kuitenkaan mistä tahansa digitaalisesta allekirjoituksesta, vaan juurikin julkisen avaimen kryptografiaan pohjautuvasta digitaalisesta allekirjoituksesta.
Digitaalinen allekirjoitus on periaatteeltaan samantapainen kuin fyysinenkin allekirjoitus. Digitaalista allekirjoitusta voidaan pitää kuitenkin fyysistä allekirjoitusta merkittävästi turvallisempana ja luotettavampana. Digitaalisesti allekirjoitettua siirtoa ei voida esimerkiksi muokata jälkikäteen, sillä mikä tahansa toteutettu muutos tuottaisi täysin erilaisen digitaalisen allekirjoituksen. Julkisen avaimen kryptografian perusperiaatteen mukaisesti yksityisavainta tarvitaan digitaalisen allekirjoituksen tekemiseen, mutta allekirjoituksen varmentaminen onnistuu keneltä tahansa julkisen avaimen ja siirron tekemiseen käytetyn allekirjoituksen avulla ilman tarvetta yksityisavaimelle.
Tarkemmin teknisesti digitaalisia allekirjoituksia tarkasteltaessa Bitcoin siirtyi vuoden 2021 lopulla tapahtuneen Taproot-päivityksen myötä käyttämään digitaalisia Schnorr-allekirjoituksia. Aiemmin käytössä olleeseen ja useiden kryptovaluuttojen käyttämään elliptisten käyrien allekirjoitusalgoritmiin (engl. Elliptic Curve Digital Signature Algorithm, ECDSA) verrattuna Schnorr-allekirjoitukset tarjoavat Bitcoinille paremman laskennallisen tehokkuuden, tallennustilan ja yksityisyyyden.
Tiivistefunktiot kryptovaluuttojen louhinnassa
Kryptovaluuttojen, kuten Bitcoinin, louhinnassa käytetään tiivistefunktioita, kuten SHA-256:a, joiden avulla voidaan varmistaa tiedon oikeellisuus. Tämän lisäksi SHA-256:a käytetään kryptovaluuttalompakoiden osoitteiden generoimiseen. SHA-256-toiminnon perusideana on, että toimintoon voidaan syöttää satunnaisen muotoinen ja mittainen sisääntuloarvo, josta SHA-256 muodostaa kiinteän mittaisen ulostuloarvon. Tätä prosessia kutsutaan hashaamiseksi (engl. hashing). Hashaamista on mahdollista kokeilla tällä sivulla.
SHA-256 on tehokas toiminto, sillä se on yksisuuntainen. Tällä tarkoitetaan, että kuka tahansa voi käyttää SHA-256:a syöttämällä sisääntuloarvon ja saamalla tällöin ulostuloarvon. Tästä seuraa, että oikean ulostuloarvon tarkistaminen sisääntuloarvon avulla on erittäin helppoa ja nopeaa. Tämä ei kuitenkaan toimi toiseen suuntaan, koska ulostuloarvosta on käytännössä mahdotonta muodostaa alkuperäinen sisääntuloarvo, sillä jo yhdenkin merkin ero syötetyssä sisääntuloarvossa tekee ulostuloarvosta täysin erilaisen. Esimerkiksi "Aurinko paistaa" -lauseen SHA-256-tiiviste on seuraavanlainen: "74bd46b630add6287ffad5dda9d07d47475063e5a70b217dce06c47c1f432265". Jos lauseen perään lisätään yksikin merkki, kuten piste, tulee tiivisteestä täysin erilainen. "Aurinko paistaa." -lauseen tiiviste on seuraavanlainen: "cc3f222931f67a874ae45efc29bf504915564bb4e3617743fef8d0f2a73c6ea3".
Kryptovaluuttojen, kuten Bitcoinin, louhinnassa SHA-256-tiivistefunktiolla on erittäin keskeinen rooli. Bitcoinin louhinnassa louhijat, eli erittäin tehokkaat tietokoneet, kilpailevat siitä, mikä louhija arvaa ensimmäisenä oikean tavan uuden Bitcoinin lohkon esittämiseen. Käytännössä louhijat arvaavat uuden lohkon tiivistettä muuttamalla yhden muuttujan arvoa, kunnes jokin louhija löytää tiivisteen, joka on riittävän lähellä oikeaa, eli se täyttää senhetkisen verkon minimivaatimuksen. Tämän jälkeen louhija saa oikeuden lisätä uuden lohkon osaksi Bitcoinin lohkoketjua.
Yhteenveto
Kryptografia on nykyään lähes kaikkien ihmisten jokapäiväiseen elämään vaikuttava aihe, vaikkei omistaisi tai käyttäisi kryptovaluuttoja. Julkisen avaimen kryptografia ja digitaaliset allekirjoitukset ovat merkittävässä osassa mahdollistamassa kryptovaluuttojen siirtoja ilman kolmatta osapuolta. Tiivistefunktiot ovat puolestaan mahdollistamassa kryptovaluuttojen louhintaa sekä kryptovaluuttalompakoiden osoitteiden generoimista.
Ville Viitaharju Kryptovaluutta-asiantuntija