Bitcoin on tietokoneiden muodostama verkko, jossa ei ole keskuspalvelinta eikä mitään muutakaan valvovaa elintä. Verkko on täysin vapaa, eli kuka tahansa voi liittyä siihen lataamalla open-source-ohjelman omalle koneelleen.
Bitcoin-verkkoa pyörittävät ns. node-palvelimet (suom. solmupalvelin). Niiden tehtävänä on verifioida verkkoon lähetetyt transaktiot sekä lohkoketjun lohkot sen sääntöjen mukaisesti.
Niin sanottu full node-palvelin pitää hallussaan koko bitcoinin lohkoketjua, joka on datamäärältään lähes 200 gigatavua. Kun transaktio on todettu sääntöjen mukaiseksi, se siirretään mempool–nimiseen säilöön. Tämän voi ymmärtää esimerkiksi lajittelukeskuksena.
Seuraavaksi kuvaan astuvat louhijat, jotka poimivat transaktioita tästä kasasta ja kokoavat ne yhdeksi lohkoksi. Tämän jälkeen louhijan rakentama lohko liitetään lohkoketjuun. Transaktioita mahtuu yhteen lohkoon vain rajallinen määrä, mikä voi aiheuttaa ruuhka-aikoina siirtojen viivästymistä.
Bitcoin-verkon louhija on käytännössä erikoisvalmisteinen tietokone, joka on suunniteltu vain louhintatyötä varten. Alkuaikoina louhintaa suoritettiin aivan tavallisilla tietokoneilla ja myöhemmin näytönohjaimilla. Teknologian kehittyessä kuvaan ovat tulleet ASIC-laitteet, joiden tunnetuin valmistaja on kiinalainen Bitmain. Kryptovaluuttojen louhinta voidaan jakaa kahteen pääryhmään: PoW- ja PoS-louhinta.
Lohkoketjun tekniikassa toisilleen vieraat toimijat voivat yhdessä tuottaa ja ylläpitää tietokantoja hajautetusti. Lohkoketju toteutetaan listana tai lokina transaktioista, joka jaetaan osallistujien kesken, jolloin sen voi todentaa monesta lähteestä ja koostaa sen perusteella tietokannan.
Tekniikan ansiosta ketjun jäsenet voivat luottaa toisiinsa, vaikka he eivät tuntisi toisiaan. Jokainen uusi lohko sisältää edeltävän lohkon tiivisteen. Jos lohkoketju on jostain kohdasta haarautunut kahdeksi, jää voimaan se haara, jonka lohkojen yhteenlaskettu vaikeustaso on suurempi. Sen haaran lohkoja, jotka eivät jää voimaan, kutsutaan orpolohkoiksi. Jotta lohkoketjun historiaa voisi muuttaa, pitäisi ensin luoda uudelleen sekä se lohko, johon muutos tulee, että kaikki sen jälkeiset lohkot.
Louhinnan tarkoitus
Louhinnan ensisijainen tehtävä on taata bitcoin-siirtojen pysyvyys ja luoda pysyvä tallenne niiden keskinäisestä järjestyksestä. Tämä on toteutettu määrittelemällä kelvollisen lohkon tiivisteelle tietyt ehdot. Ainoa keino löytää kelvollinen lohko on luoda uusia lohkoja ja laskea niille tiivisteitä niin kauan, kunnes ehdot täyttävä lohko löytyy. Tämän takia louhinta vaatii paljon laskentatehoa.
Ehtoja säätämällä voidaan säätää lohkon löytämiseen tarvittavan laskennan määrää. Kyseistä määrää kutsutaan myös vaikeustasoksi. Lohkoketju muodostuu siitä, että jokainen uusi lohko sisältää sitä edeltäneen lohkon tiivisteen. Jos lohkoketju on jostain kohdasta haarautunut kahdeksi haaraksi, niin voimassa oleva haara on se, jonka lohkojen yhteenlaskettu vaikeustaso on suurempi. Tästä seuraa, että jotta lohkoketjun historiaa voisi muuttaa, pitäisi ensin uudelleenluoda sekä se lohko, johon muutos tulee, että kaikki sen jälkeiset lohkot.
Verkko säätää lohkoilta vaadittavaa vaikeustasoa 2016:n lohkon välein sellaiseksi, että uusi lohko syntyy keskimäärin kymmenen minuutin välein. Louhinnan vaikeusaste siis muuttuu sen mukaan, kuinka louhijoiden yhteenlaskettujen tehojen määrä muuttuu. Aluksi louhintaa tehtiin laskemalla suorittimien (CPU) avulla, mutta grafiikkasuoritinta (GPU) hyödyntävät louhintaohjelmistot ovat syrjäyttäneet CPU:lla louhinnan.
Uusi kehityssuunta tällä hetkellä on ASIC-piirit, joiden laskentateho on moninkertainen CPU- ja GPU-piireihin verrattuna. ASIC-piirien yleistyttyä on odotettavissa, että näytönohjaimilla tehtävä louhinta ei enää tuota edes käyttämänsä sähkön hintaa takaisin. Käyttäjät voivat myös louhia bitcoineja kollektiivisesti, liittymällä niin kutsuttuun pooliin, jolloin palkkiot jaetaan osallisille poolin asetuksista riippuvalla tavalla.
Proof-of-Work (PoW)
Bitcoin-verkkoon ja louhintaan liittyy olennaisena osana Proof of Work (lyhenne: PoW)-konsensusalgoritmi. Kyseessä ei ole mikään uusi keksintö, sillä se on ollut käytössä jo 1990-luvulta lähtien. Yksi PoW:n ensimmäisistä implementoinneista oli Hashcash-niminen virtuaalivaluutta vuonna 1997, jonka perustaja Adam Back on myös yksi bitcoinin kehittäjistä.
PoW:n toimintalogiikkana on datan generointi, joka edellyttää riittävän paljon laskentatehoa (eli työtä). Samaan aikaan tämän informaation oikeellisuus on helppo ja nopea varmistaa verifioijan toimesta. Datan generointi ei saa kestää liian kauan, mutta toisaalta se ei voi olla myöskään liian helppoa. Ideana on tehdä hyökkäys verkkoa kohtaan niin työlääksi, että hakkerin on kannattamatonta käyttää vaadittu työmäärä tavoitteensa saavuttamiseksi.
Hashcashin tapauksessa PoW:n tarkoituksena oli estää turha sähköpostispämmi. Ajattele tilannetta, että tietokoneesi suorittaisi 5 minuutin ajan laskutoimituksia jokaisen sähköpostin lähetyksen yhteydessä. Mailin lähettäminen vaatisi ylimääräistä työtä, mutta laaja spämmäys olisi käytännössä mahdotonta, koska satojen tuhansien sähköpostien lähettäminen tulisi niin kalliiksi.
Bitcoinin tapauksessa edellä mainitut louhintatietokoneet suorittavat vaaditun työn. PoW:n avulla verkkohyökkäys pyritään tekemään kannattamattomaksi. Hakkerin täytyisi tehdä niin paljon työtä virheellisen informaation syöttämiseksi, ettei mahdollinen hyöty kata hyökkäyksen hintaa. PoW-järjestelmissä hyökkääjän täytyisi saada haltuunsa yli 50 % verkon louhintakapasiteetista.
Proof-of-Stake (PoS)
Proof of Work -konsensusalgoritmissa kryptovaluuttojen lohkoketju vaatii toimiakseen fyysisten louhintalaitteiden työtä. Tämä on todennäköisesti merkittävä syy siihen, että ihmiset kuvittelevat kaikkien kryptovaluuttojen toimivan samalla tavalla. Yleistys on vaarallinen ja johtaa myös edellisessä kappaleessa kuvattuun kauhisteluun sähkönkulutuksesta.
Maailman 30 suurimmasta kryptovaluutasta on louhittavia 11 kappaletta. Jos mukaan otetaan 100 suurinta virtuaalivaluuttaa, lukema on 25 kappaletta. Suhde muuttuu yhä enemmän pois PoW-järjestelmistä, mitä uudemmista kryptovaluutoista on puhe. Karkeana yleistyksenä voidaan todeta, että lähes kaikki kahden viime vuoden aikana markkinoille tulleet kryptovaluutat ovat Proof-of-Stake-pohjaisia.
Louhinta ja forkit
Kryptovaluutat noudattavat konsensusperiaatetta, ja toisinaan tapahtuu niin, että kryptovaluutan taustalla oleva yhteisö ei pääse yksimielisyyteen miten ko. valuutan tulisi toimia ja miten sitä tulisi kehittää tulevaisuudessa. Näissä tilanteissa vaihtoehtona on soft fork, joka tarkoittaa protokollan päivitystä, tai hard fork, joka eriyttää louhijat louhimaan eri lohkoketjuja
Soft fork
Päivitys lohkoketjun protokollassa voi aiheuttaa ketjun haarautumisen. Tämä tapahtuu, kun yksi kone alkaa jakaa vanhalla versiolla ylläpidettyä tilikirjaa. Vanhan tilikirjan transaktioita ei vahvisteta lohkomisvaiheessa, joten vanha haara kuihtuu pois.
Hard fork
Lohkoketjusta eriytetään tietoisesti uusi ketju, joka jatkaa elämäänsä erillään alkuperäisestä lohkosta. Uudessa ketjussa on sama historia, mutta se ei ole enää synkronoitu alkuperäisen lohkoketjun kanssa.
Isoja hard fork-tapahtumia on ollut sekä bitcoin-, että Ethereum-skeneissä. Bitcoinin tunnetuin hard fork-tapahtuma tehtiin elokuussa 2017, jolloin bitcoin jakautui 2 ketjuun: Bitcoin (BTC) ja Bitcoin Cash (BCH). Bitcoinin omistajat saivat Bitcoin Cash-valuuttaa suhteessa 1:1. Sittemmin bitcoinin alkuperäisen ketjun suosio on kasvanut portaittain, samaan aikaan kun Bitcoin Cash on heikentynyt huomattavasti.
Ethereum-yhteisön tunnetuin hard fork tapahtui jo 2016, DAO-hakkeroinnin jälkiseurauksena. Ethereumin päähenkilöt päättivät ”kumota” hakkerin aiheuttamat vahingot muuttamalla alkuperäisen Ethereum-verkon rakennetta. Kaikki yhteisön jäsenet eivät hyväksyneet muutosta muuttumattomuusperiaatteen (engl. immutability) takia, ja seurauksena syntyi Ethereum Classic (ETC).
Ethereum (ETH) edustaa siis uudempaa forkattua verkkoa ja Ethereum Classic (ETC) vanhaa, muuttumatonta järjestelmää. Lohkoketjujen ominaispiirteenä on, että kuka tahansa voi tehdä oman forkin julkisesta lohkoketjusta, ja kyseisiä projekteja onkin paljon. Eri asia on tietenkin se, saavuttaako uusi fork tarvittavaa suosiota menestyäkseen alkuperäisen lohkoketjun rinnalla.
Louhinnan tulevaisuuden näkymät
Louhinnasta kilpailee tällä hetkellä siis kaksi protokollaa: Proof-of-Work (PoW) ja Proof-of-Stake (PoS). Kumpi näistä protokollista on dominoiva tulevaisuudessa? Se jää nähtäväksi. Toistaiseksi perinteinen bitcoinin louhintaperiaate on pysynyt vallitsevana. Vaikka PoW-periaatetta pidetään paljon sähköä kuluttavana, sitä voidaan hyödyntää myös uusiutuvia energiamuotoja käyttäen. Tästä hyvänä käytännön esimerkkinä on Upstream Data, joka hyödyntää kanadalaista hukkakaasua louhintaprosessiin.