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.
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.
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.2 Privacy issues
1.4 The Bitcoin approach
1.4.2 Limited supply
1.5 How is Bitcoin used?
1.5.2 Cross-border payments
1.5.5 Non-currency uses
1.5.6 How is Bitcoin valued?
1.5.7 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 "hard"
2.2.5 Some well known hash functions
2.3 Digital signatures
2.3.1 Typical use of digital signatures
2.3.2 Improving cookie token security
2.3.3 Preparation: John generates a key pair
2.3.4 Recap on key pairs
2.3.5 Where were we?
2.3.6 John signs his payment
2.3.7 Lisa verifies the signature
2.4 Private key security
2.5.1 System changes
2.6.1 Warm up
2.6.2 Dig in
3 Addresses Adding privacy
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.1 Where were we?
3.4.3 Base58check decoding
3.5 Back to privacy
3.6.1 System changes
3.7.1 Warm up
3.7.2 Dig in
4 Wallets - Managing keys
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 Where were we?
4.5 Back to backup
4.5.1 Mnemonic sentences
4.5.2 Encode seed into mnemonic sentence
4.5.3 Decode mnemonic sentence into seed
4.6 Extended public keys
4.7 Hardened private key derivation
4.8. Public key multiplication
4.8.1 Why is this secure?
4.8.2 xpub derivation
4.8.3 Public key encoding
4.9.1 System changes
4.10.1 Warm up
4.10.2 Dig in
5 Transactions Reducing trust in Lisa
5.1 Problems with old system
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.2.4 Account based and value based systems
5.3.1 Why use a program?
5.3.2. Why signature script and pubkey script?
5.4 Where were we?
5.5 Fancy payment types
5.5.1 Multiple signatures
5.5.2 Pay to script hash (p2sh)
5.5.3 Pay to script hash addresses
5.6 More stuff in transactions
5.7 Rewards and coin creation
5.7.1 Transition from version 4.0
5.8 Trust in Lisa
5.9.1 System changes
5.10.1 Warm up
5.10.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 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 - Resist censorship
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 - Ditch shared folder and email
8.1 The shared folder
8.2 Let’s build a peer to peer network
8.3 How do peers talk?
8.4 The network protocol
8.4.1 John sends the transaction
8.4.2 Tom forwards the transaction
8.4.3 Cafe’s lightweight wallet is notified
8.4.4 Include the transaction in a block
8.4.5 Notify wallets
8.4.6 More confirmations
8.5 Leaving the cookie token system
8.5.1 Bitcoin at a glance
8.6 Where were we
8.7 Bootstrapping the network
8.7.1 Step 1 - Run the software
8.7.2 Step 2 - Connect to nodes
8.7.3 Step 3 - Synchronize
8.7.4 Step 4 - Normal operation
8.8.1 Part 1: Following a transaction
8.8.2 Part 2: Joining the network
8.8.3 System changes
8.9.1 Warm up
8.9.2. Dig in
9 Transactions revisited - Bells and whistles
9.1 Time locked transactions
9.1.1 Time measurements
9.1.2 Relative time locks
9.2 Time locked outputs
9.2.1 Absolute time locked outputs
9.2.2 Relative time locked outputs
9.2.3 Atomic swaps
9.3 Storing stuff in the Bitcoin blockchain
9.3.1 Bloated UTXO set
9.3.2 Create a token in Bitcoin
9.3.3. Start the car with proof of ownership
9.4 Replace pending transactions
9.4.1 Opt-in replace by fee
9.4.2 Child pays for parent
9.5 Different signature types
9.7.1. Warm up
9.7.2. Dig in
10 Segregated witness - Fixing malleability and more
10.1.1 Transaction malleability
10.1.2 Inefficient signature verification
10.1.3 Waste of bandwidth
10.1.4 Script upgrades are hard
10.2.1 Segwit addresses
10.2.2 Spend your segwit output
10.2.3 Verify the segwit transaction
10.2.4 Including your segwit transaction in a block
10.2.5 Pay to witness script hash
10.2.6 New hashing method for signatures
10.2.7 Bandwidth savings
10.2.8 Upgradeable script
10.3 Wallet compatibility
10.4 Recap of payment types
10.5 Block limits
10.5.1 Block size limit
10.5.2 Signature operations limit
10.5.3 Increasing the limits
10.7.1 Warm up
10.7.2 Dig in
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
About the readerThis book provides a jargon-free introduction to Bitcoin for any technically interested reader. Some chapters address technical concepts that require basic knowledge of networking and programming.
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.
It is by far the easiest read I had about Bitcoin and digital currencies.
All you wanted to know about the Bitcoin technology (but didn't dare ask anybody)...