blokkjede

Viktige milepæler i utvikling blokkjede-teknologi

1982

David Chaum foreslår en teoretisk blokkjede protokoll. 

1992

Forslag om å benytte Merkle-tre for å strukturere transaksjoner i en blokk

2008

Satoshi Nakamoto lanserer Bitcoin, som er den første praktiske implementasjonen av en blokkjede. 

2018

Blokkjeder er på toppen av Gartner's "hype-cycle", som betyr at blokkjeder ble ansett som en av de mest lovende teknologiene dette året.

En blokkjede er en desentralisert og distribuert digital «regnskapsbok» som gjør det mulig å registrere, spore og synliggjøre alle digitale transaksjoner. En blokkjede lagrer data i blokker som linkes til hverandre ved bruk av kryptografi. Den mest velkjente bruken av blokkjeder er Bitcoin og andre kryptovaluta.

Faktaboks

også kjent som:

engelsk 'blockchain'

Blokkjeder er resistente mot endringer av data som er lagret i regnskapsboken. Det er fordi data som er allerede er lagret, ikke kan endres uten å endre alle data som er lagret i etterkant, noe som er svært vanskelig å gjennomføre i praksis. Dette gjør blokkjeder spesielt godt egnet i situasjoner hvor det er manglende tillit til de som administrerer data.

En blokkjede er distribuert administrert av et såkalt peer-to-peer-nettverk. Dette sikrer at det ikke er en sentral administrator av blokkjeden. På denne måten kan en blokkjede beskrives som en åpen og distribuert regnskapsbok som kan lagre transaksjoner mellom to eller flere parter på en verifiserbar måte.

Historie

Den første som foreslo konseptet blokkjede, var David Chaum i 1982. Dette var et teoretisk arbeid som ble bygget videre på av blant annet Stuart Haber og W. Scott Stornetta på 1990-tallet.

Den første implementasjonen av en blokkjede ble gjennomført av Satoshi Nakamoto i 2008, som en del av utviklingen av Bitcoin. Satoshi Nakamoto er et pseudonym, og ingen vet hvem som står bak denne identiteten, eller om det er én person eller en gruppe av personer.

Som en følge av populariteten til Bitcoin ble også generelle blokkjeder popularisert. I dag er blokkjedeteknologi et viktig forskningsområde ved flere universiteter. Mange bedrifter og offentlige department — både i Norge og internasjonalt — er i en fase hvor de vurderer om blokkjedeteknologi kan effektivisere arbeidsprosesser og legge grunnlag for nye forretningsmuligheter.

Oppbygning av en blokkjede

En blokkjede med 7 blokker. En blokkjede starter alltid med foreldreblokken (farget blå i figuren). Fra denne blokken linkes det til nye blokker etterhvert som data skal lagres og blir samlet i en ny blokk. Alle blokkene refererer til den forrige blokken ved at hakkeverdien av den forrige blokken er inkludert i den nye blokken. Når det er avgreninger vil konsensus-algoritmen sørge for at en av grenene blir gjeldende (farget sort i figuren). De andre grenene (farget grønne i figuren) blir ikke bygd videre på og dermed forkastet.

Navnet blokkjede kommer av at kjeden er bygget opp av transaksjoner arrangert i sammenhengende blokker.

En blokkjede starter alltid med en «foreldre-blokk» (blokk 0). I denne foreldreblokken vil det lagres data. Disse dataene kan være hva som helst, men typiske data som lagres kan være finansielle transaksjoner, for eksempel «Anne gir 10 kroner til Per». Når en bestemt mengde slike data er registrert, vil selve blokken bli produsert. En blokk består av:

  • en tallverdi som bare benyttes én gang
  • hakkeverdien til forelder-blokken
  • et tidsstempel
  • en hakkeverdi av transaksjoner i blokk-kroppen.

Transaksjonene i blokken er lagret i form av et såkalt Merkle-tre. En hakkeverdi er en funksjon hvor inn-parameteren er en vilkårlig mengde data (for eksempel en blokk) og der funksjonen returnerer en fast tallverdi. Funksjonen er bygd slik at man ikke klarer å regne seg tilbake fra tallverdien til inn-parameteren, og sannsynligheten for at to forskjellige inn-parametere resulterer i samme tallverdi er svært liten.

En ny blokk legges til jevnlig til blokkjeden. For eksempel i Bitcoin legges det til en ny blokk hvert 10. minutt, mens i kryptovalutaen Etherum legges det til en ny blokk hvert 15. sekund.

Verifisering av blokker

Et grunnleggende problem i distribuerte digitale betalingssystemer er at digitale data lett kan bli duplisert eller forfalsket. I sentraliserte systemer er dette enkelt å håndtere fordi en tredjepart kan kontrollere og verifisere at penger ikke bare har oppstått fra ingenting eller blitt brukt før. I distribuerte systemer derimot, er det ingen tredjepart som overser transaksjoner.

For å løse dette problemet må mange servere, også kalt noder, lagre identiske kopier av en offentlig «regnskapsbok» og verifisere at transaksjonene er riktige. Men når en transaksjon blir sendt til nettverket, kan den komme frem til ulike servere på ulike tidspunkt. Ettersom den transaksjonen som kommer frem først, er den som regnes som den «ekte» transaksjonen, oppstår det konflikter mellom de ulike regnskapsbøkene. Ettersom hver regnebok sin observasjon regnes som like ekte, blir det umulig å si hvem som har rett. For å løse dette problemet og få regnskapsbøkene synkronisert igjen bruker desentraliserte betalingssystemer en såkalt konsensus-algoritme.

Bitcoin-blokkjeden bruker for eksempel konsensusalgoritmen «proof-of-work», som går ut på at den serveren som klarer å bevise at en viss mengde regnekraft har blitt brukt for å verifisere transaksjonene, regnes som å ha den riktige regneboken.

Transaksjon

Når man snakker om transaksjoner på en blokkjede, snakker man om overføring av en verdifull ting (for eksempel valuta) direkte mellom to parter. Sikkerheten til en transaksjon på en blokkjede avhenger av digitale signaturer, og mer spesifikt Public Key Infrastructure (PKI). All din eiendom—for eksempel valuta—er lagret på din private kryptonøkkel og kan sees av andre ved å se på din offentlige kryptonøkkel.

En transaksjon foregår på følgende måte

Du har to personer: Alice og Bob. Bob har lyst til å sende penger til Alice. For å gjøre dette bruker han sin private nøkkel til å signere en melding med detaljene om denne transaksjonen. Denne meldingen inneholder:

  • Inndata: Alle transaksjoner som har blitt sendt til Bob før for å garantere at Bob har nok penger tilgjengelig.
  • Mengde: Hvor mye Bob vil sende til Alice
  • Utdata: Alice sin offentlige nøkkel.

Meldingen blir så sendt til hele det distribuerte nettverket (peer-to-peer nettverket), og arbeidere («minere») verifiserer at inndata stemmer og at Bob har tilgang til de pengene han hevder å ha tilgang til. Denne verifiseringen kalles mining. Alice kan så bruke sin private nøkkel for å få tilgang til pengene Bob sendte henne.

Virkemåten til en transaksjon i en blokkjede. En transaksjon blir initiert og lagt til en blokk. Når blokken er full med transaksjoner, potensielt fra mange ulike kilder, vil den bli distribuert og validert av nettverket. Det er "minere" som validerer en slik transaksjon. Når den er validert blir blokken lagt til i blokkjeden og transaksjonen gjennomføres.
.
Lisens: CC BY SA 3.0

Bruksområder

Det viktigste bruksområdet for blokkjeder i dag er som en regnskapsbok for kryptovaluta. I tillegg kan blokkjeder erstatte sentraliserte databaser hvor graden av tillit til den sentrale administratoren (den som kontrollerer databasen) er svært lav.

Et annet bruksområde for blokkjeder er innen smarte kontrakter—avtaler som kan gjennomføres automatisk uten menneskelig interaksjon. Slike kontrakter inneholder betingelser som må være på plass for at kontrakten skal oppfylles. Et eksempel er ved leie av en bolig. En leietaker må overføre penger til utleier sin konto. Når pengene er overført til denne kontoen, vil den smarte kontrakten automatisk overføre en kode til leietaker som benyttes for å åpne inngangsdøren til boligen. På den måten kan den smarte kontrakten automatisere utleieprosessen.

Les mer i Store norske leksikon

Kommentarer

Kommentaren din publiseres her. Fagansvarlig eller redaktør svarer når de kan.

Du må være logget inn for å kommentere.

eller registrer deg