이미 소장하고 있다면 판매해 보세요.
|
Preface xiii
1. Introduction 1 What Is Bitcoin? 1 History of Bitcoin 4 Bitcoin Uses, Users, and Their Stories 5 Getting Started 6 Choosing a Bitcoin Wallet 6 Quick Start 8 Getting Your First Bitcoin 10 Finding the Current Price of Bitcoin 11 Sending and Receiving Bitcoin 12 2. How Bitcoin Works 15 Transactions, Blocks, Mining, and the Blockchain 15 Bitcoin Overview 15 Buying a Cup of Coffee 16 Bitcoin Transactions 18 Transaction Inputs and Outputs 18 Transaction Chains 19 Making Change 20 Common Transaction Forms 21 Constructing a Transaction 22 Getting the Right Inputs 22 Creating the Outputs 24 Adding the Transaction to the Ledger 25 Bitcoin Mining 26 Mining Transactions in Blocks 27 Spending the Transaction 29 3. Bitcoin Core: The Reference Implementation 31 Bitcoin Development Environment 32 Compiling Bitcoin Core from the Source Code 32 Selecting a Bitcoin Core Release 33 Configuring the Bitcoin Core Build 34 Building the Bitcoin Core Executables 37 Running a Bitcoin Core Node 38 Running Bitcoin Core for the First Time 39 Configuring the Bitcoin Core Node 39 Bitcoin Core Application Programming Interface (API) 43 Getting Information on the Bitcoin Core Client Status 44 Exploring and Decoding Transactions 45 Exploring Blocks 47 Using Bitcoin Core's Programmatic Interface 48 Alternative Clients, Libraries, and Toolkits 51 C/C++ 52 JavaScript 52 Java 52 Python 52 Ruby 53 Go 53 Rust 53 C# 53 Objective-C 53 4. Keys, Addresses 55 Introduction 55 Public Key Cryptography and Cryptocurrency 56 Private and Public Keys 57 Private Keys 58 Public Keys 60 Elliptic Curve Cryptography Explained 60 Generating a Public Key 63 Bitcoin Addresses 64 Base58 and Base58Check Encoding 66 Key Formats 70 Implementing Keys and Addresses in Python 76 Advanced Keys and Addresses 80 Encrypted Private Keys (BIP-38) 80 Pay-to-Script Hash (P2SH) and Multisig Addresses 81 Vanity Addresses 82 Paper Wallets 88 5. Wallets 93 Wallet Technology Overview 93 Nondeterministic (Random) Wallets 94 Deterministic (Seeded) Wallets 95 HD Wallets (BIP-32/BIP-44) 96 Seeds and Mnemonic Codes (BIP-39) 97 Wallet Best Practices 97 Using a Bitcoin Wallet 98 Wallet Technology Details 99 Mnemonic Code Words (BIP-39) 99 Creating an HD Wallet from the Seed 106 Using an Extended Public Key on a Web Store 110 6. Transactions 117 Introduction 117 Transactions in Detail 117 Transactions-Behind the Scenes 118 Transaction Outputs and Inputs 119 Transaction Outputs 121 Transaction Inputs 123 Transaction Fees 126 Adding Fees to Transactions 129 Transaction Scripts and Script Language 131 Turing Incompleteness 131 Stateless Verification 132 Script Construction (Lock + Unlock) 132 Pay-to-Public-Key-Hash (P2PKH) 136 Digital Signatures (ECDSA) 138 How Digital Signatures Work 139 Verifying the Signature 141 Signature Hash Types (SIGHASH) 141 ECDSA Math 143 The Importance of Randomness in Signatures 145 Bitcoin Addresses, Balances, and Other Abstractions 145 7. Advanced Transactions and Scripting 149 Introduction 149 Multisignature 149 Pay-to-Script-Hash (P2SH) 151 P2SH Addresses 153 Benefits of P2SH 154 Redeem Script and Validation 154 Data Recording Output (RETURN) 155 Timelocks 157 Transaction Locktime (nLocktime) 157 Check Lock Time Verify (CLTV) 158 Relative Timelocks 160 Relative Timelocks with nSequence 160 Relative Timelocks with CSV 162 Median-Time-Past 163 Timelock Defense Against Fee Sniping 163 Scripts with Flow Control (Conditional Clauses) 164 Conditional Clauses with VERIFY Opcodes 165 Using Flow Control in Scripts 166 Complex Script Example 167 8. The Bitcoin Network 171 Peer-to-Peer Network Architecture 171 Node Types and Roles 172 The Extended Bitcoin Network 173 Bitcoin Relay Networks 176 Network Discovery 176 Full Nodes 180 Exchanging "Inventory" 181 Simplified Payment Verification (SPV) Nodes 183 Bloom Filters 185 How Bloom Filters Work 186 How SPV Nodes Use Bloom Filters 189 SPV Nodes and Privacy 190 Encrypted and Authenticated Connections 191 Tor Transport 191 Peer-to-Peer Authentication and Encryption 191 Transaction Pools 192 9. The Blockchain 195 Introduction 195 Structure of a Block 196 Block Header 197 Block Identifiers: Block Header Hash and Block Height 197 The Genesis Block 198 Linking Blocks in the Blockchain 200 Merkle Trees 201 Merkle Trees and Simplified Payment Verification (SPV) 207 Bitcoin's Test Blockchains 207 Testnet-Bitcoin's Testing Playground 208 Segnet-The Segregated Witness Testnet 210 Regtest-The Local Blockchain 210 Using Test Blockchains for Development 211 10. Mining and Consensus 213 Introduction 213 Bitcoin Economics and Currency Creation 215 Decentralized Consensus 217 Independent Verification of Transactions 218 Mining Nodes 219 Aggregating Transactions into Blocks 220 The Coinbase Transaction 221 Coinbase Reward and Fees 223 Structure of the Coinbase Transaction 224 Coinbase Data 225 Constructing the Block Header 227 Mining the Block 228 Proof-of-Work Algorithm 228 Target Representation 235 Retargeting to Adjust Difficulty 235 Successfully Mining the Block 237 Validating a New Block 238 Assembling and Selecting Chains of Blocks 239 Blockchain Forks 240 Mining and the Hashing Race 247 The Extra Nonce Solution 249 Mining Pools 250 Consensus Attacks 253 Changing the Consensus Rules 256 Hard Forks 256 Hard Forks: Software, Network, Mining, and Chain 258 Diverging Miners and Difficulty 259 Contentious Hard Forks 260 Soft Forks 261 Criticisms of Soft Forks 262 Soft Fork Signaling with Block Version 262 BIP-34 Signaling and Activation 263 BIP-9 Signaling and Activation 264 Consensus Software Development 266 11. Bitcoin Security 269 Security Principles 269 Developing Bitcoin Systems Securely 270 The Root of Trust 271 User Security Best Practices 272 Physical Bitcoin Storage 273 Hardware Wallets 273 Balancing Risk 273 Diversifying Risk 274 Multisig and Governance 274 Survivability 274 Conclusion 274 12. Blockchain Applications 275 Introduction 275 Building Blocks (Primitives) 276 Applications from Building Blocks 278 Colored Coins 278 Using Colored Coins 279 Issuing Colored Coins 280 Colored Coins Transactions 280 Counterparty 283 Payment Channels and State Channels 284 State Channels-Basic Concepts and Terminology 285 Simple Payment Channel Example 286 Making Trustless Channels 289 Asymmetric Revocable Commitments 292 Hash Time Lock Contracts (HTLC) 296 Routed Payment Channels (Lightning Network) 297 Basic Lightning Network Example 298 Lightning Network Transport and Routing 301 Lightning Network Benefits 303 Conclusion 304 A The Bitcoin Whitepaper by Satoshi Nakamoto 305 B Transaction Script Language Operators, Constants, and Symbols 317 C Bitcoin Improvement Proposals 323 D Segregated Witness 331 E Bitcore 345 F Pycoin, ku, and tx 349 G Bitcoin Explorer (bx) Commands 359 Index 363 |