Aims:

The module aims to provide students with an understanding of the technologies underlying cryptocurrencies, as well as their broader ecosystem. After taking the module, students should be able to identify the trade-offs in terms of openness, privacy, security, and efficiency in given cryptocurrency and blockchain-based solutions. They will be taught how to do this both by seeing constructive solutions that satisfy all or some of these properties and by seeing attacks on existing systems that demonstrate how they fail to satisfy one or more of these properties.

Students should be able to keep up with this rapidly evolving field by improving their ability to read whitepapers, technical specifications, and research papers. When faced with a new system, they should be able to reason about its effectiveness in terms of the trade-offs listed above.

Learning outcomes:

On successful completion of the module, a student will be able to:

Understand the basic components of blockchains and cryptocurrency transactions, including how peers achieve consensus, which programming languages are used to specify information, and how blockchains are secured via the underlying cryptographic primitives of hash functions and digital signatures.
	Understand the trade-offs in terms of efficiency and security associated with the consensus protocols used for blockchains, and how they relate to existing consensus protocols. Similarly, understand the trade-offs in terms of openness (permissionless, permissioned, etc.), efficiency, and privacy.
	Read whitepapers and research papers in this area and present them to others.
	Know that there are interesting technical research problems associated with cryptocurrencies and blockchains, but also many social, legal, and economic problems as well. In general, gain some understanding of the wider ecosystem in which these technologies live.
Content:

The module gives students an understanding of cryptocurrencies such as Bitcoin and Ethereum and their underlying data structure, known as the blockchain. Students will study various components of these cryptocurrencies, ranging from the network layer to the consensus layer to the transaction layer. The module will cover both constructive aspects of these technologies (what can we build when we use blockchains?) as well as attacks on various privacy and security aspects.Requisites:

To be eligible to select this module as an optional or elective, a student: (1) must be registered on a programme and year of study for which it is formally available; and (2) should have good mathematical reasoning (calculus is expected) and programming skills.