If you think Bitcoin is just an alternative currency for geeks, it's time to think again. Grokking Bitcoin opens up this powerful distributed ledger system, exploring the technology that enables applications both for Bitcoin-based financial transactions and using the blockchain for registering physical property ownership. With this fully illustrated, easy-to-read guide, you'll finally understand how Bitcoin works, how you can use it, and why you can trust the blockchain. You'll discover how to accept and exchange Bitcoin, participate in the Bitcoin network, set up a digital wallet, and even how Bitcoin mining works. Along the way, you'll dive into the underlying security and distributed system concepts that power Bitcoin. Each chapter is loaded with diagrams and exercises to help you gain a true understanding of each interesting topic.
"You do not need to be a math wizard, or skilled cryptographer to follow along, yet you gain a good understanding of how the Bitcoin system works."
~ Christopher Bailey
"This book accomplishes what it sets out to do - let nearly anyone 'grok' Bitcoin. It does so in an engaging and story-like manner, letting us build up our own blockchain by iterating repeatedly on a system for tracking an alternate currency in a company."
~ Joel Kotarski
"It is by far the easiest read I had about Bitcoin and digital currencies."
~ Jan Goyvaerts
"All you wanted to know about the Bitcoin technology (but didn't dare ask anybody)..."
~ Jean-Francois Morin
1. Introduction to Bitcoin
1.1. What is Bitcoin?
1.2. The big picture
1.2.1. Step 1 - Transactions
1.2.2. Step 2 - The Bitcoin network
1.2.3. Step 3 - The blockchain
1.2.4. Step 4 - Wallets
1.3. Problems with money today
1.3.4. Privacy issues
1.4. The Bitcoin approach
1.4.2. Limited supply
1.5. How is Bitcoin used?
1.5.4. Non-currency uses
1.5.5. How is Bitcoin valued?
1.5.6. When not to use Bitcoin
1.6. Other cryptocurrencies
2. Digital signatures — Securing cookie tokens
2.1. The cookie token spreadsheet
2.2. Cryptographic hashes
2.2.1. Why are cryptographic hash functions useful?
2.2.2. How does a cryptographic hash function work?
2.2.3. Properties of a cryptographic hash function
2.2.4. Illustration of "very hard"
2.3. Digital signatures
2.3.1. Improving cookie token security
2.3.2. Preparation: John generates a key pair
2.3.3. John signs his payment
2.3.4. Lisa verifies the signature
2.4. Private key security
3. Addresses — Resolving privacy issues
3.1. Cookie eating habits undisclosed
3.2. Replace names with public keys
3.2.1. New payment process
3.3. Shorten the public key
3.3.1. Hash public key to 20 bytes
3.3.2. Why SHA256 and RIPEMD160?
3.4. Avoiding expensive typing errors
3.4.2. Base58check decoding
3.5. Back to privacy
3.6. Summary of the address creation process
3.7.1. Warm up
3.7.2. Dig in
4. Wallets — Reducing key chaos and backup issues
4.1. First Wallet version
4.2. Private key backups
4.2.1. A few words on password strength
4.2.2. Problems with password encrypted backups
4.3. Hierarchical deterministic wallets
4.3.1. Derive a master extended private key
4.3.2. Derive a child extended private key
4.4. Back to backup
4.4.1. Mnemonic sentences
4.5. Extended public keys
4.6. Hardened private key derivation
4.7. Public key multiplication
4.7.1. Why is this secure?
4.7.2. xpub derivation
4.7.3. Public key encoding
4.8. Summary of HD wallets
4.9.1. Warm up
4.9.2. Dig in
5. Transactions — Reducing trust in Lisa
5.2. Pay using a transaction
5.2.1. Create the transaction
5.2.2. Lisa confirms the transaction
5.2.3. Anyone verifies the transaction
5.4. Fancy payment types
5.4.1. Multiple signatures
5.4.2. Pay to script hash (p2sh)
5.4.3. Pay to script hash addresses
5.5. Lock time and sequence numbers
5.6. Rewards and coin creation
5.6.1. Transition from version 4.0
5.7. Trust in Lisa
5.9.1. Warm up
5.9.2. Dig in
6. The blockchain — Further reducing trust in Lisa
6.1. Lisa can delete transactions
6.2. Build the blockchain
6.2.1. Lisa builds a block
6.2.2. How does this protect us from deletes?
6.2.3. Why use a blockchain at all?
6.3. Lightweight wallets
6.3.1. Bloom filters, obfuscate addresses
6.3.2. Where were we?
6.3.3. Merkle trees
6.3.4. Security of lightweight wallets
6.4.1. System changes
6.5.1. Warm up
6.5.2. Dig in
7. Proof of work — Avoiding flood of blocks
7.1. Clone Lisa
7.1.1. Block collisions
7.1.2. Draw lucky numbers
7.1.3. Probability of forks
7.2. Where were we?
7.3. Force honest lucky numbers
7.3.1. Produce a valid proof of work
7.3.2. Why is this good?
7.3.3. Comparing with lucky numbers
7.3.4. What if we run out of nonces?
7.4. Miners have to move out
7.4.1. More hashrate is added
7.4.2. Problems with high block rate
7.4.3. What’s fixed?
7.5. Difficulty adjustments
7.5.1. Rules for timestamps
7.5.2. Chain strength vs chain length
7.6. What harm can miners do?
7.6.1. Successful double spend
7.6.2. Protect against double spend attacks
7.7. Transaction fees
7.7.1. But wasn’t this about transactions fees?
7.7.2. When block subsidy is 0
7.8.1. System changes
7.9.1. Warm up
7.9.2. Dig in
8. Peer-to-peer network - Ditching email
9. Transactions Revisited - Bells and whistles
10. Segregated Witness - Fixing malleability and more
11. Bitcoin updates - Safely introduce new stuff
12. Genesis - How it all began
About the TechnologyThe modern world turns on universally-accepted ideas of currency and ownership. Bitcoin, and its underlying technology, offer the potential to move control of these key institutions from change-prone governments to a secure storage system that independently records value and ownership in a distributed public ledger called "the blockchain." Data stored on the blockchain is, for all practical purposes, incorruptible; transactions are verified independently and everything is stored in the blockchain, that no single entity controls. In 2009 Bitcoin introduced the blockchain idea in combination with proof-of-work and incentive mechanisms for use as an alternative currency. Today, individuals, businesses, and institutions are using Bitcoin as the foundation for secure blockchain-based transaction systems.
- Send and receive Bitcoin payments
- Bitcoin transactions
- The blockchain
- Bitcoin mining
- The Bitcoin peer-to-peer network