Architecture for Blockchain Applications (eBook)

eBook Download: PDF
2019 | 1st ed. 2019
XXII, 307 Seiten
Springer International Publishing (Verlag)
978-3-030-03035-3 (ISBN)

Lese- und Medienproben

Architecture for Blockchain Applications - Xiwei Xu, Ingo Weber, Mark Staples
Systemvoraussetzungen
85,59 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
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).

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).

Foreword 5
How to Read This Book 10
Acknowledgements 13
Legal Disclaimer for Code Samples 14
Contents 15
Part I Blockchain in Software Architecture 19
1 Introduction 20
1.1 What Is Blockchain and Why Should I Care? 20
1.1.1 Defining Blockchain 22
1.1.2 Smart Contracts and Decentralized Applications 24
1.1.3 Cryptocurrencies and Tokens 25
1.2 Blockchain-Based Applications 26
1.2.1 Enterprise and Industry 27
1.2.2 Financial Services 28
1.2.3 Government Services 30
1.3 Blockchain Functionality 31
1.3.1 Blockchain as Data Storage 32
Transactions 32
Digital Assets 34
1.3.2 Blockchain as a Computational Infrastructure 35
1.4 Blockchain Non-functional Properties 36
1.4.1 Non-functional Properties and Requirements 36
1.4.2 Non-functional Properties of Blockchain 36
1.5 Blockchain Architecture Design 38
1.5.1 Software Architecture: Design and Analysis 38
1.5.2 Designing Blockchain-Based Applications 38
1.6 Summary 41
1.7 Further Reading 41
2 Existing Blockchain Platforms 43
2.1 Bitcoin 43
2.1.1 Bitcoin Transactions 44
2.1.2 Script 45
2.1.3 Mining 46
2.1.4 Accounts and State 47
2.1.5 Nakamoto Consensus 49
2.1.6 Deflationary Cryptocurrency 50
2.1.7 Wallets 50
2.1.8 Exchanges 51
2.2 Ethereum 51
2.2.1 Ethereum Protocol 51
2.2.2 Ethereum Transactions 52
2.2.3 Smart Contract 53
2.2.4 Paying Fees in `Gas' 55
2.2.5 Decentralized Application (dapp) 55
2.3 Hyperledger Fabric 56
2.3.1 Permissioned Blockchain 57
2.3.2 Chaincode as Smart Contract 57
2.3.3 Nodes 57
2.3.4 Transactions 58
2.3.5 Consensus 59
2.4 Other Representative Blockchain Platforms 60
2.5 Further Reading 60
3 Varieties of Blockchains 61
3.1 Fundamental Properties of Blockchain 61
3.2 Decentralization 62
3.2.1 Permission 64
3.2.2 Deployment 65
3.3 Ledger Structure 66
3.4 Consensus Protocol 67
3.5 Block Configuration 69
3.6 Auxiliary Blockchains 70
3.7 Anonymity 73
3.8 Incentives 74
3.9 Summary 74
3.10 Further Reading 74
4 Example Use Cases 76
4.1 Agricultural Supply Chains 76
4.1.1 Key Non-functional Requirements 77
4.1.2 Conventional Technology 78
4.1.3 A Blockchain Solution 79
4.1.4 Non-functional Property Discussion 79
4.2 Open Data Registry 82
4.2.1 Key Non-functional Requirements 83
4.2.2 Conventional Technology 84
4.2.3 A Blockchain Solution 84
4.2.4 Non-functional Property Discussion 85
4.3 International Money Transfers 86
4.3.1 Key Non-functional Requirements 87
4.3.2 Conventional Technologies 87
4.3.3 A Blockchain Solution 89
4.3.4 Non-functional Property Discussion 89
4.4 Electricity Contract Selection and Continuous Reporting 90
4.4.1 Key Non-functional Requirements 91
4.4.2 Conventional Technologies 91
4.4.3 A Blockchain Solution 91
4.4.4 Non-functional Property Discussion 93
4.5 Further Reading 93
Part II Architecting Blockchain-Based Applications 95
5 Blockchain in Software Architecture 96
5.1 Blockchain as an Architectural Element 96
5.2 Blockchain as Storage Element 97
5.2.1 Comparison with Centralized Databases 98
5.2.2 Comparison with Cloud Services 99
5.2.3 Comparison with Peer-to-Peer Data Storage 99
5.2.4 Comparison with Replicated State Machines 100
5.3 Blockchain as Computational Element 101
5.4 Blockchain as Communication Mechanism 102
5.4.1 Data Communication 102
5.4.2 Computation Communication 103
5.5 Blockchain as an Asset Management and Control Mechanism 103
5.6 Integrating Blockchain into a System as a Component 104
5.7 Summary 105
5.8 Further Reading 105
6 Design Process for Applications on Blockchain 106
6.1 Evaluation of Suitability 106
6.1.1 Multiparty 107
6.1.2 Trusted Authority 108
6.1.3 Operation 109
6.1.4 Data Immutability and Non-repudiation 109
6.1.5 High Performance 110
6.1.6 Transparency 111
6.2 Example Use Cases for Suitability Evaluation 113
6.2.1 Use Case 1: Supply Chain 113
6.2.2 Use Case 2: Electronic Health Records (EHRs) 115
6.2.3 Use Case 3: Identity Management 116
6.2.4 Use Case 4: Stock Market 117
6.3 Design Process for Blockchain-Based Systems 117
6.3.1 Trade-Off Analysis 118
6.3.2 Decentralization 119
6.3.3 On-Chain vs. Off-Chain 119
Data 120
Computation 122
Other Considerations 122
6.3.4 Blockchain Selection and Configuration 123
6.3.5 Deployment and Operation 123
6.4 Summary 124
6.5 Further Reading 124
7 Blockchain Patterns 125
7.1 Patterns on Interacting with the External World 127
7.1.1 Pattern 1: Oracle 127
7.1.2 Pattern 2: Reverse Oracle 129
7.1.3 Pattern 3: Legal and Smart Contract Pair 131
7.2 Data Management Patterns 133
7.2.1 Pattern 4: Encrypting On-Chain Data 133
7.2.2 Pattern 5: Tokenization 136
7.2.3 Pattern 6: Off-Chain Data Storage 138
7.2.4 Pattern 7: State Channel 140
7.3 Security Patterns 143
7.3.1 Pattern 8: Multiple Authorization 143
7.3.2 Pattern 9: Off-Chain Secret Enabled Dynamic Authorization 145
7.3.3 Pattern 10: X-Confirmation 147
7.4 Contract Structural Patterns 149
7.4.1 Pattern 11: Contract Registry 149
7.4.2 Pattern 12: Data Contract 152
7.4.3 Pattern 13: Embedded Permission 154
7.4.4 Pattern 14: Factory Contract 156
7.4.5 Pattern 15: Incentive Execution 158
7.5 Summary 159
7.6 Further Reading 160
8 Model-Driven Engineering for Blockchain Applications 161
8.1 Introduction 161
8.2 Model-Driven Generation of Smart Contract Code for Collaborative Business Processes 162
8.2.1 Motivation 162
8.2.2 Challenges of Collaborative Business Process Execution 163
8.2.3 Blockchain-Based Collaborative Process Execution 164
Design Time: Translator 166
Runtime Environment: Executing Processes as Smart Contracts 167
8.2.4 Discussion 172
8.2.5 Conclusion 174
8.3 Model-Driven Registry Generation for Blockchain 174
8.3.1 Registries on Blockchain 175
8.3.2 A Tool for Registry Generation: Regerator 176
Smart Contract Generator 177
Registry of Registries on Blockchain 178
Smart Contract Manager 179
8.3.3 Exemplar Case Study: Open Data Registry 179
CKAN 180
Implementation 180
Example Data 181
Discussion 181
8.3.4 Conclusion 182
8.4 Summary 182
8.5 Further Reading 183
Part III Quality Impact of Using Blockchain 185
9 Cost 186
9.1 On-Chain Data Cost 187
9.2 Smart Contract Cost 189
9.3 Cost Models 189
9.3.1 Ethereum Blockchain Cost Model 190
9.3.2 Amazon SWF Cost Model 192
9.4 Using and Evaluating the Cost Model 195
9.4.1 Experiment Setup, Methodology, and Benchmarking 195
Blockchain 196
Amazon SWF 196
VM Throughput Measurements 196
9.4.2 Blockchain Results 197
9.4.3 Amazon SWF Results 198
9.4.4 Completeness, Correctness, and Comparative Analysis 199
9.4.5 On the Volatility of Cryptocurrency to Fiat Currency Exchange Rate 201
9.5 Discussion 203
9.5.1 Cost of Distrust 203
9.5.2 Cost vs. Maintainability 204
9.5.3 Scaling Triggers for Blockchain and SWF 204
9.5.4 Optimization and Throughput 205
9.6 Summary 205
9.7 Further Reading 206
10 Performance 207
10.1 Performance Characteristics of Blockchain 207
10.2 Architectural Performance Modelling 209
10.3 Predicting Latency for Blockchain-Based Systems 209
10.3.1 Benchmarking Transaction Inclusion and Commit Times 210
10.3.2 Blockchain-Based System Performance Modelling 212
Component Repository Model 213
Resource-Demanding Service Effect Specifications (RDSEFF) 214
Usage Model 214
10.3.3 Using Simulation for System-Level Latency Predictions 216
Applying Simulation to Other Systems 217
10.4 Architectural Decision-Making 218
10.4.1 Choice of Inter-Block Time 218
10.4.2 Choice of Number of Confirmation Blocks 219
10.4.3 Process-Level Changes 220
10.5 Summary 220
10.6 Further Reading 221
11 Dependability and Security 223
11.1 Confidentiality 224
11.2 Integrity 225
11.3 Safety 226
11.4 Maintainability 227
11.5 Availability and Reliability 228
11.6 Variation in Blockchain Transaction Inclusion 229
11.6.1 Variation in Bitcoin Transaction Commit Time 230
11.6.2 Variation in Ethereum Transaction Commit Time 233
11.7 Aborting and Retrying Blockchain Transactions 239
11.7.1 Aborting and Retrying Transactions in Ethereum 240
11.7.2 Aborting and Retrying Transactions in Bitcoin 240
11.7.3 Experiments for Aborting Transactions in Ethereum 241
11.8 Summary 244
11.9 Further Reading 244
Part IV Case Studies 246
12 Case Study: AgriDigital 247
12.1 Agricultural Supply Chains 247
12.1.1 Global Agricultural Supply Chains 247
12.1.2 Blockchain and Agriculture 248
12.2 The AgriDigital Vision 249
12.2.1 Building Digital Trust 249
12.2.2 AgriDigital's Blockchain Solution 250
12.2.3 Architecturally Significant Non-functional Requirements 252
12.2.4 Pilots and Proof-of-Concept Overview 252
12.3 Designing for a Business Use Case 255
12.3.1 Overview 255
12.3.2 Pilot Scenarios 256
12.3.3 Design Decisions 258
12.4 Summary 262
13 Case Study: SecureVote 264
13.1 Introduction and Background 264
13.2 The MVP Prototype 266
13.3 Building Tokenvote 268
13.3.1 Tokenvote Architecture Overview 269
Planned Architecture 269
Final Architecture 271
Qualities and Trade-offs 273
13.4 Details and Code Samples 274
13.4.1 Indexing and Externally Accessing Data 274
13.4.2 Splitting Up Contracts 276
Augmenting Smart Contraction Functionality via Auxiliary Contracts 277
Adding a Backend Smart Contract 277
Using Libraries 278
13.4.3 Upgrades and Trade-offs 279
Replacing Smart Contracts 279
SecureVote's First Upgrade 280
Complex Upgrades 282
Atomic Upgrades and Tokenvote 282
13.4.4 Reducing Complexity and Cost 284
13.5 Summary 285
13.6 Further Reading 285
14 Case Study: originChain 286
14.1 Introduction and Background 286
14.1.1 Traceability Process 287
14.2 Architecture of originChain 289
14.2.1 Users of originChain 289
14.2.2 On-Chain vs. Off-Chain 289
14.2.3 Design of Smart Contracts 291
14.2.4 Dynamic Behaviour of Smart Contracts 293
14.2.5 Permission Control and Blockchain Management 293
14.3 Analysis 294
14.3.1 Qualitative Analysis: Adaptability 294
14.3.2 Quantitative Analysis: Latency of Writing and Reading 297
14.4 Discussion 298
14.4.1 Architectural Design of Blockchain-Based Systems 298
14.4.2 On-Chain vs. Off-Chain 299
14.4.3 Adaptability of Blockchain-Based Systems 299
14.5 Summary 299
Epilogue 301
References 304
Index 310

Erscheint lt. Verlag 5.3.2019
Zusatzinfo XXII, 307 p. 87 illus., 15 illus. in color.
Verlagsort Cham
Sprache englisch
Themenwelt Informatik Netzwerke Sicherheit / Firewall
Schlagworte Bitcoin • Blockchain • distributed database transactions • Ethereum • Extra-functional properties • Hyperledger Fabric • Information Systems Applications • software architecture • software functional properties
ISBN-10 3-030-03035-0 / 3030030350
ISBN-13 978-3-030-03035-3 / 9783030030353
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 9,2 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Umfassendes Sicherheits-, Kontinuitäts- und Risikomanagement mit …

von Klaus-Rainer Müller

eBook Download (2023)
Springer Fachmedien Wiesbaden (Verlag)
79,99
Das Praxishandbuch zu Krisenmanagement und Krisenkommunikation

von Holger Kaschner

eBook Download (2024)
Springer Vieweg (Verlag)
37,99