CS765 - Introduction to Blockchains, Cryptocurrencies and Smart Contracts
Instructor
Prof. Vinay J. Ribeiro
Semester
Autumn ‘21
Course Difficulty
The course contents are not exactly difficult but you do need to spend enough time understanding what’s going on. The seemingly simple ideas discussed in the class are to be translated into well maintained code stacks while doing the assignments.
Time Commitment Required
The lectures are easy to follow with the well-maintained notes that the prof provides. So, watching them once was sufficient (for the exams). The assignments do take time, you can expect dedicating a good 20-25 hours each per assignment, while working in a team of 3. :)
Grading Policy and Statistics
Pretty decent stats. 72 AAs and 29 ABs in a batch of 139. Relative grading I believe.
Attendance Policy
None :)
Pre-requisites
None
Evaluation Scheme
Out of 100: HW1: 16; HW2: 9; HW3: 10; Quiz1: 7.5Y ; MidSem: 20Y; Final: 30*Y. Here Y is a scaling factor due to dropping of Quiz2. Y = 65/57.5
Topics Covered in the Course
Motivation for Blockchain Systems. Introduction to Peer-to-Peer systems and Distributed systems - Consensus, Byzantine Fault Tolerance, Impossibility Results. Cryptographic Tools used in Blockchains. Bitcoin: proof-of-work (PoW) consensus, block structure and other details. Attacks on Bitcoin: double spend and selfish mining. Energy saving: proof of stake and comparison with PoW. Algorand – committee based consensus. Ethereum, GHOST protocol, Solidity. Consensus for permissioned ledgers: RAFT, PBFT, Zyzzyva. Payment channel networks.
Teaching Style
Pre recorded lectures, live discussion sessions once a week, last year’s notes were provided start of the semester. The discussions hardly deviated from those.
Tutorials/Assignments/Projects
Heavy assignments, need to be proficient with programming, especially using various data structures as well as developing properly documented codes. There was no project.
Feedback on Exams
Midsem and Endsem were a combination of memory based objectives from the lectures and thought provoking subjective questions based on the content covered. Not very difficult I would say, but not very trivial either. There was only one objective quiz.
Motivation for taking this course
Wanted to explore the domain of blockchains from a technical standpoint
Course Importance
Blockchains is a booming field, with wide applications today in a lot of industries. From a research standpoint too, the course serves as a good introduction to the domain. There is an advanced blockchain course that Prof. Vinay takes in the spring semester, which is more around recent developments in the field. Can consider taking that as well.
How strongly would I recommend this course?
If you’re interested in learning about how blockchains work and want to get a first hand experience in developing some preliminary versions of the same, please take this course.
When to take this course?
I took it in my 7th semester. I WON’T recommend taking this in your placement semester. The course is amazing but very demanding as well throughout the semester. If you have a good hand on coding, 5th semester should be ideal.
Going Forward
Advanced course on blockchain which runs in spring semester. Further, you can consider research in the field under professors.
References Used
Textbook references by Arvind Narayanan (Princeton) and Saravanan Vijaykumaran (IITB).
Interesting relevant links
The Hidden Secrets of Money by Mike Maloney to get a feel of why all of this is relevant. Search this on youtube. :)
Review By: Gagan Jain