Bitcoin for the befuddled

About the AuthorsPREFACEAcknowledgmentsWHAT IS BITCOIN?Why Bitcoin Now?The Benefits of Using BitcoinThe Complexity and Confusion of BitcoinWhat's in This Book?BITCOIN BASICSHow Bitcoin Works in Simple TermsBitcoin UnitsThe Bitcoin AddressThe Private KeyThe Bitcoin WalletAcquiring Bitcoins in Your WalletSpending Bitcoins with Your WalletBitcoin Addresses Generated by Your Bitcoin Wallet ProgramThe BlockchainThe Blockchain LotteryBlockchain ForkingTransaction Confirmations, Double Spending, and IrreversibilityMining BitcoinsThe Complexity of the Bitcoin SystemSTORING YOUR BITCOINS SAFELY, SECURELY, AND CONVENIENTLYStoring Your Private Key(s)Hot Storage vs. Cold StoragePersonal vs. Hosted WalletsSafety, Security, and ConvenienceStoring Small Amounts of BitcoinsOnline Hosted Wallet ServicesOnline Personal Wallet ServicesPersonal Hot WalletStoring Large Amounts of BitcoinsPaper WalletsEncrypted Paper WalletsOffline Transaction SigningFragmented Private Keys and Multi-Signature AddressesSpecial Mention: The Bitcoin Hardware WalletSpecial Mention: The Bitcoin Brain WalletChoosing the Storage Method That's Right for YouBUYING BITCOINSWhy Not Just Mine Bitcoins?Ways to Buy BitcoinsBuying Bitcoins the Easy WayAuthentication FactorsThe Hassle of Converting Dollars (or Other Currencies) into BitcoinsReversible TransactionsIrreversible TransactionsCombining Reversible and Irreversible AssetsWhy Irreversible Transactions Are Arguably SuperiorBuying Bitcoins with CoinbaseStep 1: Registering at CoinbaseStep 2: Setting Up Two-Factor IdentificationStep 3: Linking Your Bank Account to CoinbaseStep 4: Buying Bitcoins on CoinbaseStep 5: Protecting Your Shiny New BitcoinsBuying Bitcoins the Efficient WayBuying Bitcoins from a Currency ExchangeStep 1: Setting Up an Account and Linking to Your Bank AccountStep 2: Transferring US Dollars to Your Exchange AccountStep 3: Placing an Order to Buy BitcoinsMarket OrdersLimit OrdersBuying Bitcoins the Fun and Futuristic WayStep 1: Finding Someone to Buy FromStep 2: Deciding on a Meeting PlaceStep 3: Handing Over the Money and Getting Your BitcoinsA Face-to-Face Bitcoin Purchase Without EscrowProblems During Person-to-Person TransactionsA Face-to-Face Bitcoin Purchase with EscrowSatoshi SquareStill Don't See a Buying Option That Works for You?LOST AT SEA. CRYPTOGRAPHIC ADVENTUREWHY BITCOIN IS A BIG DEALA Brief History of Digital CurrenciesThe Dawn of BitcoinBitcoin's First Four YearsBitcoin's Early ImpactThe Future Potential of BitcoinWhat 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 SavingsUsing Bitcoin as a Medium of ExchangeThe Dangers of Decentralized Digital MoneyBitcoin and Illegal ActivityThe Energy Costs of BitcoinBitcoin and the Dangers of DeflationBitcoin and Government StabilityTHE CRYPTOGRAPHY BEHIND BITCOINA Brief Cryptography OverviewOne-Way FunctionsCryptographic Hash Functions Verify InformationPublic Key CryptographyDigital SignaturesThis Is It Called a Digital Signature?Using Digital SignaturesWhy Bitcoin Needs CryptographyAuthorizing Transactions with Digital SignaturesVerifying the Validity of the Transaction HistoryProof-of-Work in Bitcoin MiningExtra Protection for Bitcoin Private KeysCryptographic Methods Used in BitcoinCryptographic Hash Functions: SHA256 and RIPEMD160Crowley and the Unfortunate Jelly-Filled Donut IncidentMoving Around on a LineElliptic Curve Digital Signature Algorithm (ECDSA)Signing a Bitcoin Transaction Using ECDSAThe Security of Bitcoin's CryptographyPseudocode for Elliptic Point Summation and Point MultiplicationBITCOIN MININGWhy Is Bitcoin Mining Needed?A Parable of Two GeneralsApplying the Parable to BitcoinPreventing Attacks with MiningDistributing New Currency with MiningHow Does Bitcoin Mining Work?How Miners Solve a BlockAnatomy of a BlockBlock header structurePooled MiningBitcoin Mining for ProfitTheoretical Hash Rate LimitsDecentralization in Bitcoin MiningUNDERSTANDING THE DIFFERENT TYPES OF BITCOIN WALLETSWallet Software Design FundamentalsOffline vs. Online Transaction SigningRandom Key Generation vs. Deterministic Key Generation (vs. Single Key Generation)Full vs. Simplified Payment VerificationSpeediness of initial installation and network synchronizationSpeed of new paymentsSecurity for new paymentsSecurity of confirmed paymentsOverall securityEfficiency of storage useAbility to inspect arbitrary Bitcoin addressesAbility to import private keysEffect on overall health of Bitcoin networkOther Common (and Not So Common) Bitcoin Wallet FeaturesFuture WalletsWhich Wallet Is Right for You?Additional Wallet ConsiderationsBITCOIN 2030What Will a Bitcoin Be Worth in 2030?Bitcoin Mining in 2030A Day in the Life of a Bitcoiner in 2030The Bitcoin End GameHELLO MONEY! A SIMPLE JAVASCRIPT PROGRAMThe Meaning of "Easy"Three Ways to Write Bitcoin SoftwareGeneral Security Notes on Bitcoin ProgrammingSome Upbeat Notes on Bitcoin SecurityWriting Your First Bitcoin Program in JavaScriptWhy Use JavaScript?Bitcoin Core vs. BitcoindPreparing Your Machine for JavaScript Bitcoin ProgrammingInstalling Node.jsInstalling node-bitcoinStarting Bitcoin CoreFor Mac HackersFor Linux FolksHello Money!Initializing the Connection with Bitcoin CoreThe Main LoopThe Bitcoin Core JSON-RPC APIRunning the Hello Money! AppLimitations of Writing Bitcoin Programs That Use JSON-RPCBITCOIN PROGRAMMING WITH BITCOINJThe Best Programming Language for Connecting to the Bitcoin NetworkInstalling Java, Maven, and the BitcoinJ LibraryStep 1: Installing JavaStep 2: Installing MavenStep 3: Installing GitStep 4: Installing BitcoinJCreating a Starter Project for hello-moneyWriting the Code for hello-moneyDeclarations at the Top of the ProgramInitializing Our Java ObjectsConnecting to the Bitcoin NetworkListening for New MoneyRunning and Testing the hello-money Java ProgramHello Money! Balance: 20000 satoshisBye-Bye MoneyImporting a Private KeySending the MoneyEnsuring the Money TransmissionRunning bye-bye-moneyGotchas When Using Wallets in BitcoinJConclusion
Next >