Grokking Bitcoin
Kalle Rosenbaum
  • MEAP began May 2017
  • Publication in August 2018 (estimated)
  • ISBN 9781617294648
  • 450 pages (estimated)
  • printed in black & white

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

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.

Table of Contents detailed table of contents

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.1 Segregation

1.3.2 Privacy issues

1.3.3 Inflation

1.3.4 Borders

1.4 The Bitcoin approach

1.4.1 Decentralized

1.4.2 Limited supply

1.4.3 Borderless

1.5 How is Bitcoin used?

1.5.1 Savings

1.5.2 Cross-border payments

1.5.3 Shopping

1.5.4 Speculation

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

1.7 Recap

2 Digital signatures Securing cookie tokens

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.2.6 Summary

2.2.7 Exercises

2.3 Digital signatures

2.3.1 Typical use of digital signatures

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 Summary

2.5.1 System changes

2.6 Exercises

2.6.1 Warm up

2.6.2 Dig in

2.7 Recap

3 Addresses Adding privacy

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.2 Base58check

3.4.3 Base58check decoding

3.5 Back to privacy

3.6 Summary

3.6.1 System changes

3.7 Exercises

3.7.1 Warm up

3.7.2 Dig in

3.8 Recap

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 Summary

4.9.1 System changes

4.10 Exercises

4.10.1 Warm up

4.10.2 Dig in

4.11 Recap

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 Script

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 Summary

5.9.1 System changes

5.10 Exercises

5.10.1 Warm up

5.10.2 Dig in

5.11 Recap

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 Summary

6.4.1 System changes

6.5 Exercises

6.5.1 Warm up

6.5.2 Dig in

6.6. Recap

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 Summary

7.8.1. System changes

7.9 Exercises

7.9.1 Warm up

7.9.2 Dig in

7.10 Recap

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.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 Summary

8.8.1 Part 1: Following a transaction

8.8.2 Part 2: Joining the network

8.8.3 System changes

8.9 Exercises

8.9.1 Warm up

8.9.2. Dig in

8.10 Recap

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.6 Summary

9.7 Exercises

9.7.1. Warm up

9.7.2. Dig in

9.8 Recap

10 Segregated witness - Fixing malleability and more

10.1 Problems

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 Solution

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.6 Summary

10.6.1 Problems

10.6.2 Solution

10.7 Exercises

10.7.1 Warm up

10.7.2 Dig in

10.8 Recap

11 Bitcoin updates - Safely introduce new stuff

12 Genesis - How it all began

About the Technology

The 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.

What's inside

  • Send and receive Bitcoin payments
  • Bitcoin transactions
  • The blockchain
  • Bitcoin mining
  • The Bitcoin peer-to-peer network

About the reader

This 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.

About the author

Kalle Rosenbaum founded Popeller, a Bitcoin consultancy, in 2015. Kalle provides expert software development services, advice, and education around Bitcoin.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
buy
MEAP combo $39.99 pBook + eBook + liveBook
MEAP eBook $31.99 pdf + ePub + kindle + liveBook

FREE domestic shipping on three or more pBooks

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