70017
Principles of Distributed Ledgers
Module aims
Distributed ledgers, such as Bitcoin and Ethereum, have gained rapid popularity, attracting the attention of academics, entrepreneurs, and policy-makers. They promise and have already created new disruptive markets, revolutionizing how we think of money and financial infrastructure. In this module, you will have the opportunity to explore the foundational principles behind distributed ledgers and learn about how software can be developed using this novel technology. This will include the foundations of blockchains, smart-contract programming, and decentralised application development.
(There are no strict prerequisites to take this module. However, this module does not cover general programming concepts, and it is assumed that students are familiar with these. While this module does cover some decentralised finance applications in some lectures, no previous knowledge of finance is required.)
Learning outcomes
Upon successful completion of this module you will be able to:
- Explain and illustrate the fundamental principles and architecture of blockchain systems
- Design, implement, test, and deploy smart-contract-based applications on EVM-based blockchains
- Interact with on-chain applications
- Conduct a critical analysis of blockchain security
- Evaluate the scalability of blockchain applications and build scalable solutions
Module syllabus
In this module the following topics will be covered:
- Blocks and the blockchain
- Wallets and transactions
- Proof-of-Work and mining (e.g., Bitcoin)
- Proof-of-Stake (e.g., Ethereum)
- Ethereum Virtual Machine (EVM)
- Smart contract programming in Solidity
- Deploying and testing smart contracts
- Designing decentralised applications (DApps)
- Scaling distributed ledgers
- Decentralised Finance
- Automated market makers (AMMs)
- Protocols for loanable funds and flash loans
- Technical and economic security of decentralised applications
Teaching methods
The module will be taught via interactive classes where you will be encouraged to engage with your classmates and the lecturer. All students are recommended to attend the lectures and tutorials in-person. The tutorials will consist of unassessed, formative exercises based on the materials covered in the lectures and will contain both coding-based and theoretical problems. In the coursework, you will develop your own set of smart contracts.
An online service will be used as a discussion forum for the module, which will be frequently checked by the lecturers and graduate teaching assistants.
Assessments
There will be one assessed coursework where you will be asked to program a set of smart contracts. This is worth 20% of the marks. The remaining 80% will come from a written examination which will test both theoretical and practical aspects of the subject.
You will have the opportunity to receive feedback in class. There will also be written feedback on the coursework submission.
Reading list
Recommended
-
SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies
-
Bitcoin: A Peer-to-Peer Electronic Cash System
-
ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER
-
Eclair Docs
-
Optimism Docs
-
An Incomplete Guide to Rollups
-
Stablecoins 2.0: Economic Foundations and Risk-based Models
-
An Explanation of Oracles
-
SoK: Decentralized Finance (DeFi)
-
Uniswap v3 Core
Module leaders
Mr Paul PritzMr Sam Werner
Professor William Knottenbelt
Reading list
To be advised - module reading list in Leganto