The blockchain and its various implementations are a wonderful example of technology changing the world. By using a distributed ledger that rewards more people maintaining a true copy, a viable replacement to fiat currencies is now possible.
When I first heard about blockchains, I thought it must use some esoteric technology. This view was easily reinforced by how frequently academic terms like “white paper” and “proof of work” are referenced in the blockchain world. When I started digging deeper into the bitcoin stack however, I found that most of the concepts used were very simple. In fact, I now think that Satoshi was a genius not in that he advanced the state of the art in computer science, but as befits a great engineer, he combined several widely disparate but simple concepts in the computer science & engineering world to create something truly unique & compelling.
What are these concepts? I’ll try to list down 10.
- Public-Private Key Cryptography: for blockchain identify & signing.
- Peer to Peer & Multicast: Easily find and talk to other nodes. First pioneered by P2P file sharing way back!
- Unspent Transaction Output (UTXO) [more detail]: for simplified ledgers.
- Merkle Trees: for efficient storage & verification of transactions.
- Proof of Work Mining: Algorithmic Problem Solving as a reward mechanism.
- Block Creation [more detail]: Use previous block hash + transactions to create block.
- Building a Blockchain: Distributed order creation to avoid double spends.
- Blockchain Forks & Resolution: Longest chain wins.
- Difficulty Adjustment [more detail]: to increase difficulty with mining power, and ensure that blocks are generated in uniform time.
- Independent Transaction Validation: Every node independently verifies transactions before storing in pool. There is no trusted actor!
So there you go! 10 concepts that you have to grok, and then combine to form the foundations of blockchain-based payment networks like Bitcoin. This should easily be a good weekend read 🙂