Decentralized applications (dApps) are digital applications or programs that exist and run on a blockchain or P2P network of computers instead of a single computer, and are outside the purview and control of a single authority.
A standard web app, such as Uber or Twitter, runs on a computer system that is owned and operated by an organization, giving it full authority over the app and its workings.
In the context of cryptocurrencies, dApps run on a blockchain network in a public, open-source, decentralized environment and are free from control and interference by any single authority. Smart contracts are the lifeblood of decentralized applications. These self-executing programs are used to define the logic of decentralized applications.
For example, a developer can create a Twitter-like dApp and put it on a blockchain where any user can publish messages. Once posted, no one—including the app creators—can delete the messages.
Given the ubiquity of centralized apps and our familiarity with them, the question arises whether we even need dApps in the first place. Let’s see what dApps bring to the table and how they fare against their centralized counterparts.
Decentralized systems based on blockchain or other distributed ledger technologies avoid the single point of failure problem inherent to systems that rely on centralized servers. Furthermore, blockchain and DLTs feature robust consensus mechanisms that make them very resistant to malicious attacks.
One of dApps’ biggest advantages is that they, unlike centralized apps, are open and permissionless. This also means that there is no censorship in decentralized apps. However, the open nature of dApps has even greater significance when we consider its impact on the development side of the sector.
The fact that all dApps are essentially open source allows for developers to build on top of each other’s work, to combine and recombine different elements from various projects to create new types of applications and services.