Blockhain er en forholdsvis ny teknologi, som har potentialet til at skabe store forandringer for både mennesker og virksomheder. Dette forløb skal give dig en grundlæggende forståelse for, hvad en blockchain er samt en større indsigt i de egenskaber ved blockchains, der gør, at de bliver anvendt flere og flere steder.
Faglige mål:
- Konstruktion af it-system som løsning til en problemstilling
- It-sikkerhed, netværk og arkitektur
- Repræsentation og manipulation af data
- Programmering
- It-sikkerhed, netværk og arkitektur
- Internettets teknologi og sikre kommunikationsformer
- decentraliserede netværk
- Programmering
- funktioner
- variable, sekvenser, løkker og forgreninger
Modul 1: Introduktion og blockchain på papir
Den mest populære anvendelse af blockchains er du måske allerede bekendt med, nemlig bitcoin. Den elektroniske valuta bitcoin optræder ofte i medierne. Bitcoin er baseret på en blockchain, og blockchains indeholder alle informationerne om, hvem der ejer bitcoins.
Kryptovaluta som f.eks. bitcoin er ikke den eneste anvendelse af en blockchain. For at få en større indsigt i dette, skal du nu ud og informationssøge på internettet.
Opgave: |
Hvem har interesse i blockchains, og hvor bliver blockchains brugt? Hvor mange forskellige anvendelser af blockchain kan du finde? Brug evt. link fra listen herunder. |
Links til ressourcer om blockchain
https://videnskab.dk/teknologi-innovation/5-ting-vi-kan-bruge-blockchain-til (maj 2018)
https://sdfe.dk/media/6945/blockchain-rapport-final-feb2018pdf_-tilgaengelig.pdf (februar 2018)
https://da.coin-investments.com/blockchain-startup-onename-launches-passcard-9558
https://tv.ida.dk/video/25218369/techtopia-42-dit-testamente-pa-blockchain (Podcast)
https://www.berlingske.dk/business/maersk-fem-af-de-seks-stoerste-rederier-er-med-paa-blockchain-platform (juli 2019)
https://www.computerworld.dk/art/254977/maersks-blockchain-projekt-har-faaet-gennembrud-i-koelvandet-paa-coronakrise (januar 2021)
https://www.finduddannelse.dk/artikler/tips-og-vejledninger/blockchain-i-uddannelsesbranchen-14026 (november 2021)
https://ida.dk/viden-og-netvaerk/blockchain/blockchain-10-ideer-der-viser-teknologiens-potentiale (februar 2017)
https://ida.dk/viden-og-netvaerk/blockchain/3-ting-som-blockchain-teknologi-goer-muligt (marts 2016)
Når vi bruger IT-systemer på internettet, har vi adgang til en lang række data om os selv og andre mennesker. Data bliver sendt frem og tilbage mellem brugere og servere, og det kan være svært at danne sig et overblik over, hvilke data de enkelte systemer gemmer om os.
I nogle tilfælde ønsker vi slet ikke, at vores data skal opbevares uden, at vi selv har kontrol over det. Stoler vi på, hvem der har adgang til vores data? Opbevarer de vores data sikkert? Kan der blive manipuleret med vores oplysninger? Kan jeg få adgang til mine data i fremtiden?
I sådanne tilfælde kan det være smart, at den database, hvor vores data er opbevaret, ikke er placeret centralt hos en virksomhed eller hos en institution, men derimod fordelt mellem alle brugere i systemet. Hvis man kan lave et system, hvor alle brugerne kan blive enige om, at indholdet af databasen er korrekt, så kan man lave et system, hvor brugerne ikke er afhængige af andre, og hvor alle kan stole på indholdet af databasen.
Distribuerede og centraliserede databaser
En blockchain er en datastruktur til netop denne situation. Kravene til databasen er:
- Tilgængelighed. Der er ikke nogen, der kan beslutte at fjerne adgangen til databasen.
- Tillid. Der er ikke nogen central institution, der har kontrollen over data.
Det mest normale er, at en database er centraliseret. Det vil sige, at der er et firma, der sørger for at vedligeholde databasen, og alle klienterne snakker med den samme databaseserver. Dette er illustreret til venstre på ovenstående figuren.
Hvis et system får mange brugere, der er spredt over et stort område, kan man dele arbejdet ud på flere servere i en decentral database. Dette er illustreret i midten af figuren.
En blockchain er en distribueret database, som vist til højre på figuren. Det vil sige, at alle klienterne har deres egen kopi af databasen og sender opdateringer rundt til hinanden. Man skal ikke have tillid til en bestemt klient, men til netværket som helhed.
I det her forløb skal du lære mere om, hvad en blockchain er, og hvor den kan bruges.
Modul 2: Blockchain på papir
Databasen i en blockchain består af en række af blokke, der hver især indeholder en lille del af databasens data. Når først en blok er indsat i kæden, kan man ikke ændre i blokkens indhold, men kun tilføje nye blokke. For at sikre databasen mod ændringer indeholder hver blok en hash. Hash er en slags fingeraftryk, der vil afsløre, hvis indholdet af en tidligere blok er blevet ændret.
Når man beregner hashværdien for en blok medtages hashværdien fra den forrige blok. På den måde vil alle efterfølgende blokke skulle have en ny hashværdi, hvis indholdet i en tidligere blok skal ændres. I praksis er det umuligt, medmindre man har kontrol over mere end halvdelen af regnekraften i hele netværket.
Videoen demonstrerer, hvordan man opbygger en blockchain med pen og papir.
Nedenfor ser du et eksempel på en korrekt blockchain. Blockchainen er lavet ud fra nøjagtigt det samme spil, som du selv lige har taget del i.
Eksempel på blockchain
Genesis blokken, som også er blok 0, starter blockchainen. Genesis blokken har ikke noget indhold.
Blok 1 indeholder hashen fra genesis blokken og oplysninger om, hvem der har slået, hvad der er slået og hvor mange slag der er brugt på det. Ud fra blokkens indhold er der genereret en ny hash. Fremover vil alle blokke indeholde informationer om person, antal øjne og antal slag.
Blok 2 indeholder hashen fra blok 1. Prøv at tjekke om hashen fra blok 1 står rigtigt på blok 2. Ud fra blokkens indhold er der genereret en ny hash.
Blok 3 indeholder hashen fra blok 2. Prøv at tjekke om hashen på blok 3 er regnet ud. Ud fra blokkens indhold er der genereret en ny hash.
I jeres klasselokale hænger der nu et antal korte blockchains. Det er jeres opgave at tjekke dem for fejl. Der kan opstå fire typer af fejl i en blockchain.
Type 1: Hashkollision
Hashkollision opstår, når to hashes er ens.
Type 2: Fejl i udregning af hashen
Hashfunktionen er ikke udregnet korrekt.
Type 3: Ændring af indhold i blokken
Efter at hashen er blevet udregnet, er der blevet ændret i indholdet af blokken, så hashen ikke længere passer.
Type 4: Meningsløst indhold
Blokkens indhold giver ikke mening i forhold til det, der kan stå i blokken.
Opgave
Find fejlene i blockchains og skriv ned, hvilken type fejl det er, og hvordan du har fundet ud af, at det er denne fejl.
Modul 3: Kryptovaluta og mining
Hver ny blok i en blockchain indeholder en liste af transaktioner, som skal registreres. I en kryptovaluta vil transaktionerne være overførsler af beløb mellem brugerne. I andre blockchains vil det være andre ressourcer, der overføres. Alle brugerne i netværket skal kunne blive enige om, at indholdet af den nye blok er gyldig. Denne proces kaldes for proof of work.
I terningespillet udregnede du en simpel hashfunktion til at signere hver blok. I virkeligheden er hashfunktionerne mere sofistikerede for at sikre, at man kan stole på den nye blok. Hashfunktionen skal have den egenskab, at hvis bare ét eneste bit i blokken ændrer sig, så vil hashværdien se fuldstændig anderledes ud.
I mange kryptovalutaer, som f.eks. i bitcoin, er der et krav om, at hashværdien skal starte med et antal 0’er. Lige nu er der 20 0’er i bitcoin. Fordi det ikke er muligt at forudsige, hvordan hashværdien vil se ud, er der ikke andre muligheder end at prøve sig frem, indtil man finder en værdi, der giver en gyldig hash.
Hver gang der skal tilføjes en blok til bitcoins blockchain, skal der altså gættes på tilfældige værdier, indtil man ved et lykketræf rammer en hashværdi, der starter med 20 0’er. Det kræver mange forsøg, og det koster desuden mange ressourcer. Til gengæld er der en stor belønning til den, der lykkes med gættelegen.
Overalt i verden investerer folk tid og penge i at mine blokke til bitcoin. Det, at folk ønsker at investere i bitcoin, er med til at give andre mennesker tillid til systemet. Det er en nødvendighed, at der er mange, der deltager, for at sikre blockchainen mod snyd.
Til gengæld er blockchains, som bruger proof of work, også under kritik for det høje strømforbrug, som er nødvendigt for at deltage i miningen. Bitcoins årlige energiforbrug estimeres i 2022 til ca. 147 TWh [1], hvilket er lidt mere end hvad lande som Polen og Sverige forbruger. Der findes dog alternativer til proof of work, som bruger markant mindre energi.
Du kan læse mere om mining her:
https://www.dr.dk/nyheder/viden/teknologi/hvad-er-bitcoin-mining
Kilder: [1] Bitcoins energiforbrug:
https://ccaf.io/cbeci/index
Link til dataekspeditioners blockchainsimulator:
https://blockchain-sim.dataekspeditioner.dk/
Modul 4: NFT Marked
Link til dataekspeditioners blockchainsimulator:
https://blockchain-sim.dataekspeditioner.dk/