Why do I need to learn about blockchain?
Blockchain offers interesting and unique solution for applications that need distributed consensus.
Nowadays, a key skill of a software developer is the ability to use blockchain-based platforms and tools such to solve real-world problems related to distributed agreements.
What can I do after finishing learning about blockchain?
You will be to create decentralized applications (dApps) using platforms like Ethereum or Hyperledger, and smart contract programming language like Solidity.
That sounds fun! What should I do now?
First, please read this book, Bruce Schneier (1996). Applied Cryptography – Protocols, Algorithms and Source Code in C. Wiley, to learn about the core protocols and algorithms in cryptography.
After that, please read this book, Arvind Narayanan et al. (2016). Bitcoin and Cryptocurrency Technologies – A Comprehensive Introduction. Princeton University Press, to learn about the core concepts of blockchain.
After that, please read this book, Andreas M. Antonopoulos and David A. Harding (2023). Mastering Bitcoin – Programming the Open Blockchain. O’Reilly Media, and this book, Kalle Rosenbaum (2019). Grokking Bitcoin. Manning Publications, to learn about programming with Bitcoin.
After that, please read this book, Andreas M. Antonopoulos and Gavin Wood (2018). Mastering Ethereum. O’Reilly Media, to learn about programming with Ethereum.
After that, please read this book, Matt Zand et al. (2021). Hands-On Smart Contract Development with Hyperledger Fabric V2. O’Reilly Media, to learn about programming blockchain using Hyperledger Fabric.
Terminology Review:
- Public Keys.
- Private Keys.
- Digital Signatures.
- Digital Signature Scheme.
- Cryptographic Hash Functions.
- Merkle Tree: Binary Data Tree with Hashes.
- Bitcoin: Digital money ecosystem.
- bitcoin: Unit of currency.
- Bitcoin Users.
- Bitcoin Wallets.
- Bitcoin Addresses.
- Bitcoin Transactions.
- Blockchain Explorer.
- Bitcoin Mining, Miners.
- The Chain of Transactions.
- Bitcoin Core: The reference implementation of the bitcoin system.
- Bitcoin Exchanges.
- Bitcoin Network.
- Double‐Spending Attacks.
- Block Chain: Timestamped Append-Only Log.
- Sybil Attack: Copies of nodes that a malicious adversary can create to look like there are a lot of different participants.
- Proof of Work: Find a number, or nonce, such that H(nonce || prev_hash || tx || tx || … || tx) < target.
51‐Percent Attack. - Account-Based Ledger: The ledger keeps track of account balances.
- Unspent Transaction Output: A transaction output that can be used as input in a new transaction.
- Transaction-Based Ledger: The ledger keeps track of individual transaction outputs.
- Coinbase Transactions.
- Bitcoin Scripting Language.
- Turing Incompleteness.
- Stateless Verification.
- Candidate Block.
- Genesis Block.
- Ethereum: The world computer.
- Ether.
- Externally Owned Accounts (EOAs).
- Contract Accounts.
- Solidity.
- Smart Contracts.
- Ethereum Clients.
- Ethereum Networks.
- Permissionless Blockchain.
- Permissioned Blockchain.
After finishing learning this topic please click Topic 28 – Introduction to AI-Augmented Software Engineering to continue.