← All courses

Bitcoin & Crypto-Assets

  • April-June 2025
  • University of Milan (La Statale)
  • Department of Mathematics, University of Milan (La Statale)

Bitcoin & Crypto-Assets, April-June 2025

Department of Mathematics, University of Milan

If you have an e-mail @studenti.unimi.it please join the 202504-math channel in the Slack BBT workspace using your first and last name (no nicknames) and a profile picture. Updates and conversations about the course will be posted in the Slack channel.

The course is for the students of University of Milan (La Statale) only; anyone else, please consider https://dgi.io/workshop.

Learning objectives

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

Starting from a computationally focused approach to elliptic curves over finite fields and presenting the discrete logarithm problem as the cornerstone of public-key cryptography, bitcoin is introduced as ingenious breakthrough innovation.

Its game theory, computer science (distributed systems, distributed consensus), and monetary theory elements are examined in the attempt to properly convey the interdisciplinarity of the topic and appreciate its relevance.

Technical and programming elements about digital signatures, blockchain, Merkle tree, addresses, transactions, and timestamping are also provided to assess features and limits of the Bitcoin protocol.

Prerequisites

There are no strict prerequisites, even if a computer science mindset and some familiarity with algebra and finance might help to appreciate the course. While a rigorous formal approach is almost impossible in a course touching on so many and so different knowledge areas, intellectual curiosity is stimulated about the interplay between maths, cryptography, economic incentives, technology, monetary theory, regulatory issues, and politics.

Contents

Teaching method

Teaching language

Italian or English, the latter if foreign students are present.

Assessment

To pass the exam each student must solve all the assignments for every lesson. Please send the assignments to the e-mail that will be indicated with subject bbt202504-math #1 for the first assignment, bbt202504-math #2 for the second assignment, etc.

Schedule

  1. 2025-04-28 Monday 15:30-18:30, aula di dottorato
    Bitcoin as Digital Gold (Part 1)
    slides
  2. 2025-05-05 Monday 15:30-18:30, aula di dottorato
    Bitcoin as Digital Gold (Part 2)
    slides
    Assignment #1: Testnet transaction
    Discrete Logarithm Problem on Finite Fields and Elliptic Curves
    slides
  3. 2025-05-12 Monday 15:30-18:30, aula di dottorato
    Discrete Logarithm Problem on Finite Fields and Elliptic Curves
    slides
    Assignment #2: Finite Fields and Elliptic Curves
    Hash Functions
    slides
    Assignment #3: Partial Hash Inversion
    Blockchain, Mining, and Distributed Consensus (Part 1)
    slides
  4. 2025-05-19 Monday 15:30-18:30, online
    Blockchain, Mining, and Distributed Consensus (Part 2)
    slides
  5. 2025-05-27 Tuesday 15:30-18:30, online
    Elliptic Curve Digital Signature Algorithm (ECDSA)
    Schnorr Signature Algorithm (BIP340)
    Optimization of The Elliptic Curve Scalar Multiplication
    slides
    Addresses, WIFs, and Bitcoin Message Signing
    slides
    Assignment #4: Bitcoin Message Signature
  6. 2025-06-09 Monday 15:30-18:30, aula di dottorato
    Transactions and Scripts
    slides
    Assignment #5: Halving Blocks
  7. 2025-06-10 Tuesday 15:30-18:30, aula di dottorato
    Deterministic Key Chains
    slides
    Wallets and Custody
    slides
    Timestamping and the OpenTimestamps Protocol
    slides Assignment #6: Timestamped document
  8. 2025-06-16 Monday 15:30-18:30, aula di dottorato
    Beyond Bitcoin: Between Hype and Reality
    slides
    Financial Products and Services for the Blockchain Economy
    slides
  9. 2025-06-17 Tuesday 15:30-18:30, online
    The Cryptocurrency Frontier in Monetary Engineering
    slides and video
    Bitcoin: oro digitale per nuovi standard monetari
    Hayek Money: The Cryptocurrency Price Stability Solution

Python library

btclib.org github.com/btclib-org/btclib

Python scripts, Excel spreadsheets, and regtest lab material

github.com/btclib-org/bbt

Introductory reading

Technology references

Cryptography references

Monetary theory references