1. Bitcoin valutaen og teknologien, der gør den mulig
Mange har sikkert hørt om bitcoins. Men ikke alle har en forståelse af, hvad en bitcoin egentlig er, og hvorfor det i hele taget kan lade sig gøre at genneføre transaktioner med bitcoins.

Bitcoinen er en kryptovaluta, som kan anvendes til at gennemføre transaktioner med i stedet for fysisk valuta, som vi kender i dag. Hvis en transaktion skal gennemføres i dag, vil det primært foregå gennem banker eller andre tredje part applikationer. Metoder som anvender en tredje part kan med nymoderne teknologi virke unødvendigt, hvor det netop er kryptovaluta som bitcoin teknologien som kan gennemføre transaktioner uden om tredjeparterne. Årsagen til hvorfor dette kan lade sig gøre skyldes teknologien blockchain, men det vender vi tilbage til senere. Bitcoinen er som sagt en af de mest populære kryptovaluta i dag. Bitcoinen og andre kryptovaluta har til formål at undgå banker eller kreditkort virksomheder, når en person skal overføre penge til en anden over nettet. I dag virker det overordnet simpelt at betale over nettet, selvom vi ikke anvender bitcoins. Betaling af en vare til en virksomhed kan en person gøre relativt simpel ved at indtaste kreditkort oplysninger eller i nyere tid mobilpaye direkte til virksomheden.
Bitcoinen er som sagt en af de mest populære kryptovaluta i dag. Bitcoinen og andre kryptovaluta har til formål at undgå banker eller kreditkort virksomheder, når en person skal overføre penge til en anden over nettet. I dag virker det overordnet simpelt at betale over nettet, selvom vi ikke anvender bitcoins. Betaling af en vare til en virksomhed kan en person gøre relativt simpel ved at indtaste kreditkort oplysninger eller i nyere tid mobilpaye direkte til virksomheden. Men det de fleste mennesker ikke har kendskab til, er at kreditkort firmaer eller banker for hver transaktion vil påkræve gebyr på en lille del af handlens værdi. Dette gebyr opkræves som betaling for sikkerheden, som kreditkortvirksomhederne og bankerne giver til kunderne, men hvor nødvendigt er denne sikkerhed og er den overhovedet god nok? Bitcoinen gør nemlig op med denne traditionelle måde at overføre penge på, hvor det er udviklet til at kunne overføre penge helt uden om tredjeparterne. Men nu hvor bankerne og kreditkortvirksomhederne ikke længere er der, hvordan skal køber og sælger så kunne bekræfte, at handlen er overført? Hvordan kan sælgeren være sikker på, at køberen rent faktisk har pengene, og hvordan kan køberen kunne bevise, at han har betalt for varen?

For at kunne få bitcoinen til at virke i praksis kræver det altså, at en transaktion skal kunne gennemføres, således at sælgeren modtager pengene og køberen får en bekræftelse på købet, samtidig med at brugerne har garanti iform af sikkerhed. Denne metode findes og anvendes i dag, hvor måden det foregår på inkluderer at inddrage alle bitcoin brugere, minere som får en transaktion godkendt og en blockchain, hvor hver blok i kæden indeholder informationer for de forskellige transaktioner. Det er det vi skal høre mere om nu.
2. Hvad er en blok?
En blockchain er en kæde sammensat af blokke. Disse blokke er ikke fysiske, men digitale blokke, som er sammensat af forskellige informationer. Disse informationer i blokkene er det mest essentielle, hvorved det de indeholder er data, som skal bruges til en eventuel transaktion eller lignende. En enkelt blok i en blockhain består som regel af følgende:
- Blokkens nummer (nummeret blokken er i kæden)
- En nonce værdi (et tal som bruges til en udregning)
- Data vedrørende eventuelt en transaktion
- En hashværdi (en værdi, som gør kæden unik)
- En hashværdi på den blok, som er bag den i kæden
Hvis vi starter med at kigge på en enkelt blok, som endnu ikke er en del af en blockchain, vil den kunne se ud som:

Vi bemærker her, at der ikke er en værdi, som indikerer hash-værdien på den tidligere blok. Dette skyldes, at denne blok endnu ikke er den af en blockchain, og den tidligere værdi kun anvendes for blokke, der er en del af en blockchain.
Blokkens nummer er kort sagt bare nummeret på, hvor blokken befinder sig i kæden. Hvis der er 3 blokke i kæden, vil den første blok have nummeret 1, hvor den sidste blok så vil have nummer 3.
Nonce-værdien er et heltal, som anvendes senere hen i udregning af hash-væriden (nonce værdi kan i det fleste tilfælde virke lidt overflødig, men den har et vigtigt formål, som vi kommer tilbage til under hash-værdien).
Data i blokken kan være, hvad som helst. I dette tilfælde er teksten i data feltet meget simpel, men det kan være alt for ens navn til “Hello world” til alle ordene i ordbogen. Dataen i blokken indikere noget om, hvad blokkens skal bruges til. Det kan være navne på modtager og afsender af penge og varens navn.
Blokkens nummer er kort sagt bare nummeret på, hvor blokken befinder sig i kæden. Hvis der er 3 blokke i kæden, vil den første blok have nummeret 1, hvor den sidste blok så vil have nummer 3.
Nonce-værdien er et heltal, som anvendes senere hen i udregning af hash-væriden (nonce værdi kan i det fleste tilfælde virke lidt overflødig, men den har et vigtigt formål, som vi kommer tilbage til under hash-værdien).
Data i blokken kan være, hvad som helst. I dette tilfælde er teksten i data feltet meget simpel, men det kan være alt for ens navn til “Hello world” til alle ordene i ordbogen. Dataen i blokken indikere noget om, hvad blokkens skal bruges til. Det kan være navne på modtager og afsender af penge og varens navn.

Billedet her viser kort, hvordan en hash værdi kan udregnes. Vi kan her se inputtet (blå boks) som dataen i en blok og digest (rød boks) er hash-værdien. Den gule blok er bare en hash funktion, som vi er i dette tilfælde er ligeglad med, hvordan ser ud.
Udregningen af denne hash-værdi bliver nemlig også påvirket af de andre informationer fra blokken. Disse værdier er primært nonce-værdien og dataen. Disse værdier bliver givet og hash-værdien udregnes af computeren. Dette vil betyde, at hvis dataen i blokken bliver ændret, så skal hash-værdien også ændres. Vi ser ved vores blok, at hash-værdien er udregnet til at være:
0000775cf6caaff2f110c4abf124bd99e8267ccbc3834d9be0967ae4cd203c69
Denne hash-værdi er således udregnet af teksten i datafeltet ”Data i blokken”, samt nonceværdien 35638. Tilsammen giver daten og nonceværdien altså den overstående unikke hash-værdi, som gør at det er muligt at genkende blokken, og selvom denne værdi er meget lang, er de fire første cifre de eneste vigtige at kigge på. I dette tilfælde er de første fire cifre 0000, hvilket betyder at blokken er godkendt. Hvis der står andet end 0000 vil det betyde, at blokken ikke er godkendt, og at der er noget galt med sammensætningen mellem nonce-værdi og data.
Vi kan prøve at ændre i dataen og se, hvad der sker med blokken:

Vi ser her, at blokkens nummer er det samme, nonce-værdien er det samme, men at dataen og hashværdien er ændret. Det er meningen at man skal kunne ændre i dataen, i tilfælde af at noget skal laves om, men vi ser nu, at den nye hash-værdi ikke starter med 0000, hvilket vil sige, at der er noget galt. Blokken er ugyldig. Det er her, hvor nonce-værdien ender med at spille en meget vigtig rolle. Dette skyldes nemlig, at vi har ændret i dataen, men ikke ændret i nonce-værdien. Vi husker på, at det tal som er vores hash-værdi skal være unikt for hver blok, så vi kan genkende det, så vi bliver nødt til at kunne gøre noget, således vi får den hash-værdi vi ønsker. Dette skal nemlig gøres for at blokken bliver gyldig, så i tilfælde af, at blokken indeholder information om en transaktion af penge, kan gøre denne transaktion mulig.
Måden dette gøres på ved virkelig blokke i en blockchain, f.eks. når nogen overfører kryptovaluta som bitcoin til en anden, er at vi skal have udregnet en ny nonce-værdi, som gør at det matematiske stykke udregner en hash-værdi, som starter med 0000. Vi kender ikke formlen, der udregner hash-værdien, men det er i vores tilfælde også ligegyldigt, fordi det i sidste ende vil være en computer, der udregner det. Men hvordan udregner vi en ny nonce-værdi? Vi ved at hash-værdien ændre sig med dataen og nonce-værdien, så hvis vi har besluttet os for, hvad dataen skal være, så mangler vi kun en nonce-værdi, der får det hele til at gå op. Ja, vi tjekker samtlige nonce-værdier og tjekker om de får hash-værdien til at starte med 0000. Vi tjekker alle heltal fra 1, 2, 3, … indtil vi rammer den nonce-værdi, som giver os 0000$ i hashværdien. Dette vil for et menneske tage ufatteligt lang tid, men får en computer vil det gå merkant hurtigere. Vi kan få systemet til at udregne denne blok for os, hvilket også er den måde, bitcoin minere gør det i virkeligheden. Disse personer vender vi tilbage til, men lad os først kigge på, hvad den rigtige nonce-værdi er for vores nye data:

Vi ser nu, at dataen er den samme, men at nonce-værdien har ændret sig og at hash-værdien nu starter med 0000, hvilket vil sige, at blokken er gyldig. Det er altså lykkedes computeren at finde det tal, som får hash-værdien til at starte med 120535 hvilket er præcis det vi ønskede. Nonce-værdien blev således .
Vi har nu gennemgået de forskellige informationer, som er i en blok. Vi har kigget på nonce-værdierne, som er det heltal, som skal udregnes for at få en den rigtige hash-værdi. Vi har kigget på data informationen og hvordan denne hænger sammen med hash-værdien, og til sidst kiggede vi på, hvordan en hash-værdi anvendes til at gøre en enkelt blok unik. Det sidste vi mangler at kigge på er noget, der hedder block mining, som er en process, der bliver udført af mennesker og computere til at finde den rigtige nonce-værdi.
3. Hvad er blokminere?
Blokmining er den del af blokkens process, som udregner den nonce-værdi, som får hash-værdien til at starte med 0000. Vi har talt om, hvordan en blok bliver gyldig, kun og kun hvis at hash-værdien starter med 0000. Vi er stadig ikke interesserede i udregningsmetoderne, som anvendes til dette, men blok mining er udover dette stadig en af de vigtigste elementer ved en blok og senere ved en blockchain.

Grunden til at vi behøver blok minere skyldes den måde, som hele blockchainen er opbygget på. Vi kan hurtigt tænke, at den smarteste form for blok minere ville være en central computere, som gjorde det for os. På den måde er det samlet et sted, og vi behøver ikke tænke mere over det. Men hele formålet med kryptovaluta som bitcoin er nemlig at undgå denne tredje part. Hvis al bitcoin mining begyndte at foregå det samme sted, ville det resultere i en ny form for tredje part. Vi har derfor brug for noget andet, som ikke skaber dette problem. Løsningen er at gøre blok mining muligt for alle, som er en del af bitcoin industrien. I stedet for en bank eller kreditkort firma ligger tredjeparten nu hos alle brugerne. Denne måde er der ingen der har al magten som en typisk tredjepart.

Tredjeparts magten er derfor fordelt mellem alle, der er en del af bitcoin industrien, og den måde den fungere på er meget simpel. Når en blok skal gøres gyldig (hvilket jo er det vigtigste) bliver den givet videre til et system, hvor den venter på, at den rigtige nonce-værdi bliver udregnet. Så snart den er der, er det muligt for alle brugerne at gøre et forsøg på at udregne den rigtige nonce-værdi. Alle brugerne arbejder mod hinanden, og den bruger der udregner den rigtige nonce-værdi først har vundet. Måden de gør den, er den samme fremgangsmåde som vi nævnte før, nemlig at de udregner den ved hjælp af en computer, hvor de afprøver alle de forskellige heltal indtil de rammer den rigtige.

Men hvad får en blok miner, som får bitcoinen bliver kaldt en bitcoinminer, ud af at bruge sin tid på at udregne disse tal? Dette kan minde lidt om den måde, som bankerne håndtere transaktioner, men for bankernes vedkommende vil de påkræve et gebyr for deres tid, som vil gå ud over både køberen og sælgeren. Måden en bitcoin miner bliver belønnet på er ikke at pålægge nogen form for gebyr, der rammer køberen eller sælgeren, men derimod at blive tildelt bitcoin (valuta) for sin handling. Hvis det lykkes for en person at være den første til at ramme den rigtige nonce-værdi, vil personen ikke blive belønnet med en del af beløbet fra transaktion, men derimod vil der blive generet en nye bitcoin, som mineren får. På denne måde vil minerens tid ikke være spildt, køber og sælger vil ikke blive påvirket og der bliver generet nye bitcoins, som vil være en aktiv del af bitcoin systemet.
4. Hvad er en blockchain?
En blockchain er således, hvad navnet indberettet. En kæde sammensat af de blokke, vi lige har talt så meget om. Hver blok indeholder de samme værdier og bliver udregnet og påvirket på samme måde, men der er en forskel for en seperat blok og en blok, der er en del af en blockchain. Denne forskel er feltet tidligere hash-værdi (eng. previous hash). Før vi kigger på, hvad denne er og dens vigtige rolle, kan vi kigge på en blockchain bestående af tre blokke:

Her ser vi tre blokke, hver med deres nummer (i rækkefølge), hver med deres nonce, data og hash værdi. Dette fungere på nøjagtig samme måde, som hvis blokkene var seperate. Den eneste forskel er nemlig det felt, der hedder \textit{prev}, der er den hash-værdien til den tidligere blok i kæden. Dette er måden, som for kæden til at hænge sammen, nemlig at blokken kender den forrige. Vi ser på dette eksempel, at den første bloks tidligere hash-værdi kun er 000000… hvilket skyldes at det er den første blok, og der derved ikke eksisterer en forrige blok. Vi ser at blok nummer 2’s tidligere hash-værdi er hash-værdien for blok 1 og blok 3’s tidligere hash-værdi er hash-værdien for nummer 2. Denne fremgangsmåde ville forsætte på samme måde, hvis kæden var større. Vi har nu kigget på blockchainen og dens forskellige informationer, som gør den til den datastruktur den er. Blockchainen er intet mindre end sammensætning af blokke, som digitalt er sammensat ved at de kender en unik værdi på den blok bag dem.