Xu / Weber / Staples | Architecture for Blockchain Applications | E-Book | www.sack.de
E-Book

E-Book, Englisch, 312 Seiten

Xu / Weber / Staples Architecture for Blockchain Applications


1. Auflage 2019
ISBN: 978-3-030-03035-3
Verlag: Springer International Publishing
Format: PDF
Kopierschutz: 1 - PDF Watermark

E-Book, Englisch, 312 Seiten

ISBN: 978-3-030-03035-3
Verlag: Springer International Publishing
Format: PDF
Kopierschutz: 1 - PDF Watermark



This book addresses what software architects and developers need to know in order to build applications based on blockchain technology, by offering an architectural view of software systems that make beneficial use of blockchains. It provides guidance on assessing the suitability of blockchain, on the roles blockchain can play in an architecture, on designing blockchain applications, and on assessing different architecture designs and tradeoffs. It also serves as a reference on blockchain design patterns and design analysis, and refers to practical examples of blockchain-based applications.
The book is divided into four parts: Part I provides a general introduction to the topic and to existing blockchain platforms including Bitcoin, Ethereum, and Hyperledger Fabric, and offers examples of blockchain-based applications. Part II focuses on the functional aspects of software architecture, describing the main roles blockchain can play in an architecture, as well as its potential suitability and design process. It includes a catalogue of 15 design patterns and details how to use model-driven engineering to build blockchain-based applications. Part III covers the non-functional aspects of blockchain applications, which are cross-cutting concerns including cost, performance, security, and availability. Part IV then presents three detailed real-world use cases, offering additional insights from a practical perspective. An epilogue summarizes the book and speculates on the role blockchain and its applications can play in the future.
This book focusses on the bigger picture for blockchain, covering the concepts and technical considerations in the design of blockchain-based applications. The use of mathematical formulas is limited to where they are critical. This book is primarily intended for developers, software architects and chief information officers who need to understand the basic technology, tools and methodologies to build blockchain applications. It also provides students and researchers new to this field an introduction to this hot topic.

Xiwei (Sherry) Xu is a Research Scientist in the Architecture & Analytics Platforms (AAP) team at Data61, CSIRO in Sydney, and a Conjoint Lecturer at the School of Computer Science and Engineering (CSE) of the University of New South Wales (UNSW). Her main research interests are software architecture, service computing, business processes, cloud computing and dependability. She has done research on blockchain from a software architecture perspective, including trade-off analysis, decision making and evaluation frameworks since 2015.
Ingo Weber is a Principal Research Scientist & Team Leader of the Architecture & Analytics Platforms (AAP) team at Data61, CSIRO in Sydney. In addition, he is a Conjoint Associate Professor at the University of New South Wales (UNSW) and an Adjunct Associate Professor at Swinburne University. He has published around 100 refereed papers and two books, and contributed to establishing blockchain as a research topic in several research communities. He and his team have conducted numerous blockchain projects for industry and government organizations.
Mark Staples is a Senior Principal Research Scientist at Data61, CSIRO in Sydney, and a Conjoint Associate Professor in the School of Computer Science and Engineering at the University of New South Wales (UNSW). His research interests are in blockchain technology, software architecture, software engineering, and the philosophy of engineering. He has many years' industrial experience in software and systems engineering management. He is also a member of Australia's standardization committee on blockchain and DLT (IT-041), under Australia's leadership of the Secretariat of the International Technical Committee for Blockchain Standards (ISO/TC 307).

Xu / Weber / Staples Architecture for Blockchain Applications jetzt bestellen!

Weitere Infos & Material


1;Foreword;5
2;How to Read This Book;10
3;Acknowledgements;13
4;Legal Disclaimer for Code Samples;14
5;Contents;15
6;Part I Blockchain in Software Architecture;19
6.1;1 Introduction;20
6.1.1;1.1 What Is Blockchain and Why Should I Care?;20
6.1.1.1;1.1.1 Defining Blockchain;22
6.1.1.2;1.1.2 Smart Contracts and Decentralized Applications;24
6.1.1.3;1.1.3 Cryptocurrencies and Tokens;25
6.1.2;1.2 Blockchain-Based Applications;26
6.1.2.1;1.2.1 Enterprise and Industry;27
6.1.2.2;1.2.2 Financial Services;28
6.1.2.3;1.2.3 Government Services;30
6.1.3;1.3 Blockchain Functionality;31
6.1.3.1;1.3.1 Blockchain as Data Storage;32
6.1.3.1.1;Transactions;32
6.1.3.1.2;Digital Assets;34
6.1.3.2;1.3.2 Blockchain as a Computational Infrastructure;35
6.1.4;1.4 Blockchain Non-functional Properties;36
6.1.4.1;1.4.1 Non-functional Properties and Requirements;36
6.1.4.2;1.4.2 Non-functional Properties of Blockchain;36
6.1.5;1.5 Blockchain Architecture Design;38
6.1.5.1;1.5.1 Software Architecture: Design and Analysis;38
6.1.5.2;1.5.2 Designing Blockchain-Based Applications;38
6.1.6;1.6 Summary;41
6.1.7;1.7 Further Reading;41
6.2;2 Existing Blockchain Platforms;43
6.2.1;2.1 Bitcoin;43
6.2.1.1;2.1.1 Bitcoin Transactions;44
6.2.1.2;2.1.2 Script;45
6.2.1.3;2.1.3 Mining;46
6.2.1.4;2.1.4 Accounts and State;47
6.2.1.5;2.1.5 Nakamoto Consensus;49
6.2.1.6;2.1.6 Deflationary Cryptocurrency;50
6.2.1.7;2.1.7 Wallets;50
6.2.1.8;2.1.8 Exchanges;51
6.2.2;2.2 Ethereum;51
6.2.2.1;2.2.1 Ethereum Protocol;51
6.2.2.2;2.2.2 Ethereum Transactions;52
6.2.2.3;2.2.3 Smart Contract;53
6.2.2.4;2.2.4 Paying Fees in `Gas';55
6.2.2.5;2.2.5 Decentralized Application (dapp);55
6.2.3;2.3 Hyperledger Fabric;56
6.2.3.1;2.3.1 Permissioned Blockchain;57
6.2.3.2;2.3.2 Chaincode as Smart Contract;57
6.2.3.3;2.3.3 Nodes;57
6.2.3.4;2.3.4 Transactions;58
6.2.3.5;2.3.5 Consensus;59
6.2.4;2.4 Other Representative Blockchain Platforms;60
6.2.5;2.5 Further Reading;60
6.3;3 Varieties of Blockchains;61
6.3.1;3.1 Fundamental Properties of Blockchain;61
6.3.2;3.2 Decentralization;62
6.3.2.1;3.2.1 Permission;64
6.3.2.2;3.2.2 Deployment;65
6.3.3;3.3 Ledger Structure;66
6.3.4;3.4 Consensus Protocol;67
6.3.5;3.5 Block Configuration;69
6.3.6;3.6 Auxiliary Blockchains;70
6.3.7;3.7 Anonymity;73
6.3.8;3.8 Incentives;74
6.3.9;3.9 Summary;74
6.3.10;3.10 Further Reading;74
6.4;4 Example Use Cases;76
6.4.1;4.1 Agricultural Supply Chains;76
6.4.1.1;4.1.1 Key Non-functional Requirements;77
6.4.1.2;4.1.2 Conventional Technology;78
6.4.1.3;4.1.3 A Blockchain Solution;79
6.4.1.4;4.1.4 Non-functional Property Discussion;79
6.4.2;4.2 Open Data Registry;82
6.4.2.1;4.2.1 Key Non-functional Requirements;83
6.4.2.2;4.2.2 Conventional Technology;84
6.4.2.3;4.2.3 A Blockchain Solution;84
6.4.2.4;4.2.4 Non-functional Property Discussion;85
6.4.3;4.3 International Money Transfers;86
6.4.3.1;4.3.1 Key Non-functional Requirements;87
6.4.3.2;4.3.2 Conventional Technologies;87
6.4.3.3;4.3.3 A Blockchain Solution;89
6.4.3.4;4.3.4 Non-functional Property Discussion;89
6.4.4;4.4 Electricity Contract Selection and Continuous Reporting;90
6.4.4.1;4.4.1 Key Non-functional Requirements;91
6.4.4.2;4.4.2 Conventional Technologies;91
6.4.4.3;4.4.3 A Blockchain Solution;91
6.4.4.4;4.4.4 Non-functional Property Discussion;93
6.4.5;4.5 Further Reading;93
7;Part II Architecting Blockchain-Based Applications;95
7.1;5 Blockchain in Software Architecture;96
7.1.1;5.1 Blockchain as an Architectural Element;96
7.1.2;5.2 Blockchain as Storage Element;97
7.1.2.1;5.2.1 Comparison with Centralized Databases;98
7.1.2.2;5.2.2 Comparison with Cloud Services;99
7.1.2.3;5.2.3 Comparison with Peer-to-Peer Data Storage;99
7.1.2.4;5.2.4 Comparison with Replicated State Machines;100
7.1.3;5.3 Blockchain as Computational Element;101
7.1.4;5.4 Blockchain as Communication Mechanism;102
7.1.4.1;5.4.1 Data Communication;102
7.1.4.2;5.4.2 Computation Communication;103
7.1.5;5.5 Blockchain as an Asset Management and Control Mechanism;103
7.1.6;5.6 Integrating Blockchain into a System as a Component;104
7.1.7;5.7 Summary;105
7.1.8;5.8 Further Reading;105
7.2;6 Design Process for Applications on Blockchain;106
7.2.1;6.1 Evaluation of Suitability;106
7.2.1.1;6.1.1 Multiparty;107
7.2.1.2;6.1.2 Trusted Authority;108
7.2.1.3;6.1.3 Operation;109
7.2.1.4;6.1.4 Data Immutability and Non-repudiation;109
7.2.1.5;6.1.5 High Performance;110
7.2.1.6;6.1.6 Transparency;111
7.2.2;6.2 Example Use Cases for Suitability Evaluation;113
7.2.2.1;6.2.1 Use Case 1: Supply Chain;113
7.2.2.2;6.2.2 Use Case 2: Electronic Health Records (EHRs);115
7.2.2.3;6.2.3 Use Case 3: Identity Management;116
7.2.2.4;6.2.4 Use Case 4: Stock Market;117
7.2.3;6.3 Design Process for Blockchain-Based Systems;117
7.2.3.1;6.3.1 Trade-Off Analysis;118
7.2.3.2;6.3.2 Decentralization;119
7.2.3.3;6.3.3 On-Chain vs. Off-Chain;119
7.2.3.3.1;Data;120
7.2.3.3.2;Computation;122
7.2.3.3.3;Other Considerations;122
7.2.3.4;6.3.4 Blockchain Selection and Configuration;123
7.2.3.5;6.3.5 Deployment and Operation;123
7.2.4;6.4 Summary;124
7.2.5;6.5 Further Reading;124
7.3;7 Blockchain Patterns;125
7.3.1;7.1 Patterns on Interacting with the External World;127
7.3.1.1;7.1.1 Pattern 1: Oracle;127
7.3.1.2;7.1.2 Pattern 2: Reverse Oracle;129
7.3.1.3;7.1.3 Pattern 3: Legal and Smart Contract Pair;131
7.3.2;7.2 Data Management Patterns;133
7.3.2.1;7.2.1 Pattern 4: Encrypting On-Chain Data;133
7.3.2.2;7.2.2 Pattern 5: Tokenization;136
7.3.2.3;7.2.3 Pattern 6: Off-Chain Data Storage;138
7.3.2.4;7.2.4 Pattern 7: State Channel;140
7.3.3;7.3 Security Patterns;143
7.3.3.1;7.3.1 Pattern 8: Multiple Authorization;143
7.3.3.2;7.3.2 Pattern 9: Off-Chain Secret Enabled Dynamic Authorization;145
7.3.3.3;7.3.3 Pattern 10: X-Confirmation;147
7.3.4;7.4 Contract Structural Patterns;149
7.3.4.1;7.4.1 Pattern 11: Contract Registry;149
7.3.4.2;7.4.2 Pattern 12: Data Contract;152
7.3.4.3;7.4.3 Pattern 13: Embedded Permission;154
7.3.4.4;7.4.4 Pattern 14: Factory Contract;156
7.3.4.5;7.4.5 Pattern 15: Incentive Execution;158
7.3.5;7.5 Summary;159
7.3.6;7.6 Further Reading;160
7.4;8 Model-Driven Engineering for Blockchain Applications;161
7.4.1;8.1 Introduction;161
7.4.2;8.2 Model-Driven Generation of Smart Contract Code for Collaborative Business Processes;162
7.4.2.1;8.2.1 Motivation;162
7.4.2.2;8.2.2 Challenges of Collaborative Business Process Execution;163
7.4.2.3;8.2.3 Blockchain-Based Collaborative Process Execution;164
7.4.2.3.1;Design Time: Translator;166
7.4.2.3.2;Runtime Environment: Executing Processes as Smart Contracts;167
7.4.2.4;8.2.4 Discussion;172
7.4.2.5;8.2.5 Conclusion;174
7.4.3;8.3 Model-Driven Registry Generation for Blockchain;174
7.4.3.1;8.3.1 Registries on Blockchain;175
7.4.3.2;8.3.2 A Tool for Registry Generation: Regerator;176
7.4.3.2.1;Smart Contract Generator;177
7.4.3.2.2;Registry of Registries on Blockchain;178
7.4.3.2.3;Smart Contract Manager;179
7.4.3.3;8.3.3 Exemplar Case Study: Open Data Registry;179
7.4.3.3.1;CKAN;180
7.4.3.3.2;Implementation;180
7.4.3.3.3;Example Data;181
7.4.3.3.4;Discussion;181
7.4.3.4;8.3.4 Conclusion;182
7.4.4;8.4 Summary;182
7.4.5;8.5 Further Reading;183
8;Part III Quality Impact of Using Blockchain;185
8.1;9 Cost;186
8.1.1;9.1 On-Chain Data Cost;187
8.1.2;9.2 Smart Contract Cost;189
8.1.3;9.3 Cost Models;189
8.1.3.1;9.3.1 Ethereum Blockchain Cost Model;190
8.1.3.2;9.3.2 Amazon SWF Cost Model;192
8.1.4;9.4 Using and Evaluating the Cost Model;195
8.1.4.1;9.4.1 Experiment Setup, Methodology, and Benchmarking;195
8.1.4.1.1;Blockchain;196
8.1.4.1.2;Amazon SWF;196
8.1.4.1.3;VM Throughput Measurements;196
8.1.4.2;9.4.2 Blockchain Results;197
8.1.4.3;9.4.3 Amazon SWF Results;198
8.1.4.4;9.4.4 Completeness, Correctness, and Comparative Analysis;199
8.1.4.5;9.4.5 On the Volatility of Cryptocurrency to Fiat Currency Exchange Rate;201
8.1.5;9.5 Discussion;203
8.1.5.1;9.5.1 Cost of Distrust;203
8.1.5.2;9.5.2 Cost vs. Maintainability;204
8.1.5.3;9.5.3 Scaling Triggers for Blockchain and SWF;204
8.1.5.4;9.5.4 Optimization and Throughput;205
8.1.6;9.6 Summary;205
8.1.7;9.7 Further Reading;206
8.2;10 Performance;207
8.2.1;10.1 Performance Characteristics of Blockchain;207
8.2.2;10.2 Architectural Performance Modelling;209
8.2.3;10.3 Predicting Latency for Blockchain-Based Systems;209
8.2.3.1;10.3.1 Benchmarking Transaction Inclusion and Commit Times;210
8.2.3.2;10.3.2 Blockchain-Based System Performance Modelling;212
8.2.3.2.1;Component Repository Model;213
8.2.3.2.2;Resource-Demanding Service Effect Specifications (RDSEFF);214
8.2.3.2.3;Usage Model;214
8.2.3.3;10.3.3 Using Simulation for System-Level Latency Predictions;216
8.2.3.3.1;Applying Simulation to Other Systems;217
8.2.4;10.4 Architectural Decision-Making;218
8.2.4.1;10.4.1 Choice of Inter-Block Time;218
8.2.4.2;10.4.2 Choice of Number of Confirmation Blocks;219
8.2.4.3;10.4.3 Process-Level Changes;220
8.2.5;10.5 Summary;220
8.2.6;10.6 Further Reading;221
8.3;11 Dependability and Security;223
8.3.1;11.1 Confidentiality;224
8.3.2;11.2 Integrity;225
8.3.3;11.3 Safety;226
8.3.4;11.4 Maintainability;227
8.3.5;11.5 Availability and Reliability;228
8.3.6;11.6 Variation in Blockchain Transaction Inclusion;229
8.3.6.1;11.6.1 Variation in Bitcoin Transaction Commit Time;230
8.3.6.2;11.6.2 Variation in Ethereum Transaction Commit Time;233
8.3.7;11.7 Aborting and Retrying Blockchain Transactions;239
8.3.7.1;11.7.1 Aborting and Retrying Transactions in Ethereum;240
8.3.7.2;11.7.2 Aborting and Retrying Transactions in Bitcoin;240
8.3.7.3;11.7.3 Experiments for Aborting Transactions in Ethereum;241
8.3.8;11.8 Summary;244
8.3.9;11.9 Further Reading;244
9;Part IV Case Studies;246
9.1;12 Case Study: AgriDigital;247
9.1.1;12.1 Agricultural Supply Chains;247
9.1.1.1;12.1.1 Global Agricultural Supply Chains;247
9.1.1.2;12.1.2 Blockchain and Agriculture;248
9.1.2;12.2 The AgriDigital Vision;249
9.1.2.1;12.2.1 Building Digital Trust;249
9.1.2.2;12.2.2 AgriDigital's Blockchain Solution;250
9.1.2.3;12.2.3 Architecturally Significant Non-functional Requirements;252
9.1.2.4;12.2.4 Pilots and Proof-of-Concept Overview;252
9.1.3;12.3 Designing for a Business Use Case;255
9.1.3.1;12.3.1 Overview;255
9.1.3.2;12.3.2 Pilot Scenarios;256
9.1.3.3;12.3.3 Design Decisions;258
9.1.4;12.4 Summary;262
9.2;13 Case Study: SecureVote;264
9.2.1;13.1 Introduction and Background;264
9.2.2;13.2 The MVP Prototype;266
9.2.3;13.3 Building Tokenvote;268
9.2.3.1;13.3.1 Tokenvote Architecture Overview;269
9.2.3.1.1;Planned Architecture;269
9.2.3.1.2;Final Architecture;271
9.2.3.1.3;Qualities and Trade-offs;273
9.2.4;13.4 Details and Code Samples;274
9.2.4.1;13.4.1 Indexing and Externally Accessing Data;274
9.2.4.2;13.4.2 Splitting Up Contracts;276
9.2.4.2.1;Augmenting Smart Contraction Functionality via Auxiliary Contracts;277
9.2.4.2.2;Adding a Backend Smart Contract;277
9.2.4.2.3;Using Libraries;278
9.2.4.3;13.4.3 Upgrades and Trade-offs;279
9.2.4.3.1;Replacing Smart Contracts;279
9.2.4.3.2;SecureVote's First Upgrade;280
9.2.4.3.3;Complex Upgrades;282
9.2.4.3.4;Atomic Upgrades and Tokenvote;282
9.2.4.4;13.4.4 Reducing Complexity and Cost;284
9.2.5;13.5 Summary;285
9.2.6;13.6 Further Reading;285
9.3;14 Case Study: originChain;286
9.3.1;14.1 Introduction and Background;286
9.3.1.1;14.1.1 Traceability Process;287
9.3.2;14.2 Architecture of originChain;289
9.3.2.1;14.2.1 Users of originChain;289
9.3.2.2;14.2.2 On-Chain vs. Off-Chain;289
9.3.2.3;14.2.3 Design of Smart Contracts;291
9.3.2.4;14.2.4 Dynamic Behaviour of Smart Contracts;293
9.3.2.5;14.2.5 Permission Control and Blockchain Management;293
9.3.3;14.3 Analysis;294
9.3.3.1;14.3.1 Qualitative Analysis: Adaptability;294
9.3.3.2;14.3.2 Quantitative Analysis: Latency of Writing and Reading;297
9.3.4;14.4 Discussion;298
9.3.4.1;14.4.1 Architectural Design of Blockchain-Based Systems;298
9.3.4.2;14.4.2 On-Chain vs. Off-Chain;299
9.3.4.3;14.4.3 Adaptability of Blockchain-Based Systems;299
9.3.5;14.5 Summary;299
10;Epilogue;301
11;References;304
12;Index;310



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.