Hold Ctrl-tasten nede. Trykk på + for å forstørre eller - for å forminske.


Blockchain Technologies

This is the study programme for 2020/2021.

This subject gives insight into different technologies and models for blockchain systems and hands-on experience developing smart contracts.

Learning outcome

  • Know about different models for blockchains with both open and closed membership.
  • Know about different consensus mechanisms used in blockchain and their probabilistic guarantees.
  • Know about smart contracts and different execution models for smart contracts.
  • Know about cryptographic primitives used in blockchains.

  • Be able to develop applications for execution on a blockchain.
  • Be able to reason about systems and applications involving blockchain technology.

General competency:
  • Know how and when to apply blockchain technologies.


The course gives insight into different technologies and models for blockchain systems.
The first part, mostly inspired by bitcoin, covers blockchain fundamentals such as data structures, transaction validation and proof of work consensus. This part also considers possible attacks on bitcoin. Proposed improvements, as well as alternative consensus mechanisms are discussed.
The second part of the course covers voting consensus and byzantine fault tolerant systems, and their application in permissioned, membership based blockchains. A variety of systems with different failure models and assumptions will be presented, including systems that tolerate malicious and selfish peers.
In the third part, we focus on smart-contract programming, security of smart contracts and applications.
In addition to the lectures, students will have to read and discuss related research papers. In the accompanying lab project students will mine blocks for a simulated proof-of-work blockchain and implement a secure application using smart contracts.

Required prerequisite knowledge


Recommended previous knowledge

DAT510 Security and Vulnerability in Networks, DAT520 Distributed Systems


Project work with presentastion and written exam
Weight Duration Marks Aid
Project work with oral presnetation4/10 A - F
Written exam6/104 hoursA - F
The course contains a written exam (4 hours) and a project assignment.
The written exam counts for 60 % of the total grade.
The project counts for 40 % of the total grade and is evaluated through a report and an oral hearing. The project work can be done in groups, but the oral hearing and grading will be done individually. Both parts must be done before final grade for the project is given.
If a student fails the projectwork , she/he has to take this part again next time the subject is lectured.

Coursework requirements

Five mandatory individual lab exercises (programming exercises). Pass/Fail. All programming exercises must be passed within the specified deadlines to start on project assignment. Approval takes place through the delivery of code online, followed by in-lab approval.
Completion of mandatory assignments are to be made at the times that are assigned. Absence due to illness or for other reasons must be communicated as soon as possible to the laboratory personnel. One cannot expect that provisions for completion of the lab assignments at other times are made unless prior arrangements with the laboratory personnel have been agreed upon.

Course teacher(s)

Course coordinator
Leander Nikolaus Jehl

Method of work

6 hours of lectures and lab per week

Course assessment

Form and/or discussions.


Link to reading list

This is the study programme for 2020/2021.

Sist oppdatert: 14.08.2020