BLOCKCHAIN AND CRYPTOCURRENCIES
Academic Year 2025/2026 - Teacher: DARIO CATALANOExpected Learning Outcomes
In terms of expected results, the goals of this course are
- 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.
- Applying knowledge and understanding. Students will be able to actively use systems based on blockchain such as Bitcoin and Ethereum.
- 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.
- Communication Skills. Students will learn how to properly communicate using the technical language of modern cryptocurrencies.
- 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
Lecture-based.
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.
Required Prerequisites
This course assumes familiarity with programming. A basic background in cryptography is recommended
Attendance of Lessons
Detailed Course Content
Over the past ten years, Bitcoin and Ethereum have grown into systems worth tens (if not hundreds) of billions of dollars. Moreover, the potential of so-called decentralized ledgers (blockchains) has attracted the interest of researchers and developers in fields ranging from finance to electronic voting, as well as corporate governance and online gaming.
The goal of the course is to study the fundamental concepts underlying these systems: append-only ledgers, decentralized consensus, smart contracts, and zero-knowledge proof systems. Students will gain familiarity with the Bitcoin system through a hands-on approach that includes, among other things, an in-depth exploration of programming related to Bitcoin and, above all, Ethereum.
Finally, part of the course will feature guest lectures by experts working in companies directly or indirectly connected to the world of cryptocurrencies.
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 : https://bitcoinbook.cs.princeton.edu/)
Other Suggested readings:
[2] Bitcoin Developer Reference https://bitcoin.org/en/developer-reference
[3] Ethereum “white” paper: https://github.com/ethereum/wiki/wiki/White-Paper
[4] Ethereum “yellow” paper: http://gavwood.com/paper.pdf
[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": https://solidity.readthedocs.io
Course Planning
| Subjects | Text References | |
|---|---|---|
| 1 | Intro to cryptography and cryptocurrencies. | Cap. 1 di [1] |
| 2 | How Bitcoin achieves decentralization | Cap 2 di [1] |
| 3 | Bitcoin Mechanics | Cap. 3 di [1], e pre approfondire [2] |
| 4 | How to store and use Bitcoins. | Cap. 4 di [1] |
| 5 | Privacy and Anonymity in cryptocurrencies. | Cap. 6 di [1] capitolo 6, e per approfondire [5] e [6]. |
| 6 | Other aspects of Bitcoin: community and extensions | Cap. 7 e 9 di [1] |
| 7 | Ethereum e Smart contract applications & security | Cap 10 di [1], slides e per approfondire [3] e [4] |
| 8 | Altenative mining and consensus | Cap. 8, slides e per approfondire [7] |
| 9 | Ethereum Laboratory. Smart Contracts, Ethereum Virtual Machine (EVM). Introduction to Smart Contracts and Solidity. | [8] |
Learning Assessment
Learning Assessment Procedures
Exam structure
The exam consists of a laboratory test followed by an oral examination.
Mid-term tests:
It is possible to take one or more mid-term tests covering the theoretical content of the course.
The assessment may also be conducted online, should circumstances require it.
To take part in the final exam, students must register through the SmartEdu portal. For any technical issues related to registration, students should contact the Teaching Office (Segreteria Didattica).
Grading criteria (including the laboratory module):
-
Not approved: the student has not acquired the basic concepts and is unable to answer at least 60% of the questions or complete theoretical and practical exercises.
-
18–20: the student demonstrates only a barely sufficient understanding of the basic concepts and/or can approach theoretical/practical exercises only with great difficulty and several errors.
-
21–24: the student shows a minimal grasp of the fundamental concepts, has limited ability to connect different topics, and can solve only simple exercises.
-
25–27: the student demonstrates a good understanding of the course content, is able to make appropriate connections between topics, and completes exercises with few errors.
-
28–30 with honors (cum laude): the student has fully mastered all course content, can connect topics critically and coherently, and solves exercises completely and without significant errors.
Students with disabilities and/or specific learning disorders (SLD) must contact, well in advance of the exam date, the instructor, the CInAP representative for DMI (Prof. Daniele), and the CInAP office to request appropriate compensatory measures.
Examples of frequently asked questions and / or exercises
Illustrate the functioning of hash pointers and some related data structures (such as blockchains or Merkle Trees).
Exercises on the cryptographic tools and primitives introduced (e.g., proving that a given protocol is not zero-knowledge).