Table of Contents

Challenges in architecting dApps for blockchain platforms

By Anton Zubarev

Introduction

Numerous architecture challenges appear, while developing software systems [1], including interface stability, guaranteeing security and reliability, evolution management and assembling independently developed modules. With the invention of the Blockchain technology, decentralized apps (dApps), though being around before blockchain (using P2P network) [2], became increasingly popular. These kinds of apps, while having significant advantages over typical ones, present new architectural challenges. The essay introduces the overall concept of decentralized apps on the blockchain and describes challenges in their architecture.

Smart contracts as a base for DApps on the blockchain

Blockchain technologies have been actively developing with the invention of the Bitcoin cryptocurrency by Satoshi Nakamoto in 2008 [3]. A blockchain is essentially a public digital ledger, which is distributed and decentralized and which is used to store transactions among many nodes. Moreover, every record in the blockchain cannot be changed after it has been “committed” to the network without altering all of the following blocks of records. The theoretical basis of the blockchain, providing advantages such as transparency, security, immutability and decentralization, made it a very promising technology for a variety of Internet-based systems including digital currency, Internet of Things (IoT), public and security services [4].

Since blockchain is a form of a distributed system with no centralized control (decentralized consensus algorithms are used), all the applications, built on it, can be categorized as decentralized applications (or, shortly, DApps). As it was mentioned in the introduction, before the rising popularity of the blockchain, DApps were referenced and used in the context of Peer-to-Peer (P2P) networks. Some of the most widely used of them are, for example, BitTorrent [5] (used for file sharing) and BitMessage [6] (for instant messaging).

While blockchain infrastructure provides decentralized and distributed ledger to store some records (initially related to transactions between users of the cryptocurrency), it is still not clear how programs can be executed. Another important step in the blockchain evolution is the adoption of smart contracts. The smart contract functionality provides an abstraction layer for general computations on the blockchain. Those blockchains supporting smart contracts are often referred to as second-generation blockchains. One of the most popular examples is Ethereum [7], which gives developers an ability to implement Turing-complete smart contracts, that is, the ability to create DApps. Ethereum DApp market is the biggest (by value) blockchain-based DApp market [8].

Characteristics of dApps

Decentralized apps have the following advantages:

As for the disadvantages, they are:

Architectural challenges

After studying the notion of decentralized apps and their advantages and disadvantages, the following architectural challenges were identified:

Conclusion

The essay presented the overall concept of decentralized apps (dapps) and possible architectural challenges. Despite the growing popularity of smart contracts and infrastructure for the deployment of decentralized apps, there are multiple important factors to take into account during the development of the dapp. Those factors are mostly related to the nature of the blockchain. In my opinion, crucial ones are the need to thoroughly test the dapp, before it is released, and maintain the privacy of the users, due to the immutability of the blockchain network.

References

  1. Bosch, Jan. Architecture challenges for software ecosystems. ACM International Conference Proceeding Series. 93-95. 10.1145/1842752.1842776.
  2. Pacitti, Esther et al. “P2P Techniques for Decentralized Applications.” Synthesis Lectures on Data Management (2012).
  3. S. Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” 2008.
  4. Z. Zheng, S. Xie, H.-N. Dai, X. Chen, and H. Wang, “Blockchain challenges and opportunities: a survey,” International Journal of Web and Grid Services, vol. 14, no. 4, pp. 352–375, 2018.
  5. BitTorrent. URL: https://www.bittorrent.com/
  6. BitMessage. URL: https://bitmessage.org/
  7. Buterin, Vitalik. “A Next-Generation Smart Contract and Decentralized Application Platform.” (2015).
  8. 2020 Q2 Dapp Market Report by Dapp.com. URL: https://www.dapp.com/article/q2-2020-dapp-market-report
  9. Cai, Wei & Wang, Zehua & Ernst, Jason & Hong, Zhen & Feng, Chen. (2018). Decentralized Applications: The Blockchain-Empowered Software System. IEEE Access. 6. 53019-53033. 10.1109/ACCESS.2018.2870644.
  10. Wu, Kaidong & Ma, Yun & Huang, Gang & Liu, Xuanzhe. (2019). A first look at blockchain‐based decentralized applications. Software: Practice and Experience. 51. 10.1002/spe.2751.