This course has two parts, one with Daniel Augot on cryptography and blockchains, one with Bernadette Charron-Bost on the fundamental consensus problem. Daniel Augot's course is a course about the cryptography used in blockchains. It will give an overview of several themes discussed in the blockchain space, after recalling basic cryptography (encryption, integrity, signature). The following topics will be surveyed: encryption, integrity, signature;   the many uses of cryptographic  hash functions; ethereum, smart contracts;  lightning, zero-knowledge, zk-snarks.

 


The course is strutured in 6 blocks: 1h30 lecture and 2h30 lab.

The labs are done using the unix command-line TP on your personal computer.  You need to preinstall Docker  et docker-compose.

 

 

Bernadette Charron-Bost's course is  as follows (no labs). In agreement problems, each agent of a networked system has an input value and outputs a series of values;  it is required that all the agents eventually output the same value and that this common value is one (or a function) of the input values. Agreement problems arise in a number of applications including consistency in replicated databases, motion of autonomous agents or, more recently, in the blockchain technology. The (exact) consensus problem is a fundamental agreement problem where each agent is aware that agreement has been reached, as opposed to the stabilizing consensus problem where agents are just required to eventually stabilize on the same input value. The blockchain consensus, also called the Nakamoto consensus, corresponds to an intermediate type of agreement. The  goal of this course is to explore the solvability and the complexity of these different 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).