Principles of Distributed Ledgers
Decentralised ledgers, such as Bitcoin, have gained rapid popularity, attracting the attention of academics, entrepreneurs, and policy-makers. They promise and already create new disruptive markets, and revolutionise how we think of money and financial infrastructure. In this module you will have the opportunity explore the foundational principles behind decentralised ledgers and learn about current research in cryptocurrencies. This will include the foundations of distributed computing, applied cryptography and incentive mechanisms.
Upon successful completion of this module you will be able to:
- instantiate and experiment with your own blockchain
- conduct a critical analysis of blockchain security
- evaluate the privacy of cryptocurrencies such as Bitcoin
- design, implement and assess smart contract applications
- evaluate the scalability of blockchain applications and build scalable solutions
- Hash Functions
- Digital Signature
- Decentralisation and permissionless/ permissioned ledgers
- Wallets and transactions
- Authenticated datastructures
- Blocks and the blockchain
- Proof of work and mining
- Ethereum smart contracts
- Smart contract security
- Network layer propagation
- Blockchain security and privacy
- Building decentralised applications
- Security and privacy of distributed ledgers
- Scaling decentralised ledger and alternatives
- Network and Hardware aspects of decentralised ledgers
Most topics discussed during the module require a general knowledge of computer networks, distributed systems and programming languages.
Recommended (not required) prerequisites: CO50005 Networks and Communications, COMP60015 Network and Web Security, COMP70009 Cryptography Engineering
Related courses: COMP70018 Privacy Engineering, COMP70022 Scalable Systems and Data, COMP60022 Systems Verification, COMP60002 Advanced Databases, COMP60009 Distributed Algorithms
The module will be taught via interactive classes where you will be encouraged to engage with your classmates and the lecturer. The lectures will be interspersed with unassessed, formative, exercises based on topical research papers that can be read in advance. Mentimeter may be used to verify your understanding of the key topics as they are taught. There will be a course work where you develop your own smart contract based game.
There will be one assessed coursework where you will be asked to program a smart contract based game. 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.
There will also be written feedback on the coursework submission. As part of the lecture we will go through the blockchainworkbench.com course, which was specifically designed and implemented for this course for you to learn to program solidity based smart contracts.