Mech DAMP Blog

CS765 - Introduction to Blockchains, Cryptocurrencies and Smart Contracts

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).

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