Bitcoin and Blockchain Technology, Fall 2019
Department of Statistics and Quantitative Methods, University of Milano-Bicocca
Course page: https://elearning.unimib.it/course/view.php?id=25308
Please subscribe the course mailing list sending an e-mail to bbt2019-bicocca+subscribe@https://dgi.io; you are also invited to join the 201910-bicocca channel in the Slack BBT workspace.
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, and politics.
Contents
- Hash functions, hash pointers, blockchain, Merkle tree
- Modular arithmetic and algebra of sets
- Elliptic curves over real numbers and a finite field đš
- Asymmetric cryptography on elliptic curves
- Elliptic curve digital signature algorithm
- Elliptic curve Schnorr signature algorithm: Mu(lti)Sig(nature), threshold signature, batch verification
- Diffie-Hellman
- Pedersen commitment
- Confidential transactions
- Design of a simplified digital currency
- Distributed consensus
- Mining
- P2P network
- Protocol governance
- 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.
Schedule
Workshops are with Paolo Mazzocchi, assistant lecturer.
- Wednesday 2019-10-09 16:30-18:30 edificio U6 aula 33
Bitcoin as Digital Gold (part 1)
slides - Wednesday 2019-10-16 16:30-18:30 edificio U6 aula 33
Bitcoin as Digital Gold (part 2)
slides - Wednesday 2019-10-23 16:30-18:30 edificio U6 aula 33
Blockchain, Mining, and Distributed Consensus (part 1)
slides - Wednesday 2019-10-30 16:30-18:30 edificio U6 aula 33
Blockchain, Mining, and Distributed Consensus (part 2)
slides - Wednesday 2019-11-06 16:30-18:30 edificio U6 aula 33
Elliptic Curve Digital Signature Algorithm (part 1)
slides - Wednesday 2019-11-13 16:30-18:30 edificio U6 aula 33
Elliptic Curve Digital Signature Algorithm (part 2)
slides - Wednesday 2019-11-27 16:30-18:30 edificio U6 aula 33
Wallets: Key Encodings and Deterministic Key Sequences
slides - Wednesday 2019-12-04 16:30-18:30 edificio U6 aula 33
Wallets: Key Encodings and Deterministic Key Sequences (Part 2)
slides - Wednesday 2019-12-11 16:30-18:30 edificio U6 aula 33
Transactions and Blocks
slides - Wednesday 2019-12-18 16:30-18:30 edificio U6 aula 33
Beyond Bitcoin: Between Hype and Reality
slides - Friday 2020-12-20 12:30-14:30 edificio U6 aula 22
Wednesday 2020-01-15 16:30-18:30 edificio U6 aula 33
The Cryptocurrency Frontier in Monetary Engineering
slides, text
In the last lesson anonymous course evaluation forms will be collected
Python library
Python scripts, Excel spreadsheets, and regtest lab material
Introductory reading
- Ferdinando Ametrano,
âBitcoin: oro digitale per nuovi standard monetariâ (2018),
https://drive.google.com/file/d/1-1k3wlL6ElZzJMjSakTjTNetJI5ws6wL
Technology references
- Satoshi Nakamoto,
âBitcoin: A Peer-to-Peer Electronic Cash Systemâ (2008),
https://bitcoin.org/bitcoin.pdf - Andreas M. Antonopoulos,
âMastering Bitcoin: Programming the Open Blockchainâ (2nd edition, 2017),
Oreilly & Associates Inc, 978-1491954386,
https://github.com/bitcoinbook/bitcoinbook - Jimmy Song,
âProgramming Bitcoin: Learn How to Program Bitcoin from Scratchâ (2019)
Oreilly & Associates Inc, 978-1492031499,
https://github.com/jimmysong/programmingbitcoin - A. Narayanan, et al.,
âBitcoin and Cryptocurrency Technologies: A Comprehensive Introductionâ (2016),
Princeton University Press, 978-0691171692,
https://www.coursera.org/learn/cryptocurrency, https://bitcoinbook.cs.princeton.edu, https://bitcoinbook.cs.princeton.edu, https://www.lopp.net/pdf/princeton_bitcoin_book.pdf - Pedro Franco,
âUnderstanding Bitcoin: Cryptography, Engineering and Economicsâ (2014),
Wiley, 978-1119019169 - Ferdinando Ametrano,
âBitcoin, Blockchain, and Distributed Ledgers: Between Hype and Realityâ (2017),
https://ssrn.com/abstract=2832249 - Roger Wattenhofer,
âBlockchain Science: Distributed Ledger Technologyâ (3rd edition, 2019),
Independently published, 978-1793471734
Cryptography references
- Christof Paar, Jan Pelzl,
âUnderstanding Cryptographyâ,
Springer, 978-3642041006
https://wiki.crypto.rub.de/Buch/en/slides.php, https://youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg/videos - Dan Boneh,
âA Graduate Course in Applied Cryptographyâ,
Stanford University
https://www.coursera.org/learn/crypto, https://toc.cryptobook.us/ - Lawrence C. Washington,
âElliptic Curves Number Theory And Cryptographyâ (2008),
Chapman and Hall, 978-1420071467 - Standards for Efficient Cryptography Group
SEC 1: Elliptic Curve Cryptography, March 2009. Version 2.0.
https://www.secg.org/sec1-v2.pdf - Standards for Efficient Cryptography Group
SEC 2: Recommended Elliptic Curve Domain Parameters, March 2009. Version 2.0.
https://www.secg.org/sec2-v2.pdf - Guidelines for Efficient Cryptography
GEC 2: Test Vectors for SEC 1, September 1999. Version 0.3.
http://read.pudn.com/downloads168/doc/772358/TestVectorsforSEC%201-gec2.pdf
Monetary theory references
- Friedrich A. Hayek,
âDenationalisation of Money: The Argument Refinedâ,
https://mises.org/library/denationalisation-money-argument-refined - Saifedean Ammous,
âThe Bitcoin Standard: The Decentralized Alternative to Central Bankingâ (2018),
Wiley, 978-1119473862 - Ferdinando Ametrano,
âHayek Money: The Cryptocurrency Price Stability Solutionâ (2014),
https://ssrn.com/abstract=2425270 - Robert Sams,
âA Note on Cryptocurrency Stabilisation: Seigniorage Sharesâ (2015),
https://github.com/rmsams/stablecoins/blob/master/paper.pdf