SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Towards Blockchain Tactics: Building Hybrid Decentralized Software Architectures (ICSA 2019)
Presentation slides of the paper "Towards Blockchain Tactics: Building Hybrid Decentralized Software Architectures" at the IEEE International Conference on Software Architecture Companion (ICSA 2019), Hamburg, Germany
PhD student and Research Associate for Blockchain-oriented Software Engineering at the University of Duisburg-Essen
Presentation slides of the paper "Towards Blockchain Tactics: Building Hybrid Decentralized Software Architectures" at the IEEE International Conference on Software Architecture Companion (ICSA 2019), Hamburg, Germany
Towards Blockchain Tactics: Building Hybrid Decentralized Software Architectures (ICSA 2019)
1.
Florian Weßling, florian.wessling@uni-due.de
University Duisburg-Essen, Germany
ICSA, New and Emerging Ideas Track (NEMI)
Hamburg, Germany
2019-03-27
Towards Blockchain Tactics: Building Hybrid
Decentralized Software Architectures
Florian Wessling, Christopher Ehmke, Ole Meyer, Volker Gruhn
2.
Blockchain Technology
• Goal: Saving information
• "A blockchain is a database that can be shared between a group of non-trusting
individuals, without needing a central party to maintain the state of the database."
• Avoid centralization (Server) – Trend towards decentralization (P2P)
• Save information and create consensus (distributed ledger)
• No trust necessary towards a central authority
• Trust towards a self-sustaining protocol using certain incentives to validate transactions
2
– https://medium.com/loom-network/scalability-tradeoffs-why-the-ethereum-killer-hasnt-arrived-yet-8f60a88e46c0
3.
• Consensus about world state: values of objects
• Transactions modify the world state deterministically
3
Contract 0x123
{insuranceId: 0x485,
premium: 851241,
trigger: 0x791,
setPremium: func(a) {
this.premium = a
}
} Transaction 0x8682934
To: 0x123
Call: setPremium(1500)
Contract 0x123
{insuranceId: 0x485,
premium: 1500,
trigger: 0x791,
setPremium: func(a) {
this.premium = a
}
}
Blockchain Technology
Ethereum
6.
Motivation
• Take advantage of Blockchain technology:
decentralized, trustless, transparent and tamper-proof app environment
• Deal with disadvantages:
transaction costs, blocktime delay, technical complexity, difficult updates
• Challenging to determine:
• Which attributes are important for my use case?
• Which elements of my architecture benefit from blockchain technology?
• Increasing need to build good decentralized app (DApp) architectures
• Best practices, architectural patterns, design patterns for smart contracts
• Concepts to support architectural design of blockchain-based applications are missing
6
7.
DApp Architectures
• Which architectural patterns exist in blockchain-based
applications?
• A: Self-Generated Transaction
• B: Self-Confirmed Transaction
• C: Delegated Transactions
• Compare pros and cons regarding costs, trust,
complexity, user experience
7
Browser
MetaMask
/ Wallet
Private or Public Blockchain Node
MyEtherWallet
Blockchain
/ EDCC
A
Browser
MetaMask
/ Wallet
DApp-Website
Private or Public
Blockchain
Node
Blockchain
/ EDCC B
Browser
DApp-
Website
DApp-Server/Backend
REST
Private or
Public
Blockchain
Node
DApp
Backend
Logic
Transactions
Private or
Public
Blockchain
Node
Websocket
Blockchain
/ EDCC C
Florian Wessling, Volker Gruhn. 2018. "Engineering Software Architectures of Blockchain-Oriented Applications".
Early Career Researcher Forum, ICSA 2018, Seattle, USA. IEEE.
8.
Hybrid Software Architectures
• Hybrid Software Architectures: Balance between centralized and decentralized elements
• How to add blockchain technology to an existing system?
• How to replace an existing component with a decentralized counterpart?
• Changing a system is a challenging task...
• Blockchain technology is still new: impact of design decisions on software quality attributes such as
security, maintainability, performance or cost is still unknown
• We argue that a new blockchain-oriented view is required
• We propose blockchain tactics as a guideline and structured way for changing a system
• Which elements should be decentralized? Which are better kept centralized?
8
9.
• Inspired by "Architectural
Tactics", Bass et al.:
"a tactic is a design decision
that influences the control of a
quality attribute response"
• Describes the impact of
architectural decisions on
quality attributes
• e.g.: Modifiability Tactics
9
Blockchain Tactics
L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice. Addison-Wesley Professional, 2003.
10.
• Structure and support architectural and implementation level decisions
• motivate the need for certain information (participants, trust relations, interactions)
• examine influence on quality attributes (e.g. operational costs using a gas cost
simulation for Ethereum)
• Identify and make informed decisions about best practices and design patterns
Intention to
reduce required
trust and centrality
Extending or replacing
elements with
Blockchain technology
Blockchain Tactics
Derive Architectural Design Create Implementation
Wessling et al. [6]
· Examine Participants
· Examine Trust Relations
· Examine Interactions
· Determine Usage Scenarios
· Simulate Operational Costs
· Select Design Patterns
10
[6] F. Wessling, C. Ehmke, M. Hesenius, and V. Gruhn, “How Much Blockchain Do You Need? Towards a Concept for
Building Hybrid DApp Architectures,” in WETSEB’18: IEEE/ACM 1st International Workshop on Emerging Trends in
Software Engineering for Blockchain (WETSEB 2018), ICSE 2018, 2018.
11.
• Four step approach:
• 1. Identify participants
• 2. Identify trust relations between participants
• 3. Identify interactions between participants
• 4. Derive an architectural draft
• Usage
• Adding blockchain technology to existing systems
• Assessing use cases for implementing a new system
11
B
ZY
S
X
Contractor
Construction
Supervisor
Building
Owner
Contractor Contractor
1. Participants
B
ZY
S
X
Contractor
Construction
Supervisor
Building
Owner
Contractor Contractor
2. Trust Relations
B
ZY
S
X
Contractor
Construction
Supervisor
Building
Owner
Contractor Contractor
3. Interactions
Area B
Area A
B
ZY
S
X
Contractor
Construction
Supervisor
Building
Owner
Contractor Contractor
4. Architectural Draft
[2]
12.
Future Work
• Current state: Proposal about which information to collect + how to use it
• Next steps: Apply tactics, learn from it, refine and create new ones
• build specific guidelines for selecting design patterns
• work-in-progress: using meta transactions as a design pattern to
improve UX
• evaluate guidelines in research projects: action research
• Future: architectural strategy = collection of tactics:
"Towards a Blockchain Architectural Strategy"
12