Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover Page
Title Page
Copyright Page
About the Authors
Brief Contents
Contents in Detail
Preface
Acknowledgments
Chapter 1: What is Bitcoin?
Why Bitcoin Now?
The Benefits of Using Bitcoin
The Complexity and Confusion of Bitcoin
What’s in This Book?
Chapter 2: Bitcoin Basics
How Bitcoin Works in Simple Terms
Bitcoin Units
The Bitcoin Address
The Private Key
The Bitcoin Wallet
Creating Your First Bitcoin Wallet with Electrum
Acquiring Bitcoins in Your Wallet
Spending Bitcoins with Your Wallet
Bitcoin Addresses Generated by Your Bitcoin Wallet Program
The Blockchain
The Blockchain Lottery
Blockchain Forking
Transaction Confirmations, Double Spending, and Irreversibility
Mining Bitcoins
The Complexity of the Bitcoin System
Chapter 3: Storing your Bitcoins Safely, Securely, and Conveniently
Storing Your Private Key(s)
Hot Storage vs. Cold Storage
Personal vs. Hosted Wallets
Safety, Security, and Convenience
Storing Small Amounts of Bitcoins
Online Hosted Wallet Services
Online Personal Wallet Services
Personal Hot Wallet
Storing Large Amounts of Bitcoins
Paper Wallets
Encrypted Paper Wallets
Offline Transaction Signing
Fragmented Private Keys and Multi-Signature Addresses
Fragmented Private Keys
Multi-Signature Addresses
Special Mention: The Bitcoin Hardware Wallet
Special Mention: The Bitcoin Brain Wallet
Choosing the Storage Method That’s Right for You
Chapter 4: Buying Bitcoins
Why Not Just Mine Bitcoins?
Ways to Buy Bitcoins
Buying Bitcoins the Easy Way
Authentication Factors
The Hassle of Converting Dollars (or Other Currencies) into Bitcoins
Reversible Transactions
Irreversible Transactions
Combining Reversible and Irreversible Assets
Why Irreversible Transactions Are Arguably Superior
Buying Bitcoins with Coinbase
Step 1: Registering at Coinbase
Step 2: Setting Up Two-Factor Identification
Step 3: Linking Your Bank Account to Coinbase
Step 4: Buying Bitcoins on Coinbase
Step 5: Protecting Your Shiny New Bitcoins
Buying Bitcoins the Efficient Way
Buying Bitcoins from a Currency Exchange
Step 1: Setting Up an Account and Linking to Your Bank Account
Step 2: Transferring US Dollars to Your Exchange Account
Step 3: Placing an Order to Buy Bitcoins
Market Orders
Limit Orders
Buying Bitcoins the Fun and Futuristic Way
Step 1: Finding Someone to Buy From
Step 2: Deciding on a Meeting Place
Step 3: Handing Over the Money and Getting Your Bitcoins
A Face-to-Face Bitcoin Purchase Without Escrow
Problems During Person-to-Person Transactions
A Face-to-Face Bitcoin Purchase with Escrow
Satoshi Square
Still Don’t See a Buying Option That Works for You?
Chapter 5: Lost at Sea
Chapter 6: Why Bitcoin is a Big Deal
A Brief History of Digital Currencies
The Dawn of Bitcoin
Bitcoin’s First Four Years
Bitcoin’s Early Impact
It Is the Largest Distributed Computing Project in History
It Is a Massive Economic Experiment with Already Surprising Results
It Has Prompted Serious Discussions Within Governments About the Role of Digital Currencies
The Future Potential of Bitcoin
What Are the Existential Risks to Bitcoin?
Does Bitcoin Have Advantages over Existing Currencies?
Can Bitcoin Be Destroyed via Bugs or Hacks?
Can Bitcoin Be Destroyed by Governments or Corporations?
Can Bitcoin Be Supplanted by Another Cryptocurrency?
What Role Might Bitcoin Play in the Future?
Using Bitcoin for Savings
Using Bitcoin as a Medium of Exchange
The Dangers of Decentralized Digital Money
Bitcoin and Illegal Activity
The Energy Costs of Bitcoin
Bitcoin and the Dangers of Deflation
Bitcoin and Government Stability
Chapter 7: The Cryptography Behind Bitcoin
A Brief Cryptography Overview
One-Way Functions
Cryptographic Hash Functions Verify Information
Public Key Cryptography
Digital Signatures
Whis Is It Called a Digital Signature?
Using Digital Signatures
Why Bitcoin Needs Cryptography
Authorizing Transactions with Digital Signatures
Verifying the Validity of the Transaction History
Proof-of-Work in Bitcoin Mining
Extra Protection for Bitcoin Private Keys
Cryptographic Methods Used in Bitcoin
Cryptographic Hash Functions: SHA256 and RIPEMD160
Crowley and the Unfortunate Jelly-Filled Donut Incident
Moving Around on a Line
Elliptic Curve Digital Signature Algorithm (ECDSA)
Signing a Bitcoin Transaction Using ECDSA
The Security of Bitcoin’s Cryptography
Pseudocode for Elliptic Point Summation and Point Multiplication
Chapter 8: Bitcoin Mining
Why Is Bitcoin Mining Needed?
A Parable of Two Generals
Applying the Parable to Bitcoin
Preventing Attacks with Mining
Distributing New Currency with Mining
How Does Bitcoin Mining Work?
How Miners Solve a Block
Anatomy of a Block
Pooled Mining
Bitcoin Mining for Profit
Theoretical Hash Rate Limits
Decentralization in Bitcoin Mining
The Strange World of Altcoins
Chapter 9: Understanding the Different Types of Bitcoin Wallets
Wallet Software Design Fundamentals
Offline vs. Online Transaction Signing
Random Key Generation vs. Deterministic Key Generation (vs. Single Key Generation)
Combining Deterministic Key Generation with Watch-Only Wallets
The Math Behind Deterministic Key Generation with Watch-Only Wallets
Full vs. Simplified Payment Verification
Other Common (and Not So Common) Bitcoin Wallet Features
Future Wallets
Which Wallet Is Right for You?
Additional Wallet Considerations
Chapter 10: Bitcoin 2030
What Will a Bitcoin Be Worth in 2030?
Bitcoin Mining in 2030
A Day in the Life of a Bitcoiner in 2030
The Bitcoin End Game
Appendix A: Hello Money! A Simple JavaScript Program
The Meaning of “Easy”
Three Ways to Write Bitcoin Software
General Security Notes on Bitcoin Programming
Some Upbeat Notes on Bitcoin Security
Writing Your First Bitcoin Program in JavaScript
Why Use JavaScript?
Bitcoin Core vs. Bitcoind
Preparing Your Machine for JavaScript Bitcoin Programming
Installing Node.js
Installing node-bitcoin
Starting Bitcoin Core
For Mac Hackers
For Linux Folks
Hello Money!
Part 1: Initializing the Connection with Bitcoin Core
Part 2: The Main Loop
The Bitcoin Core JSON-RPC API
Running the Hello Money! App
Limitations of Writing Bitcoin Programs That Use JSON-RPC
Appendix B: Bitcoin Programming with BitcoinJ
The Best Programming Language for Connecting to the Bitcoin Network
Installing Java, Maven, and the BitcoinJ Library
Step 1: Installing Java
Step 2: Installing Maven
Step 3: Installing Git
Step 4: Installing BitcoinJ
Creating a Starter Project for hello-money
Writing the Code for hello-money
Declarations at the Top of the Program
Initializing Our Java Objects
Connecting to the Bitcoin Network
Listening for New Money
Running and Testing the hello-money Java Program
Bye-Bye Money
Importing a Private Key
Sending the Money
Ensuring the Money Transmission
Running bye-bye-money
Gotchas When Using Wallets in BitcoinJ
Conclusion
Index
Footnotes
Chapter 1: What is Bitcoin?
Chapter 2: Bitcoin Basics
Chapter 3: Storing your Bitcoins Safely, Securely, and Conveniently
Chapter 4: Buying Bitcoins
Chapter 6: Why Bitcoin is a Big Deal
Chapter 7: The Cryptography Behind Bitcoin
Chapter 8: Bitcoin Mining
Chapter 9: Understanding the Different Types of Bitcoin Wallets
Chapter 10: Bitcoin 2030
Appendix A: Hello Money! A Simple Javascript Program
Appendix B: Bitcoin Programming with Bitcoinj
Updates
← Prev
Back
Next →
← Prev
Back
Next →