Originality and Attribution Statement
  • All notes, explanations, examples, questions, answers and MCQs in this course are original material written for this course. Hash values and function selectors shown in examples were computed independently.
  • The works below were consulted for facts and are cited in the chapter(s) listed beside each entry, for attribution and further reading.
  • No text is reproduced from these sources beyond short technical names, titles and standard identifiers (such as function names defined by a standard).
  • Product names, logos and trademarks belong to their respective owners. Links lead to external websites that are not controlled by Ishaanvi InfoSoft.
Foundational Papers
  1. Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System. https://bitcoin.org/bitcoin.pdf
    Cited in: Ch1, Ch2, Ch6, Ch14, Ch15, Ch17, Ch19, Ch21, Ch23, Ch26
  2. Haber, S., & Stornetta, W. S. (1991). How to time-stamp a digital document. Journal of Cryptology, 3(2), 99–111. https://doi.org/10.1007/BF00196791
    Cited in: Ch1, Ch6
  3. Bayer, D., Haber, S., & Stornetta, W. S. (1993). Improving the efficiency and reliability of digital time-stamping. In Sequences II (pp. 329–334). Springer. https://doi.org/10.1007/978-1-4613-9323-8_24
    Cited in: Ch6, Ch21
  4. Merkle, R. C. (1988). A digital signature based on a conventional encryption function. In Advances in Cryptology – CRYPTO ’87, LNCS 293 (pp. 369–378). Springer. https://doi.org/10.1007/3-540-48184-2_32
    Cited in: Ch6, Ch21
  5. Szabo, N. (1997). Formalizing and securing relationships on public networks. First Monday, 2(9). https://doi.org/10.5210/fm.v2i9.548
    Cited in: Ch7
  6. Lamport, L., Shostak, R., & Pease, M. (1982). The Byzantine Generals Problem. ACM Transactions on Programming Languages and Systems, 4(3), 382–401. https://doi.org/10.1145/357172.357176
    Cited in: Ch5, Ch14
  7. Castro, M., & Liskov, B. (1999). Practical Byzantine Fault Tolerance. Proceedings of the Third Symposium on Operating Systems Design and Implementation (OSDI ’99). https://pmg.csail.mit.edu/papers/osdi99.pdf
    Cited in: Ch14
  8. Gilbert, S., & Lynch, N. (2002). Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News, 33(2), 51–59. https://doi.org/10.1145/564585.564601
    Cited in: Ch5
  9. Buterin, V. (2013). Ethereum Whitepaper: A Next-Generation Smart Contract and Decentralized Application Platform. ethereum.org. https://ethereum.org/en/whitepaper/
    Cited in: Ch6, Ch7, Ch8, Ch11, Ch30
  10. Wood, G. Ethereum: A Secure Decentralised Generalised Transaction Ledger (Ethereum Yellow Paper). https://ethereum.github.io/yellowpaper/paper.pdf
    Cited in: Ch8, Ch9, Ch10, Ch12, Ch13, Ch19, Ch21, Ch25
  11. Adams, H., Zinsmeister, N., & Robinson, D. (2020). Uniswap v2 Core (Whitepaper). https://uniswap.org/whitepaper.pdf
    Cited in: Ch29
Books and Standards
  1. Narayanan, A., Bonneau, J., Felten, E., Miller, A., & Goldfeder, S. (2016). Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press. ISBN 978-0-691-17169-2.
    Cited in: Ch1, Ch2, Ch6, Ch14, Ch15, Ch19, Ch20, Ch21, Ch22, Ch23, Ch26
  2. Antonopoulos, A. M. (2017). Mastering Bitcoin: Programming the Open Blockchain (2nd ed.). O’Reilly Media.
    Cited in: Ch6, Ch15, Ch19, Ch20, Ch23, Ch24, Ch30
  3. Antonopoulos, A. M., & Wood, G. (2018). Mastering Ethereum: Building Smart Contracts and DApps. O’Reilly Media.
    Cited in: Ch4, Ch7, Ch8, Ch9, Ch10, Ch11, Ch12, Ch18, Ch20, Ch25, Ch26, Ch28, Ch29
  4. van Steen, M., & Tanenbaum, A. S. (2017). Distributed Systems (3rd ed.). distributed-systems.net. https://www.distributed-systems.net/
    Cited in: Ch3, Ch5
  5. Yaga, D., Mell, P., Roby, N., & Scarfone, K. (2018). Blockchain Technology Overview (NISTIR 8202). National Institute of Standards and Technology. https://doi.org/10.6028/NIST.IR.8202
    Cited in: Ch1, Ch2, Ch3, Ch5, Ch14, Ch19, Ch22, Ch31
  6. National Institute of Standards and Technology. (2015). Secure Hash Standard (SHS) (FIPS PUB 180-4). https://doi.org/10.6028/NIST.FIPS.180-4
    Cited in: Ch19
  7. National Institute of Standards and Technology. (2015). SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions (FIPS PUB 202). https://doi.org/10.6028/NIST.FIPS.202
    Cited in: Ch10, Ch19
  8. National Institute of Standards and Technology. (2023). Digital Signature Standard (DSS) (FIPS 186-5). https://doi.org/10.6028/NIST.FIPS.186-5
    Cited in: Ch20
  9. Certicom Research. (2010). SEC 2: Recommended Elliptic Curve Domain Parameters (Version 2.0). Standards for Efficient Cryptography Group. https://www.secg.org/sec2-v2.pdf
    Cited in: Ch10, Ch20
  10. World Wide Web Consortium (W3C). Verifiable Credentials Data Model v2.0. W3C Recommendation. https://www.w3.org/TR/vc-data-model-2.0/
    Cited in: Ch31
Ethereum Improvement Proposals (EIP/ERC)
  1. Vogelsteller, F., & Buterin, V. (2015). ERC-20: Token Standard. Ethereum Improvement Proposals, no. 20. https://eips.ethereum.org/EIPS/eip-20
    Cited in: Ch18
  2. Ethereum Improvement Proposals. (2016). EIP-55: Mixed-case checksum address encoding. https://eips.ethereum.org/EIPS/eip-55
    Cited in: Ch10
  3. Ethereum Improvement Proposals. (2016). EIP-155: Simple replay attack protection. https://eips.ethereum.org/EIPS/eip-155
    Cited in: Ch13
  4. Ethereum Improvement Proposals. (2018). EIP-1014: Skinny CREATE2. https://eips.ethereum.org/EIPS/eip-1014
    Cited in: Ch10
  5. Ethereum Improvement Proposals. (2019). EIP-1559: Fee market change for ETH 1.0 chain. https://eips.ethereum.org/EIPS/eip-1559
    Cited in: Ch11, Ch12, Ch13
  6. Ethereum Improvement Proposals. (2020). EIP-2718: Typed Transaction Envelope. https://eips.ethereum.org/EIPS/eip-2718
    Cited in: Ch13
  7. Ethereum Improvement Proposals. (2020). EIP-2930: Optional access lists. https://eips.ethereum.org/EIPS/eip-2930
    Cited in: Ch13
  8. Ethereum Improvement Proposals. (2022). EIP-4844: Shard Blob Transactions. https://eips.ethereum.org/EIPS/eip-4844
    Cited in: Ch13, Ch30
  9. Ethereum Improvement Proposals. (2024). EIP-7702: Set Code for EOAs. https://eips.ethereum.org/EIPS/eip-7702
    Cited in: Ch9, Ch13
  10. Ethereum Improvement Proposals. (2018). ERC-721: Non-Fungible Token Standard. https://eips.ethereum.org/EIPS/eip-721
    Cited in: Ch27
  11. Ethereum Improvement Proposals. (2018). ERC-1155: Multi Token Standard. https://eips.ethereum.org/EIPS/eip-1155
    Cited in: Ch27
  12. Ethereum Improvement Proposals. (2020). ERC-2981: NFT Royalty Standard. https://eips.ethereum.org/EIPS/eip-2981
    Cited in: Ch27
  13. Ethereum Improvement Proposals. (2021). ERC-4337: Account Abstraction Using Alt Mempool. https://eips.ethereum.org/EIPS/eip-4337
    Cited in: Ch9, Ch24
Bitcoin Improvement Proposals and Documentation
  1. Wuille, P. (2012). BIP-32: Hierarchical Deterministic Wallets. Bitcoin Improvement Proposals. https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
    Cited in: Ch24
  2. Palatinus, M., Rusnak, P., Voisine, A., & Bowe, S. (2013). BIP-39: Mnemonic code for generating deterministic keys. Bitcoin Improvement Proposals. https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
    Cited in: Ch24
  3. Palatinus, M., & Rusnak, P. (2014). BIP-44: Multi-Account Hierarchy for Deterministic Wallets. Bitcoin Improvement Proposals. https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
    Cited in: Ch24
  4. Wuille, P., Nick, J., & Ruffing, T. (2020). BIP-340: Schnorr Signatures for secp256k1. Bitcoin Improvement Proposals. https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki
    Cited in: Ch20, Ch23
  5. Bitcoin Project. (n.d.). Bitcoin Developer Guide. developer.bitcoin.org. https://developer.bitcoin.org/devguide/
    Cited in: Ch15, Ch21, Ch23, Ch26
  6. Cambridge Centre for Alternative Finance. (n.d.). Cambridge Bitcoin Electricity Consumption Index. https://ccaf.io/cbnsi/cbeci
    Cited in: Ch15
Ethereum Documentation (ethereum.org)
  1. ethereum.org. (n.d.). Intro to Ethereum. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/intro-to-ethereum/
    Cited in: Ch8
  2. ethereum.org. (n.d.). Intro to Ether. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/intro-to-ether/
    Cited in: Ch11
  3. ethereum.org. (n.d.). Web2 vs Web3. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/web2-vs-web3/
    Cited in: Ch3, Ch4
  4. ethereum.org. (n.d.). Introduction to dapps. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/dapps/
    Cited in: Ch4
  5. ethereum.org. (n.d.). Ethereum accounts. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/accounts/
    Cited in: Ch9, Ch10
  6. ethereum.org. (n.d.). Transactions. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/transactions/
    Cited in: Ch13
  7. ethereum.org. (n.d.). Blocks. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/blocks/
    Cited in: Ch2
  8. ethereum.org. (n.d.). Gas and fees. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/gas/
    Cited in: Ch12
  9. ethereum.org. (n.d.). Ethereum Virtual Machine (EVM). Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/evm/
    Cited in: Ch8, Ch25
  10. ethereum.org. (n.d.). Opcodes for the EVM. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/evm/opcodes/
    Cited in: Ch12, Ch25
  11. ethereum.org. (n.d.). Nodes and clients. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/nodes-and-clients/
    Cited in: Ch8, Ch22
  12. ethereum.org. (n.d.). Networks. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/networks/
    Cited in: Ch8, Ch30
  13. ethereum.org. (n.d.). Consensus mechanisms. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/consensus-mechanisms/
    Cited in: Ch14, Ch16
  14. ethereum.org. (n.d.). Proof-of-work (PoW). Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/
    Cited in: Ch15, Ch17
  15. ethereum.org. (n.d.). Proof-of-stake (PoS). Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/
    Cited in: Ch13, Ch16, Ch17, Ch20
  16. ethereum.org. (n.d.). The Merge. Ethereum Roadmap. https://ethereum.org/en/roadmap/merge/
    Cited in: Ch6, Ch7, Ch16, Ch17
  17. ethereum.org. (n.d.). Ethereum energy consumption. https://ethereum.org/en/energy-consumption/
    Cited in: Ch16, Ch17
  18. ethereum.org. (n.d.). Introduction to smart contracts. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/smart-contracts/
    Cited in: Ch4, Ch7
  19. ethereum.org. (n.d.). Smart contract security. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/smart-contracts/security/
    Cited in: Ch26, Ch28, Ch29
  20. ethereum.org. (n.d.). ERC-20 Token Standard. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/standards/tokens/erc-20/
    Cited in: Ch18
  21. ethereum.org. (n.d.). ERC-721 Non-Fungible Token Standard. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/standards/tokens/erc-721/
    Cited in: Ch27
  22. ethereum.org. (n.d.). ERC-1155 Multi-Token Standard. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/standards/tokens/erc-1155/
    Cited in: Ch27
  23. ethereum.org. (n.d.). Merkle Patricia Trie. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/
    Cited in: Ch9, Ch21
  24. ethereum.org. (n.d.). Oracles. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/oracles/
    Cited in: Ch28, Ch29, Ch31
  25. ethereum.org. (n.d.). Scaling. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/scaling/
    Cited in: Ch22, Ch30
  26. ethereum.org. (n.d.). Decentralized finance (DeFi). https://ethereum.org/en/defi/
    Cited in: Ch28, Ch29, Ch31
  27. ethereum.org. (n.d.). What are DAOs? https://ethereum.org/en/dao/
    Cited in: Ch29
  28. ethereum.org. (n.d.). Non-fungible tokens (NFT). https://ethereum.org/en/nft/
    Cited in: Ch27
  29. ethereum.org. (n.d.). Ethereum wallets. https://ethereum.org/en/wallets/
    Cited in: Ch24
  30. ethereum.org. (n.d.). Ethereum staking. https://ethereum.org/en/staking/
    Cited in: Ch11, Ch16
Language and Tool Documentation
  1. Solidity Team. (n.d.). Solidity Documentation. https://docs.soliditylang.org/
    Cited in: Ch7, Ch11, Ch18, Ch25
  2. Solidity Team. (n.d.). Security Considerations. Solidity Documentation. https://docs.soliditylang.org/en/latest/security-considerations.html
    Cited in: Ch18, Ch26
  3. Crytic (Trail of Bits). (n.d.). evm-opcodes: Ethereum VM (EVM) opcodes and instruction reference. GitHub. https://github.com/crytic/evm-opcodes
    Cited in: Ch12, Ch25
  4. IPFS Documentation. (n.d.). What is IPFS? https://docs.ipfs.tech/concepts/what-is-ipfs/
    Cited in: Ch4, Ch27
  5. Hyperledger Foundation. (n.d.). Hyperledger Fabric Documentation. https://hyperledger-fabric.readthedocs.io/
    Cited in: Ch22, Ch31
Other Educational Sources
  1. GeeksforGeeks. (n.d.). How is Blockchain different from a Linked List? https://www.geeksforgeeks.org/how-is-blockchain-different-from-a-linked-list/
    Cited in: Ch1
  2. GeeksforGeeks. (n.d.). Centralized vs. Decentralized Applications. https://www.geeksforgeeks.org/centralized-vs-decentralized-applications/
    Cited in: Ch3, Ch4
  3. Investopedia. (n.d.). Distributed Applications (dApps). https://www.investopedia.com/terms/d/distributed-applications-apps.asp
    Cited in: Ch5
  4. Investopedia. (n.d.). Blockchain Facts: What Is It, How It Works, and How It Can Be Used. https://www.investopedia.com/terms/b/blockchain.asp
    Cited in: Ch2, Ch31
  5. Investopedia. (n.d.). What Is Proof of Work (PoW) in Blockchain? https://www.investopedia.com/terms/p/proof-work.asp
    Cited in: Ch14, Ch15, Ch17
  6. Investopedia. (n.d.). What Does Proof-of-Stake (PoS) Mean in Crypto? https://www.investopedia.com/terms/p/proof-stake-pos.asp
    Cited in: Ch14, Ch16, Ch17