DApp is the abbreviation for decentralised application.
A dApp has its own backend code running on a decentralised peer-to-peer network, which differentiates it from most common applications whose backend code is running on centralised servers.
Centralised, Distributed, and Decentralised: the differences
Software and centralised systems are currently the most prevalent.
In each network, components interact with each other in order to achieve a common goal.
In centralised systems, the decisions to achieve a goal are taken by a central and fixed entity and then transmitted to the various components.
In a distributed system, data does not reside in a single central node but is distributed over several nodes.
A centralised system could be designed to be distributed as well. In this case, all nodes will be controlled by a central authority that can decide and ensure the proper functioning.
In a decentralised system, on the other hand, each node has the same relevance and there is no dominant central entity with decision-making powers.
Decentralised apps are applications that run on a peer-to-peer computer network, rather than on a single computer. They can be considered a form of software designed to work on the Internet without being controlled by a single entity.
The dApps on the blockchain
Decentralized applications do not necessarily have to run on a blockchain network. For example, BitTorrent and Tor are traditional dApps that run on a peer to peer network, but not on a blockchain network.
Decentralised blockchain applications should meet the following criteria derived from the whitepaper by David Johnston, CEO of Dapps Fund:
- Fully open-source application;
- Data and operation records stored on a public blockchain;
- Use of a cryptographic token;
- Generation of tokens by the application.
Johnston in his whitepaper not only identifies the main features of a dApp but ranks them according to whether or not to use a proprietary blockchain.
David identifies three types of dApps:
- Type 1: dApps with their own blockchain, such as Ethereum;
- Type 2: dApp that uses the blockchain of a type 1 dApp, but with proprietary tokens for its operation;
- Type 3: dApp that uses the protocol of a type 2 dApp.
The Ethereum platform
The Ethereum platform has been the real precursor for decentralised applications. It provides a Turing complete decentralised virtual machine, the Ethereum Virtual Machine (EVM), which executes scripts using a network of public nodes.
The main feature is the decentralised code, i.e. code hosted on thousands of computers and then executed in parallel.
In the unfortunate case of a network node crashing or refusing to execute the code, the same code is executed on all the other computers (nodes) in the network.
DApps are therefore considered more flexible, transparent, distributed and resilient.