CS795: Blockchain Technologies
George Mason University, Computer Science, Spring 2017
Instructor: Prof. Foteini Baldimtsi (email@example.com)
Office Hours: Mondays 2:00PM-4:00PM, Engineering 5333 (also by appointment)
Lectures: Mondays 4:30PM-7:10PM, Location: Art and Design Building, Room 2026
Class Website: http://www.baldimtsi.com/teaching/cs795_sp17
This class will serve as an introduction to the exciting new world of blockchain technologies. We will start our journey studying Bitcoin (the cryptocurrency everyone talks about) which is one of the first popular application of blockchains. We will study in detail how bitcoins are generated/mined, how transactions are being made and how the blockchain makes it possible to keep everything secure, fast and reliable without depending in any ``trusted party'' such as a government or a financial institution. We will explain the limitations of Bitcoin and will explore new systems and cryptocurrency proposals that overcome them. Then, we will look at the smart contract technology that enforces the automated execution of electronic commitments among parties without the need for a mediator. Finally, we will explore further applications of blockchain such as identity management or distributed data storage.
Prerequisites: No specific prerequisites. Familiarity with networks, security and cryptography will be helpful. There will also be some programming assignments and students should be familiar with programming in C, Java or another language.
Text Book: Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction, Princeton University Press, 2016. (Required). Freely available here.
There will also be on-line news articles and research publications that you will be required to read and present during lectures.
Homeworks: 15% (2 assignments that will require both programming and problem solving)
Communications: We will use piazza to communicate with you and upload HWs and Labs. You are welcome to use Piazza to set up study groups, to post interesting security incidents you read about (please tag these as "interesting incident in the news"), or to discuss the course with other students. If you have a question about the course you should: (a) Come to office hours, OR (b) Post to Piazza. You are welcome to post to Piazza anonymously, but please don't use private posts to ask technical questions. The rest of the class is probably also interested in your question, so make it public!
Ethics: You have to read and follow the GMU honor code.