Bitcoin courses

Please refer to the page dedicated to your university, if available above. For previous editions, see the courses page.

These courses are for the students of those universities; anyone else, please consider https://dgi.io/workshop.

Learning objectives

The course is about 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, and politics.

Contents

  • Cash, Electronic Money, Central Bank Money, eCash
  • Internet Money
  • Bitcoin Transactions
  • About Money
  • Private Money and the Centralization Dilemma
  • The Double Spending Problem
  • Bitcoin as Digital Gold
  • Bitcoin as Investment Asset
  • Bitcoin Financial Services
  • Discrete Logarithm Problem on Finite Cyclic Groups
  • Modular Arithmetic
  • Finite Fields
  • Elliptic Curves Over Real Numbers
  • DLP on Elliptic Curves Over Finite Fields
  • Hash Functions
  • Partial Hash Inversion
  • Hash Pointer Data Structures: Blockchain and Merkle Tree
  • Design of A Simplified Digital Currency
  • Distributed Consensus
  • Mining
  • P2P Network
  • Protocol Governance
  • Elliptic curve digital signature algorithm
  • Elliptic curve Schnorr signature algorithm: Mu(lti)Sig(nature), threshold signature, batch verification
  • Addresses and WIFs
  • Hierarchical deterministic wallets: BIP32, BIP43, BIP44
  • Mnemonic phrase: BIP39 and Electrum
  • TxIns, TxOs, UTxO, nLockTime
  • Bitcoin script language
  • Transactions
  • Blocks
  • Wallets and Bitcoin Core
  • Testnet, regtest, and wallet workshop
  • Money and innovation: monetary and token engineering
  • Hayek money and dual asset ledger money
  • Blockchain beyond bitcoin
  • Finance and blockchain
  • Timestamping, notarization, and anchoring
  • Smart contracts
  • Distributed ledger technology

Teaching method

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

Teaching language

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

Lessons

Assistant lecturer: Paolo Mazzocchi.

  1. Bitcoin as Digital Gold
    • Internet Money
    • Bitcoin Transactions
    • About Money
    • Private Money and the Centralization Dilemma
    • The Double Spending Problem
    • Bitcoin as Digital Gold
    • Bitcoin as Investment Asset
    • Financial Services
  2. Hash Functions
    • Hash Functions and Their Properties
    • Puzzle Friendliness and Partial Hash Inversion
    • Hash–based Data Structures
  3. Blockchain, Mining, and Distributed Consensus
    • Simplified Digital Coin
    • Distributed Consensus
    • Proof-of-Work (PoW)
    • Mining
    • P2P Network
    • Protocol Governance
  4. Discrete Logarithm Problem on Finite Fields and Elliptic Curves
    • Elliptic Curves and The Discrete Logarithm Problem
    • Discrete Logarithm Problem on Finite Cyclic Groups
    • Modular Arithmetic
    • Finite Fields
    • Discrete Logarithm Problem on Elliptic Curves Over Finite Fields
  5. Elliptic Curve Digital Signature Algorithm (ECDSA)
    • Asymmetric Cryptography on Elliptic Curves
    • Digital Signature Protocol
    • Elliptic Curve Digital Signature Algorithm
  6. ECDSA and Beyond
    • Elliptic Curve Efficient Computations
    • Schnorr Signature Algorithm (BIP340)
    • Diffie-Hellman
    • Symmetric Cryptography
    • Encryption Using AES
  7. Addresses, WIFs, and Bitcoin Message Signing
    • Base58 Encoding
    • P2PKH Addresses and Wallet Import Formats
    • Bitcoin Message Signing
  8. Transactions and Scripts
    • TxIns, TxOs, and UTxOs
    • Bitcoin Script Language
    • Standard Transaction Scripts
    • Signatures Types and Smart Contracts
    • Blocks
  9. Transactions and Blocks
    • Transaction Serializazion
    • Blocks
    • Block Header
  10. Timestamping and the OpenTimestamps Protocol
    • Blockchain Immutability
    • Timestamping
    • The OpenTimestamps standard
    • Use Cases
  11. Wallets and Custody
    • Key Management and UTxO Database Access
    • Wallets as Collection of Keys
    • Custody
  12. Deterministic Key Chains
    • Deterministic Key-pair Hash-chains
    • Hierarchical Deterministic Key-pair Hash-chains: BIP32
    • Extending BIP32: BIP43, BIP44, and SLIP32
    • Mnemonic Phrases: BIP39 and Electrum
  13. Beyond Bitcoin: Between Hype and Reality
    • Other Cryptocurrencies
    • Smart Contracts
    • Initial Coin Offering
    • Non-Fungible Tokens (NFT)
    • Decentralized Finance (DeFi)
    • Traditional Finance for Crypto Assets
    • Blockchain Without Bitcoin
    • Distributed Ledger Technology
  14. Financial Products and Services for the Blockchain Economy
    • Bitcoin as Investment Asset
    • Crypto as Investment Asset
    • Regulation
    • Payment Processors
    • Exchanges
    • Custodians
    • Financial Products
  15. The Cryptocurrency Frontier in Monetary Engineering (video)
    • Cash, eMoney, Central Bank Money, and eCash
    • Stable Coins
    • Hayek Money: Elastic Non-discretionary Policy
    • Hayek Money: Dual Asset Ledger and Proof-of-Payment

    Bitcoin: oro digitale per nuovi standard monetari
    Hayek Money: The Cryptocurrency Price Stability Solution

Guest Speakers

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