DApp is short for decentralized application.
A dApp has its own backend code running on a decentralized peer-to-peer network, which differentiates it from the most common applications whose back-end code runs on centralized servers.
Centralized, distributed and decentralized: the differences
The software and centralized systems are currently the most frequent.
In each network, the components interact with each other to achieve a common goal.
In centralized systems, decisions to achieve a goal are made by a entity central and fixed and then transmitted to the various components.
In a distributed system, the data does not reside in a single central node, they are distributed across multiple nodes.
A centralized system could be designed to be distributed as well. In this case, all the nodes will be controlled by a central authority that can decide and guarantee the correct operation.
In a decentralized system, on the other hand, each node has the same relevance and there is no dominant central entity with decision-making powers.
Decentralized applications are applications running on a peer-to-peer computer network, instead of on a single computer. They can be considered a form of software designed to function on the Internet without being controlled by a single entity.
DApps on the blockchain
Decentralized applications don't 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.
Decentralized blockchain applications must meet the following criteria derived from document from David Johnston, CEO of Dapps Fund:
- Full open source application;
- Data and records of operations stored on a public blockchain;
- Use of a cryptographic token;
- Generation of tokens by the application.
Johnston in his white paper not only identifies the main characteristics of a dApp, but the classifies according to the use or not of a proprietary blockchain.
David identifies three types of dApps:
- Type 1: dApps with its own blockchain, like Ethereum;
- Type 2: dApp that uses the blockchain of a type 1 dApp, but with patented 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 true precursor of decentralized applications. Provides a complete decentralized Turing virtual machine, the Ethereum virtual machine (EVM), which runs scripts using a network of public nodes.
The main feature is the decentralized codethat is, the code hosted on thousands of computers and then run in parallel.
In the unfortunate case of a network node failing or refusing to run the code, the same code runs on all other computers (nodes) on the network.
Therefore, DApps are considered more flexible, transparent, distributed and resistant..
To date, Ethereum has a great number of dApps on the marketHowever, over time successful alternative platforms have been developed, such as TRON and EOS.