Curriculum For Blockchain Networks
Curriculum For Blockchain Networks
Curriculum For Blockchain Networks
This 5 week course is a blend of face-to-face intensive training and online supported instruction.
In this module, we look at blockchain technology in overview and introduce students to basic blockchain
concepts like blockchain networks, cryptocurrencies, wallets, smart contracts and DApps. Students get into
practice by experimenting with an ETH wallet, sending and tracking transactions in the Ethereum testnet, as
well as writing a simple blockchain network in Python.
This session delves into the fundamentals of blockchain cryptography: elliptic curve cryptography (ECC),
secp256k1, private keys, public keys, addresses, ECDSA, hashing algorithms and digital signatures. Students
look at popular crypto libraries and participate in live coding exercises to generate keys and sign/verify
messages using secp256k1 EC cryptography.
Students learn about: Proof of Work (PoW), Proof of Stake (PoS), Delegated PoS, Practical Byzantine Fault
Tolerance (PBFT), Proof of Importance (PoI), Proof of Authority (PoA), Tangle and Hashgraph. They are
introduced to hard and soft forks and begin their first practical project to build a blockchain network; this
project considers all major aspects of designing a blockchain network.
In this module, students work towards understanding the mining process in the proof-of-work systems, core
mining concepts, mining software, mining pools, mining hardware and software. Students engage in live
coding to build a simple miner. Students reinforce the mining process skill-set by actively mining Ethereum
and Monero in pools. Students design a Miner for their blockchain network and test implementation.
In this module, students begin their practical project by designing and implementing a blockchain node,
consider aspects of the Node core logic and implementing peer interaction and consensus protocols. During
a live coding session, students start from a mock implementation of all the REST endpoints and write the
logic behind them
MODULE 6: WALLETS AND WALLET APIS
Students develop their understanding of wallets, hierarchical deterministic wallets and key derivation (HD
wallets, BIP-39, BIP-44 standards), hardware wallets, paper wallets, wallet software and online wallets. In a
live coding session, students build a wallet, wallet APIs, generate keys, use mnemonics and key derivation,
create, sign and send transactions.
This module focuses on transaction models and cryptocurrency exchanges. Students look at “UTXO” vs
“account balances” models and use the Bitcoin and Ethereum APIs to create, sign and send transactions.
Students are introduced to cryptocurrency exchanges, and decentralized trading platforms like HodlHodl.
This session focuses on creating and implementing a wallet for student’s practical projects. Students will
write code to create a new wallet, open an existing wallet, retrieve the account balances and create, sign and
send transactions from a wallet account
This module focuses on off-chain transactions, payment channels and the Lightning Network. Students
conduct a variety of exercises during live coding sessions to open channels and send payments.
This session highlights the role of anonymity in blockchain networks. Students also consider the role of
privacy on the blockchain, zero-knowledge proofs, confidential transactions and privacy coins. Students
execute confidential transactions in the ZCash Testnet.