“A Peer-to-Peer Electronic Cash System”
- An open source software protocol
- Released in 2009
- By anonymous creator(s) Satoshi Nakamoto
- Solves the “Double spend” (digital copy) problem
- Open transaction ledger with pseudonymity
- Open source programmable money
Let’s take it back a step… Bitcoin Prehistory
Bitcoin Basics: What is essential for bitcoin to work?
Software (code)
- Bitcoin Core: Reference implementation (C++)
- btcd: Can be used with LND (Golang)
- Libbitcoin: Alternate implementation by Amir Taaki & Erik Voskuil (C)
- Bitcoin-S: (Scala implementation)
Network (nodes)
- Mining Nodes (Proof of work): ASICs, Mining Pools
- Economic Nodes (Transaction verification):
- Start 9, Umbrel, MyNode, Bitcoin Core
- Lightning Nodes: Core Lightning, LND, Eclair
- Wallets (private keys, signatures, xpubs)
- How users interact with the network
- Samourai, GreenWallet, Sparrow
- Signing devices and hardware wallets
Transactions (blockchain)
- Decentralized Ledger
- UTXOS – Unspent Transaction Outputs (denominations)
- Fractions of bitcoin spent to an address
- Locking, unlocking scripts
- Like melting down and reconstituting gold
- Smallest unit is a satoshi (~2.1 quadrillion)
- Divisible up to 1:100 million or .00000001 bitcoin
- Can be divided up to sub-satoshi on lightning
Consensus Mechanism
- Hard cap 21m bitcoin (~19m already mined)
- Instant Auditability
- Verify with getutxoutsetinfo
- Nakamoto consensus (e.g. PoW & longest valid chain)
- SHA256 Hashing Algorithm
- Proof of Work
- Longest chain is legitimate chain w/ largest amount of computation
- Byzantine Fault Tolerance
- The Byzantine Generals Problem
- Arriving at consensus without a centralized third party
- Solved through proof of work mechanism