Advertisement
Advertisement

More Related Content

Similar to Towards Blockchain Tactics: Building Hybrid Decentralized Software Architectures (ICSA 2019)(20)

Advertisement

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
  4. Each node saves the latest world state 4 Transaction 0x8682934 setPremium(1500) Node #74 Contract 0x123 {insuranceId: 0x485, premium: 851241, trigger: 0x791, setPremium: func(a) } Contract 0x815 {...} Node #74 Contract 0x123 {insuranceId: 0x485, premium: 851241, trigger: 0x791, setPremium: func(a) } Contract 0x815 {...} Node #74 Contract 0x123 {insuranceId: 0x485, premium: 851241, trigger: 0x791, setPremium: func(a) } Contract 0x815 {...} Transaction 0x8682934 setPremium(1500) Transaction 0x8682934 setPremium(1500) Blockchain Technology Ethereum
  5. Receive transaction and update world state 5 Node #74 Contract 0x123 {insuranceId: 0x485, premium: 1500, trigger: 0x791, setPremium: func(a) } Contract 0x815 {...} Node #74 Contract 0x123 {insuranceId: 0x485, premium: 1500, trigger: 0x791, setPremium: func(a) } Contract 0x815 {...} Node #74 Contract 0x123 {insuranceId: 0x485, premium: 1500, trigger: 0x791, setPremium: func(a) } Contract 0x815 {...} ✅ ✅ ✅ ✅ ✅ ✅ ✅ 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
  13. Thank you! 😄 Questions? 💭 Florian Wessling E-Mail: florian.wessling@uni-due.de Twitter: @ColdDevil
Advertisement