Quality analysis of DApps and other artefacts related to smart contracts in blockchains

Quality analysis of DApps and other artefacts related to smart contracts in blockchains

Major cloud providers now offer hosted and managed Blockchain-as-a-Service. But while developer tooling around conventional cloud applications has matured over the years, corresponding tooling is still only emerging for developers of smart contracts and DApps. Instead of just expecting a blue/green deployment to identify quality issues, an upfront assessment is necessary. At Zurich University of Applied Sciences, we have done research on performing quality analysis of DApps and other artefacts related to smart contracts in blockchains. In this talk, we outline the popularity of DApps, potential quality issues, and tools to support developers with CI/CD integration and regression tests based on a growing knowledge base of quality characteristics. We show that on the metadata, code and community engagement levels, substantial differences exist between DApps including many avoidable quality pitfalls.

Transcript

  1. Quality analysis of DApps and other artefacts related to smart

    contracts in blockchains • Ilham Ahmed Qasse, University of Sharjah • Dr.-Ing. habil. Josef Spillner, ZHAW SPLab • Funded by: SERI/Swiss Leading House MENA Blockchain Meetup (Azure Blockchain Zurich), Aug 29, 2019
  2. Background Distributed and decentralised cloud architectures - storage 2011- 13

    (NubiSave) vs. 2015-19 (Sia) 2
  3. Background We investigate the quality of (cloud) software artefacts. ⚫microservices

    → Microservice Artefact Observatory ⚫ Helm charts & CNAB, Docker images, Lambda functions, K8s YAMLs... ⚫legacy language-specific artefacts (JARs, eggs, gems, ...) ⚫Blockchain software artefacts??? 3
  4. Questionnaire 4 • Please fill the questionnaire on cloud artefact

    quality. • This questionnaire is anonymous. We don’t collect any personal data.
  5. Background Blockchains are offered as (logically centralised) cloud services, too.

    How do “blockchain apps“ differ from “cloud apps“? 5
  6. Objectives 1. Investigate public repositories that contains decentralised applications(Dapps) and

    presents aggregated metrics. 2. Compare between decentralised applications(DApps) and centralised (cloud/microservice-based) applications. 6
  7. What is Decentralized Applications? • DApp is a distributed application

    that is running on top of blockchain networks. 7
  8. DApps VS. Traditional Applications A DApp uses the same technology

    and programming languages in traditional applications to build the app front end. • Traditional Applications Front End → API → Database • DApps Front End → Smart Contract → Blockchain 8
  9. • CryptoKitties is a game centered around digital, collectible cats

    that you can buy, breed, or sell, each with unique features. • This game was built on Ethereum blockchain platform 9 DApps Example - CryptoKitties
  10. What is Blockchain? • Decentralised database (ledger), where all transactions

    are across peer to peer network. 10
  11. • We investigate five public DApps repositories: DApps Repositories DApp

    Repository # of DApps # of Blockchain Platforms State of the DApps 2700 7 DApp Radar 2400 6 Dapp.com 2800 6 Dapp Store 1500 1 Universal Dapp Store 900 4 11
  12. Ecosystem Perspective 12

  13. Extracted Data 13

  14. Web Crawling Process Flow run the scraping template 1 extract

    the data 2 store the data in csv file 3 highlight the changes in the saved data 4 plot the data 5 14
  15. Live Demo 15

  16. Results • We have investigated the the total number of

    users, transactions, and the total amount of volume and compare it with total number of Dapps. 16
  17. DApps Status 0 200 400 600 800 1000 1200 1400

    1600 Live WIP Beta Concept Prototype # of DApps DApp Status DApp Status 17
  18. DApps Categories 18

  19. DApps Social Media 0 200 400 600 800 1000 1200

    Twitter Medium Youtube Telegram Reddit Facebook Discord Github # of DApps Social Media Account #Dapps 19
  20. Smart Contracts Analysis 20

  21. Smart Contracts Analysis 21 699 1755 59 3 3 1

    Zero <10 <50 <100 <500 <1000 Number of smart contracts in each DApp # of DApps
  22. Smart contracts vs DApps 22

  23. 23 Smart Contracts Analysis

  24. • We have studied the smart contracts of the top

    10 ranked DApps on Ethereum. • 58 smart contracts. • The average number of contracts (classes in object-oriented programming) in each smart contract is ten contracts. • The number of imported libraries are small, as they cost more gas be compiled. 24 Smart Contracts Analysis
  25. Blockchain as a Service 25 • BaaS model allows the

    companies of all sizes to access the blockchain services without the need to maintain the blockchain networks and nodes. • Advantages: • Lower the cost required to access the technology • Provides better scalability
  26. Comparison between the cost of different blockchain platforms 26

  27. Comparison between BaaS Providers Categories Azure AWS IBM Google Oracle

    Framework Corda, Ethereum, Quorum, Hyperledger Fabric, and MultiChain Corda, Ethereum, Quorum, and Hyperledger Fabric Hyperledger Fabric Ethereum and Hyperledger Fabric Hyperledger Fabric Price Pay as per use, differs according to the chosen plan. Pay as per use Monthly Subscription, Free trial Monthly Subscription $0.75 Pay as you go Major Partners BlockApps, Corda, GoChain, with 23 Partner solutions. GuildOne, Cisco, Intel, BlockApps, Kaleido, Manifold Technology, Corda R3 with several other consulting partners. SecureKey Technologies, Canadian banks Digital Asset and BlockApps – Major Clients Xbox, Insurwave, and 3M Guidewire and T Mobile Arab Jordan Investment Bank, CargoSmart, Certified Origins, Intelipost, Nigeria Customs – – 27
  28. 28 Azure BaaS Use Case- Supply chain

  29. • Most of the BaaS platforms only provide deployment services

    not development services. • Development services will help the developers with the challenges of application architecture design. • BaaS platforms are either for certain blockchain network platform, or public cloud provider. 29 Challenges of BaaS
  30. Thank You Any Questions? 30