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 2023-2024

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 oral presentastion and oral exam

Form of assessment Weight Duration Marks Aid
Project work with oral presnetation 2/5 Letter grades
Oral exam 3/5 30 Minutes Letter grades

The project is evaluated through a report and an oral hearing. Both parts must be done before final grade for the project is given. The project work will be done in groups, and all group members have to participate in the oral hearing.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.

Method of work

6 hours of lectures and lab per week

Course assessment

There must be an early dialogue between the course coordinator, the student representative and the students. The purpose is feedback from the students for changes and adjustments in the course for the current semester.In addition, a digital course evaluation must be carried out at least every three years. Its purpose is to gather the students experiences with the course.

Literature

The syllabus can be found in Leganto