The design of Blockchain protocols raises new challenges that can only be grasped through a sound understanding of computer science and economic incentives. We explore the economic concepts (market design, pricing mechanisms…) and computer science tools (Zero-Knowledge Proofs, Rollups...) students need to acquire in order to participate to this ever-evolving field.
This course provides an introduction to blockchains and Bitcoin for students without prior knowledge of cryptography or distributed algorithms. The first part of the course covers the basic concepts required to understand Bitcoin's consensus. The second part of the course discusses the economic implications of blockchains, with a focus on new monetarist theory and its application to tokens.
The goal of this course is to explore the solvability and the complexity of agreement problems in various contexts, depending on the synchrony model, the failure model, and on other features like the fact that the system is open or closed (permissioned vs. permissionless systems).
This course will introduce formal methods in general and its application in the domain of cryptography, from the provable security of algorithms to the provable and side-channel security of both human-readable and high-performance reference implementations.
This course will give an overview of several cryptographic in the blockchain world. The following basic topics will be re-examined in the context of blockchains: encryption, integrity, signature; the many uses cryptographic hash functions. Then, more advanced uses of cryptography will be studied: lightning, zero-knowledge, secret-sharing.