Bitcoin

Hvordan fungerer bitcoin mining?

Featured Hvordan fungerer bitcoin mining?

Publisert - 8/31/2019

Bitcoins blokkjede blir sikret av "proof of work" mining. Denne artikkelen forklarer hvilken rolle mining har i bitcoin og hvordan det sikrer blokkjeden. En blokkjede er ikke sikker i seg selv, og uten mining hadde det ikke vært mulig å avgjøre hvilken av flere forskjellige versjoner av blokkjeden som er den riktige.

Hva er en bitcoin-blokk?

En bitcoin-blokk er en datastruktur som enkelt forklart inneholder transaksjoner, referanse til en annen blokk samt litt tilleggsinformasjon. Den første blokken i bitcoin ble minet den 3. januar, 2009, altså for litt over 10 år siden.

En blokk inneholder minst en transaksjon, det er transaksjonen til mineren som generer blokken og blir kalt for “coinbase-transaksjonen”. Den kommer ikke fra noe sted, den har altså ingen “inputs”, kun en “output” til mineren som genererte blokken. Nå er den på 12,5 bitcoin, altså litt i overkant av 1 000 000 kroner med dagens bitcoin-kurs.

I tillegg til “coinbase-transaksjonen” inneholder en blokk vanligvis rundt 2 000 transaksjoner. Antallet avhenger av pågangen, hvor mange som sender transaksjoner, samt størrelsen på disse. Minere velger selv hvilke transaksjoner de vil ha med, og økonomiske insentiver fører til at de prioriterer transaksjonene som betaler mest i “fee” eller gebyr. Om du betaler lite gebyr tar det lengre tid før din transaksjon blir med i en blokk. De fleste bitcoin-lommebøker styrer gebyret automatisk så du slipper å tenke på dette.

Blokkjeden

I tillegg til transaksjoner har enhver bitcoin blokk en referanse til den forrige blokken. På denne måten danner blokkene en kjede. Om du kjører din egen node kan du dermed lett verifisere at du har en gyldig blokkjede ved at enhver blokk har en referanse til den foregående blokken. Du verifiserer også at transaksjonene er gyldige samt at blokkene følger reglene for “proof of work”, det kommer vi til i neste avsnitt.

undefined

Illustrasjonen ovenfor er fra Mempool.space som viser en fin oversikt over de siste bitcoin-blokkene til enhver tid. Her kan for eksempel se når du kan forvente at din transaksjoner blir inkludert i en blokk.

Produksjon av blokker

Du har kanskje hørt at mining er å produsere bitcoin, men det er misvisende. Det minere gjør er å faktisk sikre nettverket. Den første delen av arbeide er å produsere en "block template", det vil si å sette opp en liste av gyldige transaksjoner og passe på at referansen til den forrige blokken er riktig. Dette krever så si ingen datakraft, det er det neste steget de bruker så si all tiden på.

Hashing

I tillegg til at alle transaksjoner skal være gyldige og det skal være en referanse til forrige blokk, kreves det i bitcoin at enhver ny blokk har en hash som er mindre enn en gitt verdi. Det er det minerne bruker tiden sin på, de gjør noe vi kaller for “hashing”.

Hashing er å ta noe data, det kan være hva som helst, og sende det gjennom i hash-funksjon. En hash-funksjon er noe som tar data inn, slik som teksten “bitcoin er gøy” og gir deg noe data ut igjen, i dette tilfellet er SHA-256 hashen “7414e2c4eaedc2fe51d857375fb74ba78f43065172d06f94653797d1d1c16788”. Du kan prøve selv her. 

Som du kanskje ser så blir resultatet helt forskjellig om du endrer bare en bokstav, og det er umulig å vite hva hashen blir på forhold. Det er dette som er poenget. For at en bitcoin-blokk skal være gyldig, må den være mindre enn en viss verdi. Du kan se dette ved at alle block-hashene begynner med et visst antall nuller. Den eneste måten å få dette til på er å prøve og feile.

Det minerne altså gjør er å ta en blokk, hashe den og se hva resultatet blir. Om hashen er for stor, endrer de litt på den, det finnes noen verdier de har lov til å endre, og så prøver de igjen. Om hashen er mindre enn ønsket verdi er blokken gyldig og den blir publisert. Resten av bitcoin-nodene rundt omkring i verden mottar denne, ser at den er gyldig, og den blir lagt til blokkjeden. Deretter starter prosessen på nytt igjen, og sånn går nå dagene for en bitcoin-miner.

undefined

Bildet ovenfor viser en spesialmaskin som miner bitcoin svært effektivt. Hvert eneste sekund regnes det ut 70 000 000 000 000 000 000 hasher på verdensbasis.

Hvordan mining sikrer bitcoin

Som vi har forklart har enhver bitcoin-blokk en referanse til den forrige blokken i kjeden. Hver av disse blokkene har blitt laget ved a minere over hele verden har brukt hundretusener av kroner i strøm og maskinvare for å gjette seg frem til riktig verdi. 

Om noen forsøker å endre på en transaksjon i den siste blokken, må de alene gjøre alt dette arbeidet på nytt igjen, og de må gjøre det raskere enn alle de andre til sammen, for minere bygger alltid videre på den lengste kjeden. Om de ønsker å endre på en transaksjon flere blokker tilbake i kjeden må de lage både den blokken på nytt i tillegg til alle som er kommet etterpå. Jo lengre tilbake en går, desto mer arbeid kreves, og det er umulig å endre blokker langt bak om du ikke har mer datakraft enn hele resten av verdens minere til sammen.

En regner derfor i bitcoin at en transaksjon som har 6 bekreftelser, de vil si har 5 blokker som er bygget på toppen av blokken den er i, er umulig å endre. For de alle fleste transaksjoner er tre bekreftelser mer enn sikkert nok, så hos oss på MiraiEx krediterer vi bitcoin transaksjoner da. Da slipper dere å vente så lenge når dere sender inn bitcoin for å handle hos oss.


Profil

Skrevet av

Øyvind Kvanes
COO

BACK