About the Course

In the last few years, Blockchain technology has generated massive interest among governments, enterprises, and academics, because of its capability of providing a transparent, secured, tamper-proof solution for interconnecting different stakeholders in a trustless setup. However, as the popularity of this technology was also associated with cryptocurrency markets, particularly Bitcoin, it has seen a lot of debates and subsequent misconceptions and myths turning around the globe. At the same time, governments as well as various enterprises, have started exploring the capacity and the capability of Blockchain technology across several application sectors, including supply chain management, banking & finance, digital identity management, land record management, health & wellbeing and eVoting, among others. In January 2021, the Ministry of Electronics and Information Technology (MeiTY), Government of India, published the first draft of the "National Strategy on Blockchain" that highlights 17 potential applications that are of national interest.

Against this backdrop, this subject will cover the basic design principles of Blockchain technology and its applications over different sectors. The course starts with the fundamental cryptographic concepts that are required to understand the components and working principles of Blockchain. It covers the design principles of both permissioned and permissionless models of blockchain, their consensus mechanisms, and the deployment considerations. With these basics, the course discusses the fundamentals behind the distributed ledger technology and smart contracts. Finally, it talks about various blockchain applications including digital identity management, supply chain management, applications for good governance and Fintech applications.

Additionally, the course also provides tutorials on setting up blockchain applications using one of the well-adopted permissionless blockchain platforms - Ethereum, and one permissioned blockchain platform - Hyperledger. The tutorials cover the basic primitives in setting up a blockchain development environment and building applications on top of it.

Course Credit

3-1-0-4

Class Time

Wed 12:00 - 13:00
Thurs 11:00 - 12:00
Fri 09:00 - 11:00

Classroom

NC-231

Course Instructors

Shamik Sural

Sandip Chakraborty

Teaching Assistants

Utkalika Satpathy
B Shashank Goud
Sarthak Nikumbh

Grading

Assignments: 35%
Mid Sem: 25%
End Sem: 35%
Attendance: 5%

Reference Books and Reading Materials:

  1. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction, by Andrew Miller, Arvind Narayanan, Edward Felten, Joseph Bonneau, and Steven Goldfeder, Princeton University Press, ISBN: 978-0691171692
  2. Mastering Bitcoin: Programming the Open Blockchain 3rd Edition by Andreas M. Antonopoulos and David A. Harding, O' Reilly, ISBN: 978-1098150099
  3. Mastering Blockchain: A deep dive into distributed ledgers, consensus protocols, smart contracts, DApps, cryptocurrencies, Ethereum, and more, 3rd Edition, Imran Bashir, Packt Publishing, 2020, ISBN: 9781839213199
  4. Blockchain Scalability and its Foundations in Distributed Systems, by Vincent Gramoli, Springer, ISBN: 978-3031125805
  5. Other reading materials will be provided as the classes progress.

Tutorials

The course will have a few tutorials on the hands on aspects of blockchain, focusing on Ethereum and Hyperledger Fabric. The tutorial slides will be uploaded here.

  1. Ethereum

Assignments


There will be 4-5 assignments covering the tutorial topics. The students should form groups (details will be announced in the class) and solve the assignments by the deadline. Plagiarisms and use of AI tools like ChatGPT will be taken seriously, and the full marks will be deducted for such cases. The assignments will be uploaded here. CSE Moodle (https://moodlecse.iitkgp.ac.in/moodle/) will be used for assignment submission and grading.

Assignment 1: Learning the Blockchain Elements Assignment Statement
Assignment 2: Basic Ehereum Transactions Assignment Statement
Assignment 3: Solidity and Dapps Assignment Statement

Lectures

Introduction

Objectives of the Course, What is Blockchain

Presentation Slides

Topic 1

Cryptocurrency to Blockchain -- A Historical Journey

Distributed Systems, Cryptocurrency, Economic Models, Blockchain 1.0, 2.0, and 3.0, Smart Contracts

Presentation Slides

Topic 2

Basic Crypto Primitives

Public Key Cryptography, Hash Functions, Digital Signatures

Presentation Slides -- Crypto-1
Presentation Slides -- Crypto-2

Topic 3

Elements of a Blockchain

Block Header, Transaction Organization, Use Case -- Bitcoin Blockchain Structure

Presentation Slides

Topic 4

Permissionless Consensus

Proof of Work (PoW) and Others

Presentation Slides

Topic 5

Ethereum

Solidity and Smart Contracts

Tutorial notes

Tutorial 1

Permissioned Consensus -- State Machine Replication

Distributed State Machines and Consensus

Presentation Slides

Topic 6

The Raft Consensus Algorithm

Raft Consensus, Safety and liveness

Presentation Slides
Video
Raft Visualization
Raft Visualization with Replay
Raft Github Repo

Topic 7

Byzantine Agreement Protocols

BFT Consensus, Practical Byzantine Fault Tolerance (PBFT)

Presentation Slides

Topic 8