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.
3-1-0-4
Wed 12:00 - 13:00
Thurs 11:00 - 12:00
Fri 09:00 - 11:00
NC-231
Shamik Sural
Sandip Chakraborty
Utkalika Satpathy
B Shashank Goud
Sarthak Nikumbh
Assignments: 35%
Mid Sem: 25%
End Sem: 35%
Attendance: 5%
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.
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
Assignment 4: Implement Fabric Smart Contracts Assignment Statement
Assignment 5: Implementation of Hyperledger Indy Assignment Statement
Distributed Systems, Cryptocurrency, Economic Models, Blockchain 1.0, 2.0, and 3.0, Smart Contracts
Public Key Cryptography, Hash Functions, Digital Signatures
Block Header, Transaction Organization, Use Case -- Bitcoin Blockchain Structure
Distributed State Machines and Consensus
Raft Consensus, Safety and liveness
BFT Consensus, Practical Byzantine Fault Tolerance (PBFT)
Bitcoin-NG, Collective Signing (CoSi), Byzcoin, Algorand
Self-sovreign Identity, Decentralized Identifiers (DIDs), Indy and Identity Management
Indy and Aries tutorial
Asset and Data Interoperability, Hash-Timed Lock Contract (HTLC), Permissioned Blockchain interoperability