Principles of Distributed Ledgers

Module aims

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.   

Learning outcomes

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

Module syllabus

  • 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   

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: CO408 Privacy Engineering, CO409 Cryptography, CO410 Scalable Systems and Data, CO303 Systems Verification, CO572 Advanced Databases, CO347 Distributed Algorithms

Teaching methods

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.

Assessments

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.

Module leaders

Dr Arthur Gervais