- Preface
- About the author
- How this resource is organized
- 1 - Introduction to cryptocurrencies & Monero
- 1.1 Payment through banks
- 1.2 Introduction to blockchains
- 1.2.1 What is a blockchain?
- 1.2.2 Blockchain benefits
- 1.2.3 Blockchain drawbacks
- 1.3 Introducing Monero
- 1.3.1 Principles of Monero
- 1.3.2 Real-life “use cases” for Monero
- 1.3.3 Monero: open-source decentralized community and software
- 1.3.4 History of Monero
- 1.3.5 Ethical discussion
- 2 - Getting started: receiving, storing and sending Monero
- 2.1 What is a wallet?
- 2.2 Selecting the best wallet(s) for your needs
- 2.2.1 Software and mobile wallets
- 2.2.2 Hardware Wallets
- 2.2.3 Paper wallets
- 2.2.4 Web Wallets
- 2.2.5 Cold Wallets
- 2.2.6 Monero Wallet Links
- 2.2.7 Connecting to a remote node (optional)
- 2.3 Using Monero
- 2.3.1 Receiving Monero
- 2.3.2 Sending Monero
- 2.3.3 Proof of Payment
- 2.4 Operational Security
- 2.4.1 Never say how much Monero you own
- 2.4.2 Keeping your seed safe
- 2.4.3 Transaction precautions
- 2.4.4 Exchange safety
- 2.5 “Getting started” for businesses
- 2.5.1 Monero is ideal for merchants
- 2.5.2 Friendly tools for accepting Monero
- 3 - How Monero works
- 3.1 Transaction and the Ledger
- 3.2 Privacy Technology Overview
- 3.2.1 Ring Confidential Transaction
- 3.2.2 Stealth (one-time) addresses
- 3.2.3 Ring Signatures
- 3.2.4 Kovri & Traffic Analysis
- 3.3 Concluding comments
- 4 - The Monero network
- 4.1 The simplified anatomy of a block
- 4.2 Nodes are the network backbone
- 4.2.1 Nodes relay network data to peers
- 4.2.2 Nodes store the blockchain
- 4.2.3 “Local nodes” versus “remote nodes”
- 4.3 Miners create new blocks
- 4.3.1 Miners add new blocks onto the longest chain
- 4.3.2 A difficult task ensures stability and fairness
- 4.3.3 Monero “taxis” use a hard puzzle to ensure fairness
- 4.3.4 Miners are paid for their service
- 4.4 Proof of Work systems
- 4.4.1 Benefits
- 4.4.1.1 Censorship resistance
- 4.4.2 The “difficulty” adjusts time between blocks
- 4.4.3 The CryptoNight algorithm
- 4.4.3.1 Context: The history of Bitcoin mining
- 4.4.3.2 ASICs enable dangerous centralization
- 4.4.3.3 Monero actively resists ASICs
- 4.4.4 Brief note on PoW alternatives
- 4.4.1 Benefits
- 4.5 Cryptographic concepts for proof of work
- 4.5.1 Hashes (general concept)
- 4.5.2 Nonces (general concept)
- 4.6 PoW concept summary
- 5 - A deep dive into Monero & cryptography
- 5.1 Math fundamentals
- 5.1.1 Euclidean Division (A/B)
- 5.1.2 Prime numbers
- 5.1.3 Modular arithmetic
- 5.1.4 Integer representation
- 5.1.5 Elliptic curves
- 5.1.5.1 General introduction
- 5.1.5.2 Ed25519 Twisted Edwards
- 5.1.5.3 Elliptical operations
- 5.2 Cryptography basics
- 5.2.1 Symmetric and asymmetric cryptography
- 5.2.2 Hashing
- 5.3 Generating Monero keys and addresses
- 5.3.1 Picking a seed
- 5.3.2 Key derivation
- 5.3.2.1 All keys
- 5.3.2.2 View-only wallets
- 5.3.3 Address generation
- 5.3.3.1 Network byte
- 5.3.3.2 Concatenated public keys
- 5.3.3.3 Checksum
- 5.3.3.4 Bring it all together: address finalization
- 5.3.4 Subaddresses
- 5.3.4.1 Creating a subaddress
- 5.3.4.2 Sending to a subaddress
- 5.3.4.3 Receiving to a subaddress
- 5.3.5 Other methods for key derivation
- 5.4 The privacy technologies
- 5.4.1 Stealth address
- 5.4.1.1 Sending
- 5.4.1.2 Receiving
- 5.4.2 Ring Confidential Transactions
- 5.4.3 Ring signatures
- 5.4.4 Further resources
- 5.4.1 Stealth address
- 5.5 The Monero blockchain
- 5.5.1 Lightning Memory Mapped Database
- 5.5.2 The structure of a block
- 5.5.2.1 The block header
- 5.5.2.2 Base Transaction
- 5.5.2.3 List of transaction identifiers
- 5.5.2.4 Calculation of Block Identifier
- 5.5.3 The mining economy
- 5.5.3.1 Mining coinbase reward
- 5.5.3.2 Dynamic block size
- 5.5.3.3 Fees
- 5.5.4 Bulletproofs
- 5.1 Math fundamentals
- 6 - Community and contributing
- 6.1 Community culture
- 6.1.1 Principles of openness
- 6.1.2 Many great minds work on Monero
- 6.2 Code culture
- 6.2.1 Create a pull request for the improvements
- 6.2.2 Patch etiquette
- 6.2.3 General guidelines
- 6.2.4 Repository for Monero
- 6.3 Introduction to Monero development
- 6.3.1 Downloading the Monero source code
- 6.3.2 Dependencies
- 6.3.3 Building instruction
- 6.3.4 Build troubleshooting
- 6.3.5 Building Monero Graphical User Interface
- 6.1 Community culture
- 7 - Monero integration for developers
- 7.1 OpenAlias: convenient addresses in text (for humans)
- 7.2 Monero_URI: convenient info in text (for computers)
- 7.3 Monero RPC
- 7.3.1 Initialization and configuration (setup & secure)
- 7.3.2 JSON RPC Format
- 7.3.3 Example RPC calls
- 7.3.3.1 Get balance
- 7.3.3.2 Get address
- 7.3.3.3 Create address
- 7.3.3.4 Create account
- 7.3.3.5 Transfer
- 7.4 Monero integration in practice (Python and C++ tutorials)
- 7.4.1 Tutorial 1 - Get your balance
- 7.4.2 Tutorial 2 - How to generate a pseudo-random address
- 7.4.3 Tutorial 3 - Vanity address generator
- 7.4.4 Tutorial 4 - How to create a stealth address
- 7.5 Monero C++ API
- 7.5.1 Monero libraries
- 7.5.2 Getting started with C++
- 7.5.3 Tutorial 5 - Recovering all keys from the private spend key
- 8 - Wallet guide and troubleshooting tips
- 8.1 Specific Instructions for Official Monero GUI
- 8.1.1 Getting started
- 8.1.2 Receiving Monero with the GUI
- 8.1.3 Sending Monero with the GUI
- 8.1.4 Proof of Payment with the GUI
- 8.2 Specific instruction for Monero Wallet CLI
- 8.2.1 Setting up a wallet with the CLI
- 8.2.2 Receiving Monero
- 8.2.3 Sending Monero
- 8.2.4 Proof of payment
- 8.3 Troubleshooting common problems
- 8.3.1 Problem: I transferred moneroj to my wallet, but my balance is still 0 XMR.
- 8.3.2 Problem: My GUI feels buggy / freezes all the time
- 8.1 Specific Instructions for Official Monero GUI
- Glossary
Last active
June 13, 2019 18:43
-
-
Save serhack/a55cec9b71e05e727816727a7fab9483 to your computer and use it in GitHub Desktop.
Table of Contents of Mastering Monero (First edition);
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment