| Contents | 5 |
---|
| About the Author | 7 |
---|
| About the Technical Reviewer | 8 |
---|
| Introduction | 9 |
---|
| Stage I:Terminology and Technical Foundations | 14 |
---|
| Step1: Thinking in Layers and Aspects | 15 |
| The Metaphor | 16 |
| Layers of a Software System | 16 |
| Application vs. Implementation | 16 |
| Functional vs. Nonfunctional Aspects | 17 |
| Considering Two Layers at the Same Time | 17 |
| Integrity | 18 |
| Outlook | 19 |
| Summary | 19 |
| Step2: Seeing the Big Picture | 20 |
| The Metaphor | 20 |
| A Payment System | 21 |
| Two Types of Software Architecture | 21 |
| The Advantages of Distributed Systems | 23 |
| Higher Computing Power | 23 |
| Cost Reduction | 23 |
| Higher Reliability | 23 |
| Ability to Grow Naturally | 24 |
| The Disadvantages of Distributed Systems | 24 |
| Coordination Overhead | 24 |
| Communication Overhead | 24 |
| Dependencies on Networks | 25 |
| Higher Program Complexity | 25 |
| Security Issues | 25 |
| Distributed Peer-to-Peer Systems | 25 |
| Mixing Centralized and Distributed Systems | 26 |
| Identifying Distributed Systems | 27 |
| The Purpose of the Blockchain | 27 |
| Outlook | 28 |
| Summary | 28 |
| Step3: Recognizing the Potential | 29 |
| The Metaphor | 29 |
| How a Peer-to-Peer System Changed a Whole Industry | 30 |
| The Potential of Peer-to-Peer Systems | 31 |
| Terminology and the Link to the Blockchain | 32 |
| The Definition of a Peer-to-Peer System | 33 |
| Architecture of Peer-to-Peer Systems | 33 |
| The Link Between Peer-to-Peer Systems and the Blockchain | 34 |
| The Potential of the Blockchain | 34 |
| Outlook | 34 |
| Summary | 35 |
| Stage II:Why the Blockchain Is Needed | 36 |
---|
| Step4: Discovering the Core Problem | 37 |
| The Metaphor | 37 |
| Trust and Integrity in Peer-to-Peer Systems | 38 |
| Integrity Threats in Peer-to-Peer Systems | 38 |
| Technical Failures | 39 |
| Malicious Peers | 39 |
| The Core Problem to Be Solved by the Blockchain | 39 |
| Outlook | 40 |
| Summary | 40 |
| Step5: Disambiguating the Term | 41 |
| The Term | 41 |
| A Data Structure | 42 |
| An Algorithm | 42 |
| A Suite of Technologies | 42 |
| An Umbrella Term for Purely Distributed Peer-to-Peer Systems with a Common Application Area | 42 |
| The Usage of the Term in This Book | 43 |
| Provisional Definition | 43 |
| The Role of Managing Ownership | 43 |
| The Application Area of the Blockchain in This Book | 44 |
| Outlook | 44 |
| Summary | 45 |
| Step6: Understanding the Nature of Ownership | 46 |
| The Metaphor | 46 |
| Ownership and Witnesses | 47 |
| Foundations of Ownership | 48 |
| A Short Detour to Security | 49 |
| Identification | 50 |
| Authentication | 50 |
| Authorization | 50 |
| Purposes and Properties of a Ledger | 51 |
| Ownership and the Blockchain | 52 |
| Outlook | 53 |
| Summary | 53 |
| Step7: Spending Money Twice | 55 |
| The Metaphor | 55 |
| The Double Spending Problem | 56 |
| The Term | 57 |
| Double Spending as a Problem of Copying Digital Goods | 57 |
| Double Spending as a Problem of Distributed Peer-to-Peer Systems of Ledgers | 57 |
| Double Spending as an Example of Violated Integrity in Distributed Peer-to-Peer Systems | 58 |
| How to Solve the Double Spending Problem | 58 |
| Solving Double Spending as a Problem of Copying Digital Goods | 58 |
| Solving Double Spending as a Problem of a Distributed Peer-to-Peer System of Ledgers | 58 |
| Solving Double Spending as an Example of Violated Integrity in Distributed Peer-to-Peer Systems | 59 |
| The Usage of Double Spending in This Book | 59 |
| Outlook | 59 |
| Summary | 59 |
| Stage III:How the Blockchain Works | 61 |
---|
| Step8: Planning the Blockchain | 62 |
| The Goal | 62 |
| Starting Point | 63 |
| The Path to Follow | 63 |
| Task 1: Describing Ownership | 64 |
| Task 2: Protecting Ownership | 64 |
| Task 3: Storing Transaction Data | 64 |
| Task 4: Preparing Ledgers to Be Distributed in an Untrustworthy Environment | 65 |
| Task 5: Distributing the Ledgers | 65 |
| Task 6: Adding New Transactions to the Ledgers | 65 |
| Task 7: Deciding Which Ledgers Represent the Truth | 66 |
| Outlook | 66 |
| Summary | 67 |
| Step9: Documenting Ownership | 68 |
| The Metaphor | 68 |
| The Goal | 69 |
| The Challenge | 69 |
| The Idea | 69 |
| A Short Detour to Inventory and Transaction Data | 69 |
| How It Works | 70 |
| Describing the Transfer of Ownership | 70 |
| Maintaining the History of Transfers | 71 |
| Why It Works | 71 |
| Importance of Ordering | 71 |
| Integrity of the Transaction History | 72 |
| Formal Correctness | 72 |
| Semantic Correctness | 72 |
| Authorization | 73 |
| Outlook | 73 |
| Summary | 73 |
| Step10: Hashing Data | 75 |
| The Metaphor | 75 |
| The Goal | 75 |
| How It Works | 76 |
| Providing Hash Values for Any Data Quickly | 76 |
| Deterministic | 76 |
| Pseudorandom | 77 |
| One-Way Function | 77 |
| Collision Resistant | 77 |
| Trying It Out Yourself | 77 |
| Patterns of Hashing Data | 79 |
| Independent Hashing | 79 |
| Repeated Hashing | <