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 ]