Skip to main content

Blockchain Technologies (DAT650)

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


Course description for study year 2022-2023

Facts
Course code

DAT650

Version

1

Credits (ECTS)

10

Semester tution start

Autumn

Number of semesters

1

Exam semester

Autumn

Language of instruction

English

Content

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.

Learning outcome

Knowledge:

  • 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.

Skills:

  • 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.
Required prerequisite knowledge
None
Recommended prerequisites
DAT510 Security and Vulnerability in Networks, DAT520 Distributed Systems
Some of the assignements in this course use Go.
Exam

Project work with presentastion and written exam

Form of assessment Weight Duration Marks Aid
Project work with oral presnetation 2/5 Letter grades
Written exam 3/5 4 Hours Letter grades

The project 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.Both exam units must be passed in order to receive a final grade in the course.

Coursework requirements
Obligatoriske aktiviteter

Five mandatory individual lab exercises (programming exercises). Pass/Fail. All programming exercises must be passed within the specified deadlines to take the written exam. 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
Coordinator laboratory exercises: Arian Baloochestani Asl
Course coordinator: Leander Nikolaus Jehl
Method of work
6 hours of lectures and lab per week
Course assessment
Form and/or discussions.
Literature
The syllabus can be found in Leganto