This class is intended to provide an introduction to the main concepts of modern cryptography. The main focus will be on definitions and constructions of various cryptographic cryptographic tools, such as encryption schemes, message authentication codes and digital signatures. We will try to understand what properties we expect from these objects, how to formally define these properties and how to construct schemes that realize them. We will also focus on schemes that are widely used in practice. These include, for instance, AES, SHA, HMAC and RSA. However, rather than using these tools as black box, we will show how they are built and the security level they provide. No programming will be required for this class.
In terms of expected results, the goals of this course are
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.
1. Introduction to the main concepts of the course.
2. Short intro to cryptography and cryptocurrencies.
Digital Signatures. Commitments schemes. Hash functions. Blockchain and Merkle Trees. Elementary Cryptocurrencies and why they don't work.
Source: [1] Chap 1
3. How Bitcoin achieves decentralization.
Consensus. Incentives and Proof of Work. Mechanics of Bitcoin. Transactions. Some details on Bitocoin Scripts. Applications and limits. The Bitcoin Network.
Source: [1] Chap 2, 3
4. Bitcoin applications, security and mining
How to store bitcoins. Wallets, hot and cold wallets. Distributed Keys Secret Sharing and Threshold Cryptography. Distributed Signing. Mining. Mining hardware. Producing Bitcoins and energy costs.
Source: [1] Chap 4, 5
5. Privacy and Anonymity for Cryptocurrencies.
Anonymity and Bitcoin. De-anonymizing Bitcoin. Countermeasures. Cryptocurrencies and Anonymity. Zero Knowledge proofs. Zerocoin and Zerocash.
Sources: [1] Chap 6, and also [5], [6].
6. Other aspects of Bitcoin. Community, Politics and Regulations.
Source: [1] Chap 7 and 9
7. Ethereum and Smart contract applications & security
Sources: [1] Chap 10 and [3]
8. Alternative Mining Puzzles
Proof of Stake. Proof of stake vs proof of work. Inherent probles to proof of stake: grinding attack, nothing at stake problem.
More crypto background- Pseudorandom Functions and Verifiable Random Functions. Algorand.
Sources: [1] Chap 8 and [7]
9. Laboratory
Ethereum, Smart Contracts, Ethereum Virtual Machine (EVM). Introduction to writing Smart Contracts with Solidity.
Sources: [3], [8]
10. Other applications and extensions.
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