Advertisement
Advertisement

More Related Content

Advertisement

Engineering Software Architectures of Blockchain-Oriented Applications (ICSA 2018)

  1. 1 ICSA, Early Career Researchers Forum Seattle, USA 2018-05-01 Florian Weßling florian.wessling@paluno.uni-due.de University Duisburg-Essen, Germany Prof. Dr. Volker Gruhn Engineering Software Architectures of 
 Blockchain-Oriented Applications
  2. Overview • Blockchain Intro • Architectures of Blockchain-based Applications • Next Steps and Discussion 2
  3. 3 Blockchain Intro
  4. 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 4 – https://medium.com/loom-network/scalability-tradeoffs-why-the-ethereum-killer-hasnt-arrived-yet-8f60a88e46c0
  5. • Consensus about world state: values of objects • Transactions modify the world state deterministically 5 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 } } Ethereum
  6. • Each node saves the latest world state 6 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) Ethereum
  7. • Receive transaction and update world state 7 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 {...} Ethereum ✅ ✅ ✅ ✅ ✅ ✅ ✅
  8. 8 Architectures of Blockchain-based Applications
  9. • Increasing need for building blockchain-based applications (decentralized apps = DApps) • → Increasing need for good architectures and smart contracts! • Deal with blockchain properties: decentral, trustless, transparent and immutable system • Best practices, architectural patterns, design patterns for smart contracts • Main Research Question: 
 How to determine the architecture of a blockchain-based application? • Concepts to support architectural design of blockchain-based applications are missing 9 Research Motivation
  10. Which architectural patterns exist in blockchain-based applications? • Examine architectures of existing DApps • A: Self-Generated Transaction • B: Self-Confirmed Transaction • C: Delegated Transactions • Compare pros and cons regarding costs, trust, complexity, user experience 10 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 DApp Architectures [2]
  11. Outlook: Overall Concept 11 B ZY S X Contractor Construction Supervisor Building Owner Contractor Contractor Area B Area A B ZY S X Contractor Construction Supervisor Building Owner Contractor Contractor B ZY S X Contractor Construction Supervisor Building Owner Contractor Contractor B ZY S X Contractor Construction Supervisor Building Owner Contractor Contractor Architectural Patterns + Best Practices Use Case Terms + Properties Implementation as 
 Smart Contract + Design Patterns
  12. 12 Next Steps and Discussion
  13. • Risk: Ethereum technology lock-in • start with Ethereum, extend to other platforms • goal: generalized and technology agnostic approach • Next Steps • write down research questions and hypotheses • describe the research outcome/artifacts and methodology how to get there • Advice from ECRF mentor: Qualitative studies: (semi-)structured interviews/questionnaires • Examine the Architecture Tradeoff Analysis Method (ATAM): look where Blockchain aspects are not covered • Working on validation: Three research projects in submission (energy, building, insurance) Next Steps and Discussion 13
  14. 14 Thank you! 😄 Questions? 💭 Discussion? 💬
Advertisement