Blockchains and Distributed Ledgers

Welcome to the web-site of blockchains and distributed ledgers course.

Catalogue link

Instructor: Aggelos Kiayias
Teaching Assistant: Dimitris Karakostas
Time and Location: Monday, 14:10-16:00. (online, live lectures. Recordings of past lectures.)

Class coursework.
Assignment #1: Interacting with a Distributed Ledger and Basic Principles (20%)
Assignment #2: Smart Contract Programming Part I (30%)
Assignment #3: Smart Contract Programming Part II (30%)
Assignment #4: Smart Contract Communication (20%)


Reading material for this class will be available in this github directory. For the study guide please see below.

Piazza web-site click here.

Class schedule and Study Guide
Lecture 01 (21.09.2020) Introduction to blockchains and distributed ledgers, the never ending book parable. Relevant cryptographic primitives. Digital Signatures and Hash Functions.


Lecture 02 (28.09.2020) The blockchain network and associated data structures. Transactions.
Assignment #1.

Lecture 03 (5.10.2020) The blockchain as a platform.


Lecture 04 (12.10.2020) Pitfalls and security vulnerabilities in smart contracts. Common bugs and hazards. The DAO attack. Ponzi Schemes. Using Libraries. Programming advice.
Assignment #2.

Lecture 05 (19.10.2020) The consensus problem.


Lecture 06 (26.10.2020) Byzantine fault tolerance and PoS Blockchains. Permissionless vs. Permissioned Ledgers. BFT and PoS-based approaches for permissioned Dynamic participation


Lecture 07 (2.11.2020) Distributed ledger economics and incentives.
Assignment #3

Lecture 08 (9.11.2020) Anonymity and Privacy in blockchain protocols. Coinjoin transactions. Mix-nets. Ring signatures. Zero-knowledge proofs.


Lecture 09 (16.11.2019) Secure Multiparty Computation
Assignment #4

Lecture 10 (23.11.2020) Decentralized Finance Platforms and Automated Market Makers (guest lecture: Vincent Danos).


Summary (30.11.2020) Summary and Overview. Student Questions.



Previous versions: [ 2019-20 ] [ 2018-19 ] [ 2017-18 ]


Home : Teaching : Courses 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh