This is the approved revision of this page, as well as being the most recent.
Decentralized application (dapp) is a program that is ran via p2p network and provides some services for its users. Like blockchain is a distributed data storage, dapp is a distributedly ran digital application.
Dapps share a lot of the advantages that are mostly attributed to blockchain like resistance to censorship, robustness, reliability and immutability. It is mostly achieved with an implementation of dapps on top of blockchain-based networks. Data that is used in dapps is stored in various blockchain databases, but users of the network have no need in being involved in those blockchains.
Decentralized applications are very similar to standard applications, mostly used everyday. All the important differences are contained in a backend of an application - the part of a program that is not visible for user, but, however, strongly influences many important properties of an app.
Ethereum was a first platform to implement dapps. It is also the platform that made decentralized applications popular and widely used. In the project’s white paper the The Ethereum team stated that dapps are used in three ways with the platform. They are:
- Financial applications for smart contracts’ usage with sub-currencies, savings wallets wills and so on
- Semi-financial dapps that have a large functional that does not involve money, but also offer financial operations
- Non-financial applications like online voting systems
Those three categories include many possible implementations of dapps, like decentralized autonomous organizations (DAOs), identity systems, decentralized file storages and many others. Some of the prominent Ethereum-based dapp examples are:
- Augur, forecasting platform for “Wisdom of the Crowd” predictions
- Status, mobile OS for messaging, asset management and browsing
- Prism, decentralized asset portfolio market with custom management tools
- Aragon - platform for DAO management
Ethereum’s approach gathered a lot of attention and was fast to make the project the most often used platform for dapp development. However, many other platforms, like, for example, NEO, Hedera Hashgraph and Cardano are currently gaining popularity and market share.
Currently used central-governed applications have a lot of downsides, that can be reduced or removed with the implementation of decentralized network structure. First of all, classic-type application is fully controlled by one single entity (in the form of developer or organization) that means that users can’t participate in the network’s development. It also gives the network’s owner total control over the information and its flow within the network. This leaves a place for censorship, information replacement, fraud and so on. Decentralized applications don’t have such problems as an information in blockchain is not changeable and is protected by network’s consensus.
The second major problem of the centralized networks is their vulnerability to various attacks. While classic applications can be damaged by attacking the central servers of it, dapps are maintained by an unlimited number of servers.
Dapps can have their own in-app tokens that make transactions much faster and more transparent, but are not governed by any single entity.