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
THU: 11:00 - 12:00
FRI: 09:00 - 11:00

Classroom

CSE-120

Course Instructors

Sandip Chakraborty

Teaching Assistants

Utkalika Satpathy
Tirthankar Sengupta
Seemant Guruprasad Achari

Grading

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

Reference Books and Reading Materials:

  1. 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
  2. Other reading materials will be provided as the classes progress.

Tutorials

Click on the topics to access the corresponding tutorial slides.

  1. Ethereum
  2. Hyperledger Fabric

Assignments


Assignment 1: Basic Ehereum Transactions, Implementing a Dapp using Solidity
Assignment 2: Implement Fabric Smart Contracts
Assignment 3: Implementation of Hyperledger Indy
Assignment 3: Implementation of Blockchain Interoperability

Lectures

Introduction

Objectives of the Course, What is Blockchain

Lecture notes

Topic 1

Basic Crypto Primitives

Public Key Cryptography, Hash Functions, Digital Signatures

Lecture notes

Topic 2

Cryptocurrency to Blockchain -- A Historical Journey

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

Lecture notes

Topic 3

Elements of a Blockchain

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

Lecture notes

Topic 4

Permissionless Consensus

Proof of Work (PoW) and Others

Lecture notes

Topic 5

Ethereum

Solidity and Smart Contracts

Tutorial notes

Tutorial 1

Permissioned Consensus -- State Machine Replication

Distributed State Machines and Consensus

Lecture notes

Topic 6

Hyperledger Fabric

Fabric Tutorial

Lecture notes

Tutorial 2

The Raft Consensus Algorithm

Raft Consensus, Safety and liveness

Presentation
Video
Raft Visualization
Raft Visualization with Replay
Raft Github Repo

Topic 7

Byzantine Fault Tolerance

BFT Consensus, Practical Byzantine Fault Tolerance (PBFT)

Lecture notes

Topic 8

Identity Management

Self-sovreign Identity, Decentralized Identifiers (DIDs), Indy and Identity Management

Lecture notes

Topic 9

Enterprise Blockchain Consensus Models

Bitcoin-NG, Collective Signing (CoSi), Byzcoin, Algorand

Lecture notes

Topic 10

Blockchain Interoperability

Asset and Data Interoperability, Hash-Timed Lock Contract (HTLC), Permissioned Blockchain interoperability

Lecture notes

Topic 11

Blockchain Security

Attacks on Blockchain and Their Countermeasures

Lecture notes

Topic 12