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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Adams, H., Zinsmeister, N., & Robinson, D. (2020). Uniswap v2 Core (Whitepaper). https://uniswap.org/whitepaper.pdf
Cited in: Ch29
Books and Standards
- 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
- Antonopoulos, A. M. (2017). Mastering Bitcoin: Programming the Open Blockchain (2nd ed.). O’Reilly Media.
Cited in: Ch6, Ch15, Ch19, Ch20, Ch23, Ch24, Ch30
- 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
- van Steen, M., & Tanenbaum, A. S. (2017). Distributed Systems (3rd ed.). distributed-systems.net. https://www.distributed-systems.net/
Cited in: Ch3, Ch5
- 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
- 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
- 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
- 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
- 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
- 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
Bitcoin Improvement Proposals and Documentation
- Wuille, P. (2012). BIP-32: Hierarchical Deterministic Wallets. Bitcoin Improvement Proposals. https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
Cited in: Ch24
- 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
- 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
- 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
- Bitcoin Project. (n.d.). Bitcoin Developer Guide. developer.bitcoin.org. https://developer.bitcoin.org/devguide/
Cited in: Ch15, Ch21, Ch23, Ch26
- Cambridge Centre for Alternative Finance. (n.d.). Cambridge Bitcoin Electricity Consumption Index. https://ccaf.io/cbnsi/cbeci
Cited in: Ch15
Ethereum Documentation (ethereum.org)
- ethereum.org. (n.d.). Intro to Ethereum. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/intro-to-ethereum/
Cited in: Ch8
- ethereum.org. (n.d.). Intro to Ether. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/intro-to-ether/
Cited in: Ch11
- ethereum.org. (n.d.). Web2 vs Web3. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/web2-vs-web3/
Cited in: Ch3, Ch4
- ethereum.org. (n.d.). Introduction to dapps. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/dapps/
Cited in: Ch4
- ethereum.org. (n.d.). Ethereum accounts. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/accounts/
Cited in: Ch9, Ch10
- ethereum.org. (n.d.). Transactions. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/transactions/
Cited in: Ch13
- ethereum.org. (n.d.). Blocks. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/blocks/
Cited in: Ch2
- ethereum.org. (n.d.). Gas and fees. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/gas/
Cited in: Ch12
- ethereum.org. (n.d.). Ethereum Virtual Machine (EVM). Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/evm/
Cited in: Ch8, Ch25
- ethereum.org. (n.d.). Opcodes for the EVM. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/evm/opcodes/
Cited in: Ch12, Ch25
- ethereum.org. (n.d.). Nodes and clients. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/nodes-and-clients/
Cited in: Ch8, Ch22
- ethereum.org. (n.d.). Networks. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/networks/
Cited in: Ch8, Ch30
- ethereum.org. (n.d.). Consensus mechanisms. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/consensus-mechanisms/
Cited in: Ch14, Ch16
- ethereum.org. (n.d.). Proof-of-work (PoW). Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/
Cited in: Ch15, Ch17
- 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
- ethereum.org. (n.d.). The Merge. Ethereum Roadmap. https://ethereum.org/en/roadmap/merge/
Cited in: Ch6, Ch7, Ch16, Ch17
- ethereum.org. (n.d.). Ethereum energy consumption. https://ethereum.org/en/energy-consumption/
Cited in: Ch16, Ch17
- ethereum.org. (n.d.). Introduction to smart contracts. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/smart-contracts/
Cited in: Ch4, Ch7
- ethereum.org. (n.d.). Smart contract security. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/smart-contracts/security/
Cited in: Ch26, Ch28, Ch29
- ethereum.org. (n.d.). ERC-20 Token Standard. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/standards/tokens/erc-20/
Cited in: Ch18
- 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
- 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
- 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
- ethereum.org. (n.d.). Oracles. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/oracles/
Cited in: Ch28, Ch29, Ch31
- ethereum.org. (n.d.). Scaling. Ethereum Developer Documentation. https://ethereum.org/en/developers/docs/scaling/
Cited in: Ch22, Ch30
- ethereum.org. (n.d.). Decentralized finance (DeFi). https://ethereum.org/en/defi/
Cited in: Ch28, Ch29, Ch31
- ethereum.org. (n.d.). What are DAOs? https://ethereum.org/en/dao/
Cited in: Ch29
- ethereum.org. (n.d.). Non-fungible tokens (NFT). https://ethereum.org/en/nft/
Cited in: Ch27
- ethereum.org. (n.d.). Ethereum wallets. https://ethereum.org/en/wallets/
Cited in: Ch24
- ethereum.org. (n.d.). Ethereum staking. https://ethereum.org/en/staking/
Cited in: Ch11, Ch16