Blokkjedeteknologier (DAT650)

Faget gir innsikt i forskjellige teknologier og modeller for blokkjedesystemer og praktisk erfaring med utvikling av smarte kontrakter.


Dette er emnebeskrivelsen for studieåret 2023-2024. Merk at det kan komme endringer.

Fakta

Emnekode

DAT650

Versjon

1

Vekting (stp)

10

Semester undervisningsstart

Høst

Antall semestre

1

Vurderingssemester

Høst

Undervisningsspråk

Engelsk

Innhold

Faget gir innsikt i forskjellige teknologier og modeller for blokkjedesystemer.

Den første delen, inspirert av bitcoin, dekker grunnleggende komponenter av en blokkjede, som datastrukturer, validering av transaksjoner, og proof of work mekanismen. Denne delen dekker også flere mulige angrep på bitcoin. Foreslåtte forbedringer, samt alternative konsensusmekanismer blir diskutert.

Den andre delen av faget dekker voteringskonsensus og byzantin feiltolerante systemer og deres anvendelse innen lukkede blokkjeder. Flere systemer med forskjellige feilmodeller og antakelser vil bli presentert, inkludert systemer som er robuste mot ondsinnede og egoistiske noder.

I tredje del fokuserer vi på smartkontraktsprogrammering, sikkerhet for smarte kontrakter og applikasjoner.

I tillegg til forelesningene må studentene lese og diskutere noen relaterte forskningspublikasjoner. I laboppgavene og prosjektet vil studentene jobbe med mining i en proof-of-work blokkjede og implementere en sikker applikasjon gjennom smarte kontrakter.

Læringsutbytte

Kunnskap:

  • Kjenne til forskjellige modeller for blokkjeder med både åpent og lukket medlemskap.
  • Kjenne til forskjellige konsensus algoritmer som brukes for blokkjeder og deres sannsynlighetsgarantier.
  • Kjenne til smarte kontrakter og forskjellige modeller for utførelsen av disse.
  • Kjenne til kryptografiske primitiver som brukes i blokkjeder.

Ferdigheter:

  • Være i stand til å utvikle applikasjoner basert for kjøring på en blokkjede.
  • Kunne resonere rundt systemer og applikasjoner som involverer blokkjede teknologi.

Generell kompetanse:

  • Vite hvordan og når man kan bruke blokkjedeteknologier.

Forkunnskapskrav

Ingen

Anbefalte forkunnskaper

DAT510 Sikkerhet og sårbarhet i nettverk, DAT520 Distribuerte systemer
Noen av innleveringene i faget krever programmering i Go.

Eksamen / vurdering

Prosjektoppgave med muntlig presentasjon og muntlig eksamen

Vurderingsform Vekting Varighet Karakter Hjelpemiddel
Prosjektoppgave med muntlig presentasjon 2/5 Bokstavkarakterer
Muntlig eksamen 3/5 30 Minutter Bokstavkarakterer

Prosjektoppgaven vurderes gjennom innlevert rapport og en muntlig fremføring. Begge deler må gjennomføres før endelig karakter fastsettes. Prosjektoppgaven utføres i gruppe, og alle gruppemedlemmene må delta i den muntlige fremføringen.Hvis en student ikke består prosjektoppgaven, må hun/han ta denne om igjen neste gang kurset undervises.Begge vurderingsenheter må være bestått for å få endelig karakter i emnet.

Vilkår for å gå opp til eksamen/vurdering

Obligatoriske aktiviteter

Fem obligatoriske individuelle laboppgaver (programmeringsoppgaver). Godkjent/ikke godkjent. Alle programmeringsoppgavene må godkjennes innen angitte tidsfrister for å kunne gå opp til skriftlig eksamen. Godkjenning skjer ved innlevering av kode, samt etterfølgende godkjenning på lab.

Gjennomføring av obligatorisk lab og øvinger skal gjøres til de tider som er oppsatt. Fravær på grunn av sykdom eller av andre årsaker skal snarest mulig kommuniseres til laboratorie- eller fagansvarlig. Det kan ikke påregnes å få gjennomføre lab utenom oppsatt tid hvis dette ikke er kommunisert og ny avtale gjort.

Arbeidsformer

6 timer undervisning/laboratorieøvinger per uke

Emneevaluering

Det skal være en tidligdialog mellom emneansvarlig, studenttillitsvalgt og studentene. Formålet er tilbakemelding fra studentene for endringer og justering i emnet inneværende semester.I tillegg skal det gjennomføres en digital emneevaluering minimum hvert tredje år. Den har som formål å innhente studentenes erfaringer med emnet.

Litteratur

Pensumlisten finner du i Leganto