What is a decentralized application (dapp)?

Decentralized applications (dapps) are built using blockchain or distributed ledger technologies. Dapps allow users to transparently complete transactions, verify claims, and collaborate without needing to trust a centralized intermediary.

After reading this, you'll understand:

  • The difference between a centralized and decentralized applications
  • How a decentralized application functions
  • How to run a decentralized applications on a distributed ledger
  • Real-world decentralized application use cases

After reading this, you'll understand:

  • The difference between a centralized and decentralized applications
  • How a decentralized application functions
  • How to run a decentralized applications on a distributed ledger
  • Real-world decentralized application use cases

Centralized applications today

Most of the applications we use today are centralized, meaning they are controlled by a single authority. For example, Google and Facebook maintain complete ownership of their respective products, using private servers and databases to run their apps and store user information.

While this centralization gives Google and Facebook control over their applications and user experiences, it can discourage users. Users of centralized apps have limited agency over their data or experience within an application. They must trust the company behind the app to listen to their feedback, to provide product services, and to treat them and their data with respect. However, with Google, Facebook, and other centralized applications facing backlash over privacy and the monetization of user data, many users have become reluctant to trust centralized applications. Developers can address these growing concerns by avoiding centralization altogether, guaranteeing users control over their own experiences and information via decentralized applications, also known as dapps. Dapps allow users to transparently complete transactions, verify claims, and collaborate without needing to trust a centralized intermediary.

The future of decentralized applications

In many ways, decentralized applications are similar to centralized applications. Both kinds of apps can be accessible to a wide audience and provide a diverse set of functions, from business services to entertainment. In fact, the only inherent difference between a decentralized application and a standard application is the type of server that parts of their programs run on.

Decentralized applications are applications that run on a peer-to-peer (P2P) network rather than a centralized server.

Peer-to-peer networks

When an application is built on a P2P network, such as a distributed ledger, each member of that network contributes to the program. From computing power to storage, each of the roles that a central server would normally fill are distributed across the network. Developers do not need to maintain and secure a central server, and users can directly participate in running the app.

Security and reliability

Unlike centralized applications, decentralized application have no single point of failure. Centralized applications rely on centralized servers to run programs and store vital user and application information. If a single, central server is compromised, the entire application might fail. In contrast, decentralized applications run across a network of public nodes and have distributed copies of important information among them. If a single or even multiple nodes are compromised, the application is unaffected. A decentralized application can only be “hacked” if a significant percentage of the network is attacked, simultaneously.

Moreover, if a malicious actor manages to attack the network, any alterations are transparent on a public network, allowing both users and developers to react promptly. When a dapp runs on a public ledger, any person with internet access can participate in the application and the network. As such, anyone can view the record of transactions and any changes made to those records. The result is a level of accessibility and transparency beyond what centralized applications can provide. In its full promise, no central entity can revoke transparency, limit viewership, or censor participation on a public distributed ledger.

Trust

With their combination of security, transparency, and decentralization, DLT-based dapps enable trusted interactions between untrusted peers. Decentralized applications are useful for building trust between users while exchanging assets, verifying claims, and collaborating.

Exchanging Assets

Today’s applications moderate transactions via a central intermediary. Whether this intermediary is a physical person or a digital protocol, the exchange is out of the users’ control; the intermediary could alter the transaction and the user would be none the wiser.

In contrast, when dapp users agree to a transaction, they can trust that their exchange will be carried out perfectly, or not at all. Dapps can ensure the validity of transactions using a feature of DLTs called atomic swaps, through a smart contract. Atomic swaps are the exchange of digital goods that, once agreed upon, cannot be altered; either the swap occurs without alteration, or the smart contract denies the swap entirely. Therefore, users play a part in moderating their own transaction, and they do not have to trust any individual network member or central entity to process their transaction properly.

Verifying claims

Beyond trusted transactions, dapps can also verify ownership of a digital claim, in a secure and reliable way. To represent digital assets, dapps use cryptographic tokens. As their name implies, these tokens are cryptographically protected, giving them unique identifications and making them extremely hard to reproduce. Moreover, token ownership is recorded on a distributed ledger, meaning that every member of the P2P network knows who owns which crypto tokens. With secure, distributed information and cryptographically protected assets, dapps can reliably verify claims and protect those claims from attackers.

Enabling collaboration

Providing trustworthy claim verification and asset exchange, dapps are the perfect tool to enable collaboration across large, untrusted networks. Without a central intermediary determining a final decision, all members of the network are equally valued in the collaboration. They can directly provide information and assets to other members, and any decisions made to update records or carry out transactions must be validated by the true consensus of participants. In this way, dapps enable a truly fair and democratic collaboration, which can be useful across nearly all industries and projects.

Building a decentralized application

Like a standard application, a dapp consists of a user-facing frontend and a backend which contains a database, a server, and an application. Though the frontend of a dapp is not necessarily different from that of a standard application, the backend differs in the following two ways:

  1. Key components of the dapp must run on a P2P network.
  2. All claims and transaction records must be stored across network participants on a distributed ledger.

Beyond these two inherent characteristics, dapps can vary considerably; dapps can have a frontend in any language, traditional or decentralized databases, and private or open source code.

Choosing a distributed ledger

Dapps inherit the infrastructure of the ledger they run on. A platform’s characteristics can significantly impact the construction, maintenance, and efficacy of a dapp. Before selecting a DLT to build on, developers must be sure to match the benefits and detriments of each DLT to their use case.

Ethereum and Hedera offer popular dapp platforms that cater to a wide range of developer use cases. For instance, the Hedera platform offers APIs for Cryptocurrencies, Smart Contracts, and File Service. Using these resources, developers can create market-ready dapps without having to build a backend from the ground up.

Dapp use cases

Because they fundamentally build trust to exchange assets, verify claims, and enable collaboration, dapps lend themselves to a series of unique use cases. These surface in examples like peer-to-peer microtransactions, bringing transparency to supply chains, and global marketplaces.

Developers are already building innovative dapps, which make the most of a decentralized network. Here are some applications using Hedera to build decentralized applications: https://www.hedera.com/users/