Decentralized Applications (DApps): An Overview

DApp, or Decentralized Application, is a smart contract and a web user-interface that is built on top of open, decentralized, peer-to-peer infrastructure services. In addition, many DApps include decentralized storage and/or message protocol and platform.

What is a Decentralized Application (DApp)?

The word DApp is a portmanteau deriving from the terms "decentralized" and "application" or the abbreviated form of the phrase "decentralized application" itself. Decentralized applications, or DApps, are a revolutionary new type of application that operates without the need for a middleman. Comprised of a smart contract and a web user interface, DApps are built on top of an open, decentralized, peer-to-peer infrastructure and offer a set of functions that allow end-users to interact with them. Accessible through their official website, DApps can be developed by anyone with the required skills and used by end-users immediately upon deployment. With the ability to simply build and deploy them onto the blockchain, DApps represent a major advancement in the way we think about and use applications.

Infographic on how decentralized application works

Characteristics of a DApp

To be considered a DApp, it must fulfill certain criteria. First, the code must be open-source and able to operate independently without external interference. Second, the DApp must be decentralized, with publicly accessible data on the distributed ledger. Third, it must be able to execute any actions once the necessary conditions are satisfied. Finally, the DApp must be isolated within an Ethereum Virtual Machine (EVM), ensuring compatibility with the EVM ecosystem and minimizing the potential for network issues resulting from bugs in the DApp.

Why Should We Use Dapps?

In the Web2 ecosystem, privacy is a major concern, and DApps aim to address this issue. When interacting with a DApp, personal information is not required as all actions are facilitated through a smart contract. These contracts are verifiable, reducing the need for trust, and as they are open-source, users can verify their capabilities before interacting with them. Additionally, there are no restrictions on actions within the Web3 ecosystem, and data on the distributed ledger is immutable, making it unlikely to be tampered with. Smart contracts also operate continuously, providing users with access to DApps 24/7.

Why Should We Not Use Dapps?

The decentralized nature of DApps comes with its own set of challenges, including maintenance. Maintaining a DApp can be difficult as deployed smart contracts cannot be updated due to their immutability. If a bug is discovered in a deployed smart contract, the only way to fix it is by creating a new contract and migrating the project to it. This can negatively impact user experience, especially for those who are new to DApps, as there may be additional steps to follow and mistakes in transactions may not be reversible. Additionally, high gas fees may be encountered during times of network congestion, requiring users to wait for a more opportune time to complete their transaction. It is also worth noting that, while transactions are facilitated through a smart contract, the organization or company behind the project may still have the ability to store some user information on their servers, potentially centralizing the DApp to some extent, unless the data is fully stored on-chain.