Professional Documents
Culture Documents
COURSE OVERVIEW
This course provides an in-depth understanding of Bitcoin, cryptocurrencies, and the underlying
technology of blockchain. It covers the basics of cryptographic foundations, explores the principles
of blockchain technology and delves into programming aspects using Python and Solidity. Students
will gain a comprehensive knowledge of how cryptocurrencies work, the security mechanisms behind
them, and how to develop blockchain applications.
PREREQUISITE COURSE
COURSE OBJECTIVE
Students will be familiarized with algorithms for encryption, hashing and digital signature to
implement secured transactions in cryptocurrencies using blockchain. They will use Python for
implementing cryptocurrencies and Solidity for developing smart contracts and decentralized
applications.
COURSE OUTCOME
After the completion of the course, the student will be able to:
PROGRAM OUTCOMES
Problem Analysis: Identify, formulate, review research literature, and analyze complex
PO2 engineering problems reaching substantiated conclusions using first principles of mathematics,
natural sciences, and engineering sciences.
Design/development of solutions: Design solutions for complex engineering problems and
design system components or processes that meet the specified needs with appropriate
PO3
consideration for the public health and safety, and the cultural, societal, and environmental
considerations.
Conduct investigations of complex problems: Use research-based knowledge and research
PO4 methods including design of experiments, analysis and interpretation of data, and synthesis of the
information to provide valid conclusions
Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern
PO5 engineering and IT tools including prediction and modeling to complex engineering activities
with an understanding of the limitations.
The Engineer and society: Apply reasoning informed by the contextual knowledge to assess
PO6 societal, health, safety, legal and cultural issues and the consequent responsibilities relevant to
the professional engineering practice.
Environment and sustainability: Understand the impact of the professional engineering
PO7 solutions in societal and environmental contexts, and demonstrate the knowledge of, and need
for sustainable development
Ethics: Apply ethical principles and commit to professional ethics and responsibilities and norms
PO8
of the engineering practice.
Individual and teamwork: Function effectively as an individual, and as a member or leader in
PO9
diverse teams, and in multidisciplinary settings.
Communication: Communicate effectively on complex engineering activities with the
engineering community and with society at large, such as, being able to comprehend and write
PO10
effective reports and design documentation, make effective presentations, and give and receive
clear instructions.
Project management and finance: Demonstrate knowledge and understanding of the
PO11 engineering and management principles and apply these to one’s own work, as a member and
leader in a team, to manage projects and in multidisciplinary environments.
Life-long learning: Recognize the need for and have the preparation and ability to engage in
PO12
independent and life-long learning in the broadest context of technological change.
Have the ability to work with emerging technologies in computing requisite to Industry
PSO1 4.0.
Demonstrate Engineering Practice learned through industry internship and research
PSO2
project to solve live problems in various domains.
PO PO PO PO PO PO PO PO PO PO PO PO PS PS
CO/PO
1 2 3 4 5 6 7 8 9 10 11 12 O1 O2
E2UU5
01B.1 2 1 2 1
E2UU5
01B.2 2 2 2 2 `
E2UU5
01B.3 2 2 2 1 2 1 2
E2UU5
01B.4 2 2 2 1 2 1 2 1
COURSE ASSESSMENT
α
Lab Work-15 marks + Lab Record-10 marks
*Passing Criteria-30% of marks to be secured in the lab Exam conducted by two examiners (one
internal and one external)
COURSE CONTENT
THEORY
Theory/
L-No Topic for Delivery Skill Competency
Practical Plan
1. History and evolution of cryptocurrencies Theory
2. Bitcoin: Origins, architecture, and features Theory
3. Alternative cryptocurrencies (altcoins) Theory Apply encryption
Practical and hashing
4.
Introduction to Pythonic Object oriented approach functions to create a
5. Practical blockchain platform.
6. Cryptocurrency market overview and analysis Theory
7. Basics of cryptography and encryption Theory
8. Hash functions Theory
9. Introduction to Python Library - Matplotlib Practical CO1
10. Introduction to cryptographic libraries Practical
Apply PKI
11. Digital signatures Theory cryptographic
Public Key cryptography algorithms and
12. Theory
Digital signatures to
13. Private key cryptography Theory enable secured
14. Introduction to Data structure approach in Python Practical storage of data
15. Implement a linked list of objects in python Practical
16. Cryptographic protocols in cryptocurrencies Theory
17. Distributed ledger technology Theory
18. Consensus mechanisms Theory
19. Learn about cryptographic algorithms like SHA- Practical
256 for hashing and digital signatures. Create Design and deploy
20. Practical Blockchain
Python functions to perform these operations.
21. Blockchain architecture Theory components and
22. Blockchain components Theory consensus algorithm
Blockchain types: public, using Python scripts
23. Theory
Use the CoinGecko API to retrieve real-time
24. Practical
cryptocurrency price data. CO1, CO2
Write a Python script to fetch data for a specific
25. Practical
cryptocurrency and display it.
26. Blockchain types: private Theory
27. Blockchain types: consortium Theory Implement
28. Mining Theory transaction
Enhance the script to plot the price history using a validation across
29. Practical chain using Python
library like Matplotlib.
scripts
Develop a Python class representing a basic
30. Practical
blockchain
31. Block creation Theory
32. Transaction validation Theory
33. Introduction to Python and relevant libraries Theory
Implement functions to add blocks, validate the
34. Practical Design
chain and calculate the hash.
Test the blockchain by adding blocks and cryptocurrency
35. Practical platform using
checking the integrity of the chain. Python libraries
36. Introduction to Python and relevant libraries Theory
37. Introduction to Python and relevant libraries Theory
38. Methods of retrieving cryptocurrency data Theory
Use a Python library like bitcoinlib to generate a
39. Practical
Bitcoin address and private key. Fetch and analyze
Develop a script to create a transaction and sign blockchain data CO2, CO3
40. Practical from ledger
it using the private key.
41. Retrieving cryptocurrency data Theory
42. Analysing cryptocurrency data Theory
43. Wallet management and transaction processing Theory
Broadcast the transaction to the Bitcoin network
44. Practical
using a public API. Design wallet to
Broadcast the transaction to the Bitcoin network store crypto and
45. Practical enable transaction
using a public API.
46. Wallet management and transaction processing Theory
47. Wallet management and transaction processing Theory
48. Building simple cryptocurrency applications Theory
49. Build a simple web-based blockchain explorer that Practical
displays the blocks and transactions in your Apply the
50. blockchain. Practical mechanism of
51. Building simple cryptocurrency applications Theory various crypto
Building simple cryptocurrency applications Theory functional features
52.
53. Solidity language overview Theory
Write a simple Solidity contract to store and
54. Practical
retrieve a value on the Ethereum blockchain.
Compile the contract using the Solidity compiler
55. Practical
(e.g., solc). CO3, CO4
56. Solidity language overview Theory
Solidity language overview Theory Design Smart
57.
contracts using
58. Smart contracts and their role in DApps Theory Solidity
Deploy the contract to a test network like Ropsten
59. Practical
and interact with it using a web3 library in Python.
Use the Uniswap API or a similar DEX to retrieve
60. Practical
token price and liquidity data.
61. Smart contracts and their role in DApps Theory
62. Developing, testing, and deploying smart contracts Theory
63. Developing, testing, and deploying smart contracts Theory
Develop a Python script to query the DEX for Develop customized
64. Practical
trading pairs and display the information. contracts for Tokens
Demonstrate the process of swapping tokens using
65. Practical
the DEX and monitor the transaction status.
Interacting with Ethereum blockchain using
66. Theory
Solidity
Interacting with Ethereum blockchain using
67. Theory Deploy functional
Solidity
Interacting with Ethereum blockchain using components to
68. Theory enable crypto
Solidity
communication
Write a Solidity contract that contains a bug (e.g., using solidity. CO4
69. Practical
a logical error or vulnerability).
Use a testing framework like Truffle to write unit
70. Practical
tests for the contract.
71. Decentralized finance (DeFi) and its applications Theory
72. Security considerations and best practices Theory
Scaling solutions and future developments in
73. Theory
cryptocurrencies Design and develop
Identify and fix the bug and rerun the tests to scalable DApps
74. Practical using web3 libraries
ensure the contract behaves as expected.
Develop a simple DApp using Solidity for the
75. smart contract and web3 libraries in Python for the Practical
frontend.
Text Books:
1. "Mastering Bitcoin: Unlocking Digital Cryptocurrencies" by Andreas M. Antonopoulos,
O'Reilly Media; 3rd edition (December 19, 2023) ISBN - 1098150090
2. Online Documentation: Solidity Documentation (https://soliditylang.org/)
Reference Books:
1. "Applied Cryptography: Protocols, Algorithms, and Source Code in C" by Bruce Schneier
2. "Blockchain Basics: A Non-Technical Introduction in 25 Steps" by Daniel Drescher
3. "Python for Data Analysis" by Wes McKinney
4. Article: "Security Considerations for Blockchain Applications" by Binance Academy Explore
our content | Binance Academy
NPTEL/MOOCS/SWAYAM/Courses/Video:
1. "DeFi 101" by ConsenSys Academy - Courses (cryptohiveacademy.com)
2. "Bitcoin and Cryptocurrency Technologies" by Princeton University (Highly Recommended)
- Bitcoin and Cryptocurrency Technologies | Coursera
3. "Cryptography I" by Stanford University - Cryptography I Course (Stanford) | Coursera
4. "Blockchain Basics" by University of California, Berkeley - Blockchain Technology | edX
5. "Ethereum and Solidity: The Complete Developer's Guide" by Stephen Grider - Code with
Ethereum & Solidity: The Complete Developer Guide | Udemy
PRACTICE PROBLEMS (SELF STUDY & ASSIGNMENTS)
Students are advised to follow the same order of the below practice problems to get a better
understanding of implementing a cryptocurrency from scratch to the fully operational level. Use
Python to demonstrate the following practice problems.
2. Cryptocurrency Wallet:
• Develop a cryptocurrency wallet that allows users to create accounts, view balances,
send transactions, and generate wallet addresses.
5. Token Creation:
• Create your own cryptocurrency token on top of an existing blockchain platform (like
Ethereum) or build a custom blockchain for token creation.
6. Smart Contracts:
• Implement a simple smart contract system on a blockchain, allowing parties to create
self-executing agreements.
9. Blockchain Explorer:
• Build a web-based tool that allows users to explore the blocks, transactions, and
addresses on a blockchain network.
10. Proof of Stake (PoS) Blockchain:
• Implement a blockchain that uses a proof-of-stake consensus mechanism instead of
proof of work (PoW).
Each of these project ideas presents an opportunity to explore different aspects of blockchain
technology and its real-world applications. As you work on these projects, you will gain valuable
experience in blockchain development, smart contracts, and decentralized applications, while also
improving your Python and Solidity programming skills.