Mastering Bitcoin Open Edition

Mastering Bitcoin Open Edition

By Andreas M. Antonopoulos
Book Description

Mastering Bitcoin is essential reading for everyone interested in learning about bitcoin basics, the technical operation of bitcoin, or if you're building the next great bitcoin killer app or business. From using a bitcoin wallet to buy a cup of coffee, to running a bitcoin marketplace with hundreds of thousands of transactions, or collaboratively building new financial innovations that will transform our understanding of currency and credit, this book will help you engineer money. You're about to unlock the API to a new economy. This book is your key.

This book will help you learn everything you need to know about decentralized digital money, which is one of the most exciting technical revolutions in decades. Just as the Internet has transformed dozens of industries - from media and entertainment to retailing, travel and many more - decentralized digital money, in the form of crypto-currencies, has the ability to transform the foundations of money, credit and financial services. It also has the power to transform other social activities and institutions that we don't usually associate directly with money, such as corporations, governance, voting and the law. 

As the first successful digital currency, bitcoin is the natural starting point for anyone interested in decentralized digital money, its implications and applications. Mastering Bitcoin describes the technical foundations of bitcoin and other cryptographic currencies, from cryptography basics, such as keys and addresses, to the data structures, network protocols and the consensus mechanism ("mining") that underpin bitcoin. Each technical topic is explained with user stories, elegant analogies and examples, and code snippets illustrating the key concepts. The first two chapters offer a broad and accessible introduction to bitcoin that is intended for all audiences, from new non-technical users to investors and business executives seeking to better understand bitcoin. The remainder of the book dives into the technical details of bitcoin's operation and is aimed at professional developers, engineers, software and systems architects, systems administrators and technically-minded people interested in the inner workings of bitcoin and comparable crypto-currencies. Mastering Bitcoin is intended to be used as a reference book for technical professionals, as a self-study guide for bitcoin entrepreneurs, and as a textbook for university courses on bitcoin and digital currencies. 

Bitcoin is still in its infancy, and yet it has already spawned a multi-billion dollar, global economy that is growing exponentially. Both new and established companies are adding bitcoin as a payment method, and investors are funding a flurry of new bitcoin and related startups. Mastering Bitcoin can help you become part of this vibrant new economy. The time to get started is now.

Purchase commercial editions from O'Reilly Media

Table of Contents
  • Copyright
  • Table of Contents
  • Preface
    • Writing the Bitcoin Book
    • Intended Audience
    • Why Are There Bugs On The Cover?
    • Conventions Used in This Book
    • Github Source Code
    • Code Examples
    • Using Code Examples
    • Safari® Books Online
    • How to Contact Us
    • Acknowledgments
      • Early Release Draft (Github Contributions)
    • Quick Glossary
  • Chapter 1. Introduction
    • What is Bitcoin?
    • History of Bitcoin
    • Bitcoin Uses, Users and Their Stories
    • Getting Started
      • Quick Start
      • Getting your first bitcoins
      • Sending and receiving bitcoins
  • Chapter 2. How Bitcoin Works
    • Transactions, Blocks, Mining, and the Blockchain
      • Bitcoin Overview
      • Buying a cup of coffee
    • Bitcoin Transactions
      • Common Transaction Forms
    • Constructing a Transaction
      • Getting the right inputs
      • Creating the outputs
      • Adding the transaction to the ledger
    • Bitcoin Mining
    • Mining transactions in blocks
    • Spending the transaction
  • Chapter 3. The Bitcoin Client
    • Bitcoin Core - The reference implementation
      • Running Bitcoin Core for the first time
      • Compiling Bitcoin Core from the source code
    • Using Bitcoin Core’s JSON-RPC API from the command line
      • Getting information on the Bitcoin Core client status
      • Wallet setup and encryption
      • Wallet backup, plain-text dump and restore
      • Wallet addresses and receiving transactions
      • Exploring and decoding transactions
      • Exploring blocks
      • Creating, signing and submitting transactions based on unspent outputs
    • Alternative clients, libraries and toolkits
      • Libbitcoin and sx tools
      • pycoin
      • btcd
  • Chapter 4. Keys, Addresses, Wallets
    • Introduction
      • Public key cryptography and crypto-currency
      • Private and Public Keys
      • Private Keys
      • Public Keys
      • Elliptic Curve Cryptography Explained
      • Generating a public key
    • Bitcoin Addresses
      • Base58 and Base58Check Encoding
      • Key Formats
    • Implementing Keys and Addresses in Python
    • Wallets
      • Non-Deterministic (Random) Wallets
      • Deterministic (Seeded) Wallets
      • Mnemonic Code Words
      • Hierarchical Deterministic Wallets (BIP0032/BIP0044)
    • Advanced Keys and Addresses
      • Encrypted Private Keys (BIP0038)
      • Pay To Script Hash (P2SH) and Multi-Sig Addresses
      • Vanity Addresses
      • Paper Wallets
  • Chapter 5. Transactions
    • Introduction
    • Transaction Lifecycle
      • Creating Transactions
      • Broadcasting Transactions to the Bitcoin Network
      • Propagating Transactions on the Bitcoin Network
    • Transaction Structure
    • Transaction Outputs and Inputs
      • Transaction Outputs
      • Transaction Inputs
      • Transaction Fees
      • Adding Fees to Transactions
    • Transaction Chaining and Orphan Transactions
    • Transaction Scripts and Script Language
      • Script Construction (Lock + Unlock)
      • Scripting Language
      • Turing Incompleteness
      • Stateless Verification
    • Standard Transactions
      • Pay to Public Key Hash (P2PKH)
      • Pay-to-Public-Key
      • Multi-Signature
      • Data Output (OP_RETURN)
      • Pay to Script Hash (P2SH)
  • Chapter 6. The Bitcoin Network
    • Peer-to-Peer Network Architecture
    • Nodes Types and Roles
    • The Extended Bitcoin Network
    • Network Discovery
    • Full Nodes
    • Exchanging “Inventory”
    • Simplified Payment Verification (SPV) Nodes
    • Bloom Filters
    • Bloom Filters and Inventory Updates
    • Transaction Pools
    • Alert Messages
  • Chapter 7. The Blockchain
    • Introduction
    • Structure of a Block
    • Block Header
    • Block Identifiers - Block Header Hash and Block Height
    • The Genesis Block
    • Linking Blocks in the Blockchain
    • Merkle Trees
    • Merkle Trees and Simplified Payment Verification (SPV)
  • Chapter 8. Mining and Consensus
    • Introduction
      • Bitcoin Economics and Currency Creation
    • De-centralized Consensus
    • Independent Verification of Transactions
    • Mining Nodes
    • Aggregating Transactions into Blocks
      • Transaction Age, Fees, and Priority
      • The Generation Transaction
      • Coinbase Reward and Fees
      • Structure of the Generation Transaction
      • Coinbase Data
    • Constructing the Block Header
    • Mining the Block
      • Proof-of-Work Algorithm
      • Difficulty Representation
      • Difficulty Target and Re-Targeting
    • Successfully Mining the Block
    • Validating a New Block
    • Assembling and Selecting Chains of Blocks
      • Blockchain Forks
    • Mining and the Hashing Race
      • The Extra Nonce Solution
      • Mining Pools
    • Consensus Attacks
  • Chapter 9. Alternative Chains, Currencies, and Applications
    • A taxonomy of alternative currencies and chains
    • Meta-Coin Platforms
      • Colored Coins
      • Mastercoin
      • Counterparty
    • Alt-coins
      • Evaluating an alt-coin
      • Monetary Parameter Alternatives: Litecoin, Dogecoin, Freicoin
      • Consensus Innovation: Peercoin, Myriad, Blackcoin, Vericoin, NXT
      • Dual-Purpose Mining Innovation: Primecoin, Curecoin, Gridcoin
      • Anonymity-Focused Alt-Coins: CryptoNote, Bytecoin, Monero, Zerocash/Zerocoin, Darkcoin
    • Non-currency alt-chains
      • Namecoin
      • Bitmessage
      • Ethereum
    • Future of Currencies
  • Chapter 10. Bitcoin Security
    • Security principles
      • Developing Bitcoin Systems Securely
      • The Root of Trust
    • User Security Best Practices
      • Physical Bitcoin Storage
      • Hardware Wallets
      • Balancing Risk (loss vs. theft)
      • Diversifying Risk
      • Multi-sig and Governance
      • Survivability
    • Conclusion
  • Appendix A. Appendix: Available commands with sx tools
  • Appendix B. Appendix - pycoin, ku and tx.
    • Pycoin command-line tools: KU and TX
      • Key Utility (KU)
      • Transaction Utility (TX)
  • Appendix C. Appendix: Transaction Script Language Operators, Constants and Symbols
  • Appendix D. Appendix - Bitcoin Improvement Proposals
  • About the Author
    No review for this book yet, be the first to review.
      No comment for this book yet, be the first to comment
      You May Also Like
      Also Available On
      App store smallGoogle play small
      Curated Lists
      • Pattern Recognition and Machine Learning (Information Science and Statistics)
        by Christopher M. Bishop
        Data mining
        by I. H. Witten
        The Elements of Statistical Learning: Data Mining, Inference, and Prediction
        by Various
        See more...
      • CK-12 Chemistry
        by Various
        Concept Development Studies in Chemistry
        by John Hutchinson
        An Introduction to Chemistry - Atoms First
        by Mark Bishop
        See more...
      • Microsoft Word - How to Use Advanced Algebra II.doc
        by Jonathan Emmons
        Advanced Algebra II: Activities and Homework
        by Kenny Felder
        See more...
      • The Sun Who Lost His Way
        Tania is a Detective
        by Kanika G
        See more...
      • Java 3D Programming
        by Daniel Selman
        The Java EE 6 Tutorial
        by Oracle Corporation
        See more...