Principles of Distributed Ledgers

Module aims

Decentralized ledgers, such as Bitcoin and Ethereum, have gained rapid popularity, attracting the attention of academics, entrepreneurs, economists, and policy-makers. They promise and already create new disruptive markets, and revolutionize how we think of money and financial infrastructure.

Aims - The goal of this course is to introduce students to the foundational principles behind decentralized ledgers and introduce them to current research in cryptocurrencies. We will thus cover the relevant foundations of distributed computing, the technical background of applied cryptography and incentive mechanisms.

Learning outcomes

By the end of the course, students will not only have an in-depth understanding of the properties and challenges of decentralized ledgers, but will moreover be able to design and implement first decentralized applications that run on top of a decentralized ledger. With the given security background and analysis methodology (MDPs), students will be able to develop new security attacks.
 

Specific outcomes:

  • Understanding the foundational principles of distributed ledgers (e.g. how authenticated data structures allow to protect integrity)
  • Being able to program secure decentralized applications and to independently start research projects related to distributed ledgers.
  • Understanding and developing new security attacks and possible defences in distributed ledgers.

The course therefore enables students to quickly integrate in academic or industrial projects related to blockchain technology.

Module syllabus

Distributed Ledger Introduction [7h]

- Hash Functions
- Digital Signature
- Decentralization and Permissionless/Permissioned Ledger
- Wallets and Transactions
- Authenticated Datastructures
- Blocks and the Blockchain
- Proof of Work and Mining
 

Building Decentralized Applications [8h]
- Ethereum smart contracts
- Use of https://achievement.network, an online learning platform for Ethereum based smart contracts, developed by Arthur Gervais
- Smart contract programming
- Smart contract security
 

Security and Privacy of Distributed Ledger [6h]
- Network layer propagation
- Blockchain Security: Double-Spending and Selfish Mining, Markov Decision Processes
- Blockchain Privacy: Deanonymizing existing
- Different approaches and possibilities
 

Scaling Decentralized Ledger and Alternatives [6h]
- Off-Chain Payments and Computation
- Sharding and Partitioning of the Networks
- Alternative Consensus Mechanisms
 

The course will cover permissionless (e.g., Bitcoin/Ethereum) as well as permissioned (e.g., Hyperledger/Corda) ledgers. We will in particular be covering the security and scalability aspects as well as potential solutions.
We end the course with an outlook on alternative proposals.

The bulk of the course will consist of understanding and learning the foundations of decentralized ledgers. The course will also incorporate the reading and discussion of recent research papers from top security con- ferences (Financial Cryptography, the Bitcoin Research workshop, PETS, WEIS, CCS) in the field. Assignments will involve hands-on practice with cryptocurrency tools, such as sending and receiving cryptocurrency payments, and programming smart contracts.

This class is primarily intended for students who would like to conduct research and that are interested to later work (the venture capital investment for cryptocurrencies exceeded 2 Billion Pounds) on decentralized ledgers. It will also appeal to students with a casual interest in this hot topic, or who want to do research in computer security generally.

Pre-requisites

- Most topics discussed during the module require a general knowledge of computer networks, distributed systems and programming languages.
- Recommended (not required) prerequisites: CO212 Networks and Communications, CO331 Web and Network Security, CO409 Cryptography
- Related courses: CO408H Privacy Enhancing Techniques, CO409 Cryptography, CO410H Scalable Distributed Systems Design, CO303 Systems Verification, CO312 Advanced Databases, CO347 Distributed Algorithms

Teaching methods

- 14 two-hour periods, mixing lecture and in-paper discussions.
- In-class participation in discussions

Assessments

- Written examination
- One programming assignment, where the students should develop a smart contract-based game, e.g. chess, king of ether
- One programming assignment, where the students will need to develop an educational exercise for https://achievement.network

Module leaders

Dr Arthur Gervais