Hvordan fungerer en blokkjede?
Hvordan fungerer en blokkjede?
HomeArticles
Hvordan fungerer en blokkjede?

Hvordan fungerer en blokkjede?

Viderekommen
Published Dec 9, 2018Updated Jun 29, 2022
5m

Hva er blokkjede?

Kort sagt er en blokkjede en liste over dataposter som fungerer som en desentralisert digital hovedbok. Dataene organiseres i blokker som er ordnet kronologisk og sikret med kryptografi
Den tidligste modellen av en blokkjede kom på begynnelsen av 1990-tallet da informatikeren Stuart Haber og fysikeren W. Scott Stornetta brukte kryptografiske teknikker i en kjede av blokker som metode for å sikre digitale dokumenter mot datamanipulering. 
Arbeidet til Haber og Stornetta var en stor inspirasjon for arbeidet til mange andre informatikere og kryptografientusiaster – som til slutt førte til at Bitcoin ble etablert, som det første desentraliserte elektroniske kontantsystemet (eller rett og slett den første kryptovalutaen).

Selv om blokkjedeteknologien er eldre enn kryptovaluta, var det først etter etableringen av Bitcoin i 2008 at potensialet begynte å bli anerkjent. Siden den gang har interessen for blokkjedeteknologi vokst gradvis, og kryptovalutaer blir nå anerkjent i større skala.

Blokkjedeteknologi brukes mest til å registrere kryptovalutatransaksjoner, men den passer også til mange andre typer digitale data og har et bredt spekter av bruksområder. Det eldste, sikreste og største blokkjedenettverket er Bitcoin, som ble grundig designet med en balansert kombinasjon av kryptografi og spillteori.


Hvordan fungerer en blokkjede?

I forbindelse med kryptovaluta består en blokkjede av en stabil kjede av blokker der hver av dem lagrer en liste over tidligere bekreftede transaksjoner.  Siden blokkjedenettverket vedlikeholdes av et svært høyt antall datamaskiner som er spredt over hele verden, fungerer det som en desentralisert database (eller hovedbok). Dette betyr at hver deltaker (node) har en kopi av blokkjededataene, og de kommuniserer med hverandre for å sikre at alle har de samme dataene (eller blokkene).
Derfor skjer blokkjedetransaksjoner innenfor et globalt peer-to-peer-nettverk, og det er dette som gjør Bitcoin til en desentralisert og grenseløs digital valuta som ikke kan sensureres. I tillegg anses de fleste blokkjedesystemer som tillitsløse, fordi de ikke krever noen form for tillit. Det er ingen enkelt autoritetsperson som har kontroll over Bitcoin.
En sentral del av nesten alle blokkjeder er prosessen med mining, som er avhengig av hashing-algoritmer. Bitcoin bruker SHA-256-algoritmen (sikker hash-algoritme 256 bits). Den godtar inndata av en hvilken som helst lengde og genererer utdata som alltid har samme lengde. Utdata som produseres, kalles en "hash" og består, i dette tilfellet, alltid av 64 tegn (256 bit).

Og samme inndata vil resultere i samme utdata, uansett hvor mange ganger prosessen gjentas. Men hvis det gjøres en liten endring i inndataene, vil utdataene endre seg fullstendig. Hash-funksjoner er på den måten deterministiske, og i kryptovalutaverdenen er de fleste av dem designet med en enveis-hashfunksjon.

Enveisfunksjonen innebærer at det er nesten umulig å beregne hva som var inndataene, basert på utdataene. Man kan bare gjette hva inndataene var, men oddsen for å gjette riktig er ekstremt lav. Dette er en av grunnene til at Bitcoins blokkjede er sikker.

Nå som vi vet hva algoritmen gjør, skal vi demonstrere hvordan en blokkjede fungerer, med et enkelt eksempel på en transaksjon.

Anne og Bjørn har hver sin Bitcoin-saldo. Og Anne skylder Bjørn 2 Bitcoin.

For at Anne skal kunne sende Bjørn 2 Bitcoin, sender Anne en melding med transaksjonen hun ønsker å gjøre, til alle minere i nettverket.
I denne transaksjonen oppgir Anne Bjørns adresse og antall Bitcoin hun skal sende til minerne, sammen med en digital signatur og sin offentlige nøkkel. Signaturen utføres med Annes private nøkkel og minerne kan bekrefte at Anne faktisk eier disse myntene.

Når minerne er sikre på at transaksjonen er gyldig, kan de legge den i en blokk sammen med mange andre transaksjoner og forsøke å mine blokken. Dette gjøres ved å sende blokken gjennom SHA-256-algoritmen. Utdataene må starte med et visst antall 0-er for å anses som gyldig. Antall 0-er som trengs, avhenger av noe som kalles "vanskelighetsgraden", som endrer seg avhengig av hvor mye datakraft som finnes på nettverket.

For å produsere en utdata-hash med ønsket antall 0-er i starten, legger minerne til noe som kalles en "nonce" i blokken før de kjører den gjennom algoritmen. Ettersom en liten endring i inndataene fullstendig endrer utdataene, prøver minerne tilfeldige noncer helt til de finner en gyldig utdata-hash.

Når blokken er minet, sender mineren den nylig minede blokken til alle de andre minerne. De sjekker deretter at blokken er gyldig, slik at de kan legge den til i sin kopi av blokkjeden, og transaksjonen er fullført. Men i blokken må minerne også inkludere utdata-hashen fra forrige blokk slik at alle blokkene henger sammen, derav navnet blokkjede. Denne delen er viktig på grunn av måten tillit fungerer i systemet.

Hver miner har sin egen kopi av blokkjeden på datamaskinen sin, og alle stoler på den blokkjeden som inneholder mest data, altså den lengste blokkjeden. Hvis en miner endrer en transaksjon i en tidligere blokk, vil utdata-hashen for den blokken endres, noe som fører til at alle hashene etter den også endres, ettersom blokkene blir lenket med hasher. Mineren ville da måtte gjøre alt arbeidet på nytt for å få noen til å godta at denne blokkjeden er den rette. Så hvis en miner ønsker å jukse, trengs mer enn 50 % av nettverkets datakraft, noe som er svært usannsynlig. Nettverksangrep som dette kalles derfor 51 %-angrep.
Modellen for å få datamaskiner til å jobbe for å produsere blokker kalles Proof-of-Work / PoW (arbeidsbevis), og det finnes også andre modeller som Proof-of-Stake / PoS (stakingbevis) som ikke krever så mye datakraft, og som er ment å kreve mindre strøm samtidig som den kan skaleres til flere brukere.