Cryptographic Computation and Blockchain
This course introduces both the main techniques for constructing cryptographic protocols and the theoretical models used for mathematically proving their security. The focus is on protocols for secure multiparty computation (MPC), which allows parties to compute on private data without revealing it, and on blockchain-based consensus, both of which are now used in many applications.
Teaching consists of lectures, exercise sessions (identifying properties and estimating the efficiency of protocols, designing new protocols, and proving or disproving security) and a course project on either privacy-preserving computation or blockchain protocols, presented to the class at the end of the course.
About the course
The course is part of the Security specialisation of the MSc in Computer Science at the IT University of Copenhagen (7.5 ECTS, taught in autumn). It is also open to guest students, exchange students and single-subject students. Students should be familiar with basic cryptography (hash functions, pseudorandom functions, message authentication codes, public-key encryption and digital signatures) and discrete mathematics.
Learning objectives
After taking this course, students will be able to:
- describe and develop simulation-based security definitions for cryptographic protocols
- describe and prove the security of building blocks such as commitments, oblivious transfer and zero-knowledge proofs
- describe and prove the security of secure multiparty computation protocols
- describe and prove the security of proof-of-work blockchain protocols
- describe proof-of-stake blockchain protocols and blockchain applications
Topics
- Simulation-based security proofs
- Commitments, oblivious transfer and zero-knowledge proofs
- Secure multiparty computation (MPC)
- Proof-of-work blockchains
- Proof-of-stake blockchains
- Blockchain applications