Academic Year 2023/2024 - Teacher: Dario CATALANO

Expected Learning Outcomes

This class is intended to provide an introduction to the main concepts of modern cryptography. The main focus will be on definitions and constructions of various cryptographic cryptographic tools, such as encryption schemes, message authentication codes and digital signatures. We will try to understand what properties we expect from these objects, how to formally define these properties and how to construct schemes that realize them. We will also focus on schemes that are widely used in practice. These include, for instance, AES, SHA, HMAC and RSA. However, rather than using these tools as black box, we will show how they are built and the security level they provide. No programming will be required for this class.

In terms of expected results, the goals of this course are

  1. Knowledge and understanding. Students will learn the fundamental ideas and the basic principles underlying Bitcoin and other cryptocurrencies. Students will also get familiarity with the main cryptographic primitives underlying modern cryptocurrencies. 
  2. Applying knowledge and understanding. Students will be able to actively use systems based on blockchain such as Bitcoin and Ethereum.
  3. Making judgements. By studying attacks and concrete examples students will be able to understand the security of the presented schemes. Moreover they will learn how to use solutions providing high security guarantees. 
  4. Communication Skills. Students will learn how to properly communicate using the technical language of modern cryptocurrencies.
  5. Learning Skills. A goal of this course is to provide a good good theoretical and practical background of modern cryptography. It is expected that students will learn how to autonomously address problems that require the usage of concepts like blockchain, proof of work and smart contracts.

Course Structure


Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.

Detailed Course Content

1. Introduction to the main concepts of the course.

2. Short intro to cryptography and cryptocurrencies.

Digital Signatures. Commitments schemes. Hash functions. Blockchain and Merkle Trees. Elementary Cryptocurrencies and why they don't work. 

Source: [1] Chap 1

3. How Bitcoin achieves decentralization. 

Consensus. Incentives and Proof of Work. Mechanics of Bitcoin. Transactions. Some details on Bitocoin Scripts. Applications and limits. The Bitcoin Network.

Source: [1] Chap 2, 3

4. Bitcoin applications, security and mining 

How to store bitcoins. Wallets, hot and cold wallets. Distributed Keys Secret Sharing and Threshold Cryptography. Distributed Signing. Mining. Mining hardware. Producing Bitcoins and energy costs. 

Source: [1] Chap 4, 5

5. Privacy and Anonymity for Cryptocurrencies. 

Anonymity and Bitcoin. De-anonymizing Bitcoin. Countermeasures. Cryptocurrencies and Anonymity.  Zero Knowledge proofs. Zerocoin and Zerocash. 

Sources: [1] Chap 6, and also [5], [6].

6. Ethereum and Smart contract applications & security 

 Sources: [1] Chap 10 and [3]

7. Alternative Mining Puzzles 

Proof of Stake. Proof of stake vs proof of work. Inherent probles to proof of stake: grinding attack, nothing at stake problem.

More crypto background- Pseudorandom Functions and Verifiable Random Functions. Algorand.

Sources: [1] Chap 8 and [7]

8. Laboratory 

Ethereum, Smart Contracts, Ethereum Virtual Machine (EVM). Introduction to writing Smart Contracts with Solidity.

Sources:  [3], [8]

Textbook Information

Main textbook

[1] Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder

Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction

(Author’s preprint edition available at :

Other Suggested readings: 

[2] Bitcoin Developer Reference

[3] Ethereum “white” paper:

[4] Ethereum “yellow” paper:

[5] Zerocoin: Anonymous Distributed e-cash from Bitcoin.

[6] Zerocash: Decentralized Anonymous Payments from Bitcoin

[7] Algorand: Scaling Byzantine Agreements for Cryptocurrencies

[8] Guida "Solidity":

Course Planning

 SubjectsText References
1Introduzione alla Crittografia e alle CryptocurrenciesCap. 1 di [1]
2Come Bitcoin realizza decentralizzazioneCap 2 di [1]
3Meccanica di BitcoinCap. 3 di [1], e pre approfondire [2]
4Come conservare e gestire Bitcoins.Cap. 4 di [1]
5Privacy e Anonimato e nelle cryptocurrencies. Cap. 6 di [1] capitolo 6, e per approfondire [5] e [6].
6Altri aspetti di Bitcoin: comunità, politica, controversie ed estensioniCap. 7 e 9 di [1]
7Ethereum e Smart contract applications & security Cap 10 di [1], slides e per approfondire [3] e [4]
8Approcci alternativi a mining e consenso Cap. 8, slides e per approfondire [7]
9Laboratorio su Ethereum. Smart Contracts, Ethereum Virtual Machine (EVM) e introduzione alla scrittura di Smart Contracts usando il linguaggio Solidity.[8]