### Course Syllabus

### Obiettivi formativi

The course is an introduction to bitcoin and the associated blockchain technology.

### Contenuti sintetici

Starting from a computationally focused approach to elliptic curves and presenting the discrete logarithm problem as cornerstone of public-key cryptography, bitcoin is introduced as an interesting application of number theory and the algebraic structure of elliptic curves over finite fields.

The game theory, computer science (distributed systems, distributed consensus), and monetary theory elements of bitcoin are then examined in the attempt to properly convey the interdisciplinary of the topic.

Python 3 is used for computational exercises.

### Programma esteso

### Prerequisiti

There are no strict prerequisites, even if a computer science mindset and previous familiarity with number theory, algebra, and finance might help to appreciate the course. Curiosity towards the cultural relevance of the interplay between theory, practice, economic incentives, technology, monetary theory, and politics might result more relevant than a rigorous formal approach on so many and so different knowledge areas.

### Metodi didattici

- Slide based lessons with associated bibliography
- Python 3 programming assignments and technology assignments
- Workshop labs on Bitcoin Core, Electrum, and OpenTimestamps

### Modalità di verifica dell'apprendimento

Programming/computational assignments during the course and written examination at the end of the course.

In other sessions, oral examination.

### Testi di riferimento

E-learning material and included references

### Periodo di erogazione dell’insegnamento

October-January

### Lingua di insegnamento

Italian (unless many foreign students are present)

### Learning objectives

The course is an introduction to bitcoin and the associated blockchain technology.

### Contents

Starting from a computationally focused approach to elliptic curves and presenting the discrete logarithm problem as cornerstone of public-key cryptography, bitcoin is introduced as an interesting application of number theory and the algebraic structure of elliptic curves over finite fields.

The game theory, computer science (distributed systems, distributed consensus), and monetary theory elements of bitcoin are then examined in the attempt to properly convey the interdisciplinary of the topic.

Python 3 is used for computational exercises.

### Detailed program

### Prerequisites

There are no strict prerequisites, even if a computer science mindset and previous familiarity with number theory, algebra, and finance might help to appreciate the course. Curiosity towards the cultural relevance of the interplay between theory, practice, economic incentives, technology, monetary theory, and politics might result more relevant than a rigorous formal approach on so many and so different knowledge areas.

### Teaching methods

- Slide based lessons with associated bibliography
- Python 3 programming assignments and technology assignments
- Workshop labs on Bitcoin Core, Electrum, and OpenTimestamps

### Assessment methods

Programming/computational assignments during the course and written examination at the end of the course.

In other sessions, oral examination.

### Textbooks and Reading Materials

E-learning material and included references

### Semester

October-January

### Teaching language

Italian (unless many foreign students are present)

### Key information

- Field of research
- NN
- CFU
- 3
- Term
- Primo Semestre
- Activity type
- Obbligatorio
- Course Length (Hours)
- 21
- Degree Course Type
- Corso di Laurea Magistrale