15.10.2024

Miten Bitcoin-siirrot toimivat?

Lohkoketju Bitcoin
Miten Bitcoin-siirrot toimivat?

Bitcoin-siirto on monivaiheinen prosessi, joka mahdollistaa bitcoinin siirtämisen käyttäjältä toiselle. Jos haluaa ymmärtää, miten Bitcoin toimii, on Bitcoin-siirto yksi keskeisimmistä osista markkinoiden ensimmäisen ja suurimman kryptovaluutan toimintaa. Tässä blogitekstissä käydään läpi vaiheittain, miten Bitcoin-siirrot toimivat.

              
Bitcoin-siirron vaiheet

Bitcoin-siirto voidaan jakaa kolmeen vaiheeseen:

  1. Toimeenpano (Transacting)
  2. Tiedotus (Broadcasting)
  3. Vahvistuminen (Settlement)
Seuraavaksi käydään läpi Bitcoin-siirron toiminta näiden kolmen vaiheen kautta.

Toimeenpano (Transacting)

Bitcoin-siirron ensimmäinen vaihe on toimeenpano. Toimeenpanovaihe sisältää suhteellisen paljon yksityiskohtia, ja tästä syystä tämä vaihe käydään läpi erikseen käyttäjän näkökulmasta ja teknisestä näkökulmasta.

Käyttäjän näkökulma

Toimeenpanovaiheessa siirron tekevä käyttäjä tekee kaikki siirron toimenpiteet, jotka siirron toteutuminen häneltä vaatii. Siirtoa tekevän käyttäjän näkökulmasta siirron tekeminen on yleensä varsin helppoa, sillä käyttäjän ei yleensä tarvitse palveluiden ja sovellusten ansiosta erikseen toteuttaa jokaista yksityiskohtaa, jota siirron tekeminen teknisestä näkökulmasta vaatii.

Siirtoa tekevän käyttäjän täytyy yleensä tehdä kolme valintaa:

Lähettävä osoite:

Käyttäjän ei tarvitse usein konkreettisesti valita lähettävää osoitetta, sillä tämä tapahtuu yleensä automaattisesti, kun käyttäjä kirjautuu käyttämään jotakin palvelua tai sovellusta.

Vastaanottava osoite:

Siirron vastaanottajan Bitcoin-osoite täytyy täyttää tätä varten olemassa olevaan kenttään. Bitcoin-osoite on noin 30 merkkiä pitkä sarja numeroita ja kirjaimia. Esimerkiksi Bitcoinin perustaja Satoshi Nakamoton ensimmäinen Bitcoin-osoite on "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa". Bitcoin-osoite alkaa osoitetyypistä riippuen jollakin seuraavista: "1", "3" tai "bc1". Joissakin palveluissa ja sovelluksissa vastaanottava osoite on mahdollista lisätä myös skannattavan QR-koodin muodossa.

Lähetettävä määrä:

Lähetettävän bitcoinin määrä tulee täyttää tätä varten olemassa olevaan kenttään. Tämä määrä voi olla käytännössä mitä tahansa bitcoinin pienimmän osan, eli 0,00000001 bitcoinin (satoshi), ja lähettävän Bitcoin-osoitteen saldon väliltä.

Näiden kolmen asian jälkeen siirto tehdään yleensä painamalla "Lähetä" tai "Nosta" -nappulaa. Tämän jälkeen käyttäjän tarvitsee useissa palveluissa vahvistaa siirto vielä kaksivaiheisen tunnistautumisen avulla.

Tekninen näkökulma

Teknisestä näkökulmasta toimeenpanovaiheeseen liittyvät asiat ovat hieman monimutkaisempia. Nämä ovat siis asioita, jotka liittyvät jokaiseen Bitcoin-siirtoon, mutta eivät useissa palveluissa ja sovelluksissa näy siirtoa tekevälle käyttäjälle.

Toimeenpanovaiheeseen liittyvät teknisestä näkökulmasta keskeisesti seuraavat termit:

Julkinen avain (public key):

Julkinen avain on avoimesti jaettavissa oleva avain, josta voidaan luoda Bitcoin-osoite.

Yksityisavain (private key):

Yksityisavain on salassa pidettävä avain, jota käytetään Bitcoin-siirtojen tekemiseen.

Unspent Transaction Output (UTXO):

Unspent Transaction Output (UTXO) on hyvin keskeinen osa Bitcoinia, sillä kaikki olemassa olevat bitcoinit ovat olemassa UTXO:n muodossa. Käydään läpi, mitä UTXO tarkoittaa esimerkin avulla: Bitcoin-osoitteessa A on 1 bitcoin ja tästä osoitteesta ollaan tekemässä 0,8 bitcoinin siirto osoitteeseen B, jossa ei ole ollenkaan bitcoinia.

Edellä mainittu 1 bitcoin on tullut osoitteeseen A yhdellä siirrolla. Termi, jolla tätä 1 bitcoinia kutsutaan, on UTXO. Lompakossa on siis yksi 1 bitcoinin UTXO.

Kun tehdään 0,8 bitcoinin siirto osoitteesta A, jossa on 1 bitcoin, joka koostuu yhdestä 1 bitcoinin UTXO:sta, tapahtuu seuraavaa: Siirtoon käytettävää yhtä UTXO:ta kutsutaan termillä input ja siirron lopputulos on kaksi UTXO:ta, joita kutsutaan termillä output. Ensimmäinen output on 0,8 bitcoinia (lähetettävä määrä), joka menee siirron vastaanottavaan osoitteeseen B. Toinen output on siirtoon käytettävä UTXO (1 bitcoin) vähennettynä lähetettävällä määrällä (0,8 bitcoinia) eli 0,2 bitcoinia. Tämä 0,2 bitcoinia tulee siirron toteuduttua lähettävään osoitteeseen A.

Tämän esimerkin kohdalla tilanne on siis seuraava:

Ennen siirtoa:

A: 1 bitcoin UTXO

B: -

Siirron jälkeen:

A: 0,2 bitcoin UTXO

B: 0,8 bitcoin UTXO

Käytännössä UTXO-mallia voidaan verrata käteisellä maksamiseen: Jos ostaja maksaa 10 € setelillä 8 € ostoksen, saa ostaja vaihtorahaa takaisin 2 €. Tämä 2 € voidaan nähdä vastaavanlaisena kuin edellä käsitelty UTXO.

Edellä läpikäyty esimerkki on varsin yksinkertainen, ja usein siirron tekemiseen tarvitsee käyttää useampaa kuin yhtä UTXO:ta. Toimintaperiaate pysyy kuitenkin samana siirtoon käytettävien UTXO:iden määrästä riippumatta.

Teknisesti toimeenpanovaiheessa tapahtuu seuraavaa:

Bitcoin-siirron tiedot, johon sisältyy muun muassa tiedot siirtoon käytettävistä ja siirrosta seuraavista UTXO:ista, allekirjoitetaan digitaalisesti hyödyntäen lähettävän Bitcoin-osoitteen julkista avainta ja yksityisavainta. Käyttäjän näkökulmasta digitaalinen allekirjoittaminen on seurausta "Lähetä" tai "Nosta" -nappulan painamisesta.

Transaktiomaksu

Toteutusvaiheeseen kuuluu lisäksi olennaisesti sekä käyttäjän että teknisestä näkökulmasta tarkasteltuna transaktiomaksu, joka käsitellään selkeyden ja yksinkertaistamisen vuoksi tässä tekstissä erillisenä osana. Bitcoin-siirroista maksetaan aina transaktiomaksu, joka voidaan nähdä korvauksena louhijoille siirron toteuttamisesta. Transaktiomaksun suuruus muuttuu Bitcoin-verkon käyttöasteen mukaan, eli mitä enemmän siirtoja tehdään, sitä korkeampi transaktiomaksu on. Keskimäärin transaktiomaksut ovat olleet viime vuosina kymmenien senttien tai muutaman euron luokkaa. Useissa palveluissa transaktiomaksu tulee annettuna, eikä siihen voi vaikuttaa. Jos haluaa vaikuttaa transaktiomaksuun, onnistuu tämä usein omassa kryptovaluuttalompakossa.

Tiedotus (Broadcasting)

Toisessa vaiheessa, eli tiedotusvaiheessa, Bitcoin-siirron tiedot lähetetään Bitcoin-verkkoon. Bitcoin-verkossa nodeiksi kutsuttavat Bitcoin-verkon historiaa tallentavat palvelimet varmistavat, että siirto on Bitcoin-verkon sääntöjen mukainen. Kun nodet ovat varmistaneet siirron oikeellisuuden, siirtyy siirto odottamaan mempool (lyhenne sanasta memory pool) -nimiseen paikkaan.

Vahvistuminen (Settlement)

Viimeisenä vaiheena Bitcoin-siirrossa on siirron vahvistuminen. Tässä vaiheessa kuvaan astuu merkittävä Bitcoinin toiminnan osa eli Bitcoinin louhinta. Louhinnan keskiössä ovat tehokkaat, varta vasten Bitcoinin louhintaa varten valmistetut, tietokoneet, joita kutsutaan louhijoiksi. Louhijat kilpailevat laskentateholla siitä, kuka löytää ensimmäisenä ratkaisun ongelmaan ja saa lisätä seuraavan lohkon osaksi Bitcoinin lohkoketjua. Laskentateholla kilpailu on seurausta Bitcoinin käyttämästä Proof of Work -konsensusalgoritmista.

Lohkon lisääminen osaksi Bitcoinin lohkoketjua on keskeinen asia myös Bitcoin-siirron näkökulmasta. Tiedotusvaiheessa mainitusta mempoolista Bitcoin-siirto siirtyy nimittäin seuraavaksi Bitcoin-lohkoon ja osaksi Bitcoinin lohkoketjua. Lohkon lisäämiseen oikeuden voittanut louhija lisää siis lohkoon mempoolissa odottavia siirtoja ja lisää tämän jälkeen lohkon Bitcoinin lohkoketjun viimeisimmäksi lohkoksi.

Bitcoin-siirto ei aina mahdu seuraavaksi lisättävään lohkoon, sillä lohkoon mahtuu vain rajallinen määrä dataa. Lohkoon mahtuvien siirtojen määrä riippuu useammasta eri tekijästä, mutta keskimäärin Bitcoinin lohkokoko, eli yhdessä lohkossa oleva datan määrä, on alle 2 megatavua. Louhijat lisäävät siirtoja lohkoon siirtojen transaktiomaksun suuruuden perusteella, eli mitä suurempi transaktiomaksu on, sitä todennäköisemmin siirto mahtuu seuraavaksi ilmestyvään lohkoon.

Kun lohko, jossa Bitcoin-siirto on, on lisätty osaksi Bitcoinin lohkoketjua, voidaan siirron katsoa olevan toteutettu. Käytännössä siirron katsotaan olevan lopullisesti valmis, kun siirto on saanut 3–6 vahvistusta. Siirrolla on yksi vahvistus, kun siirron sisältävä lohko on lisätty lohkoketjuun, ja tämän jälkeen siirto saa aina yhden vahvistuksen lisää, kun lohkon perään lisätään uusi lohko. Uusi lohko Bitcoinin lohkoketjuun lisätään keskimäärin 10 minuutin välein, jolloin siirto on lopullisesti valmis keskimäärin noin 30–60 minuutissa. Kattavaa reaaliaikaista dataa Bitcoin-lohkoista, -siirroista ja -louhinnasta löytyy esimerkiksi Mempool.space-sivustolta.

Yhteenveto

Bitcoin-siirto koostuu kolmesta vaiheesta: toimeenpano, tiedotus ja vahvistuminen. Toimeenpanovaiheessa määritetään siirron toteutumisen kannalta olennaiset tiedot, jonka jälkeen siirto lähetetään digitaalisella allekirjoituksella. Tiedotusvaiheessa siirron tiedot lähetetään Bitcoin-verkkoon, jossa nodet varmistavat siirron oikeellisuuden. Vahvistumisvaiheessa louhijat lisäävät siirron lohkoon ja lohkoketjuun. Lopullisesti siirto katsotaan valmiiksi, kun se on saanut 3–6 vahvistusta, mikä kestää yleensä noin 30–60 minuuttia.

Ville Viitaharju Kryptovaluutta-asiantuntija
Share the post:
Last updated: 15.10.2024 15:00