Cryptocurrencies
Course Outline
Only basic knowledge in cryptography or computer security is assumed. It would be ideal if you have done a cryptography and/or security lecture at FAU or during your previous studies somewhere else. The list of topics covered are the following:
- Bitcoin Protocols
- Nakamoto Consensus Algorithms
- Bitcoin Community and Politics
- Alternative Mining Approaches
- Alternative Coins: Ethereum, Anonymous Payments, Zero-Knowledge Cash…
- Credit Systems: Ripple, PrivPay
- Other state-of-the-art topic related to cryptocurrencies
General Information
- First lecture: 27/02/2017 (Room 02.134)
- Instructor: Prof. Dr. Dominique Schröder
- ECTS credits: 5.0
- Language: English
- StudOn: here
Program
Date | Session 1
9:00 – 10:45 |
Session 2
11:00 – 12:30 |
Session 3
14:00 – 16:00 |
27/02 | Introduction to Cryptography and Cryptocurrencies | Nakamoto Consensus | Exercise 1 |
28/02 | Bitcoin Protocols | Bitcoin Applications and Security | Exercise 2 |
01/03 | Mining | Bitcoin Mining Strategies and Attacks | Exercise 3 |
02/03 | Starting at 10:00: Redactable Blockchain | Programming 1 | Programming 2 |
03/03 | Programming 3 | Programming 4 | Programming 5 |
06/03 | Anonymity 1 | Anonymity 2 | Exercise 4 |
07/03 | Ripple and Payment Networks 1 | Ripple and Payment Networks 2 | Exercise 5 |
08/03 | Modern Ideas, Ethereum and Alternative Mining Approaches | Other Blockchain Applications | Exercise 6 |
09/03 | Starting at 10:00: Research Talk | Programming 6 | Programming 7 |
10/03 | Programming day (complete day) | ||
13/03 | Programming day (complete day) | ||
14/03 | Programming day (complete day) | ||
15/03 | Programming day (complete day) | ||
16/03 | Programming day (complete day) | ||
17/03 | Programming day (complete day) |
Programming Project
The programming project will consist in the development of a new blockchain-based coin from *scratch*.
The students will be separated into small groups, and be required to implement a library that performs all the
basic blockchain operations such as,
* P2P networking
* Consensus mechanism
* Wallet interface
The description and requirements of each of the previous points will be given in more details at a later time.
The final goal of the project is to have a high-quality test framework for the development of
proof-of-concept implementations on the blockchain technology. We expect to have a high quality,
and very well documented code to be released as an open-source project at the end of the course.