A decentralised application (DApp, dApp, Dapp, or dapp) is an application that can operate autonomously, typically through the use of smart contracts, that run on a decentralized computing, blockchain or other distributed ledger system. Like traditional applications, DApps provide some function or utility to its users. However, unlike traditional applications, DApps operate without human intervention and are not owned by any one entity, rather DApps distribute tokens that represent ownership. These tokens are distributed according to a programmed algorithm to the users of the system, diluting ownership and control of the DApp. Without any one entity controlling the system, the application is therefore decentralised.
Decentralised applications have been popularised by distributed ledger technologies (DLT), such as the Ethereum or Cardano blockchain, on which DApps are built, amongst other public blockchains.
DApps are divided into numerous categories: exchanges, businesses, gambling, games, finance, development, storage, wallet, governance, property, identity, media, social, security, energy, insurance, health, etc.
Definition
There are a series of criteria that must be met in order for an application to be considered a DApp.
Traditional definitions of a decentralised application require a DApp to be open-source. That is, the application operates autonomously without a centralised entity in control of the majority of the application’s associated tokens. DApps also have a public, decentralised blockchain that is used by the application to keep a cryptographic record of data, including historical transactions.
Although traditional DApps are typically open-source, DApps that are fully closed-source and partially closed-source have emerged as the cryptocurrency industry evolves. As of 2019, only 15.7% of DApps are fully open-source while 25% of DApps are closed source. In other words, the proportion of DApps with publicly available code is less than the proportion of Dapps without publicly available code. DApps that are open-source generally have higher transaction volumes than closed-source DApps.
Bitcoin, the first cryptocurrency, is an example of a DApp.
Usage
DApps can be classified based on whether they operate on their own block chain, or whether they operate on the block chain of another DApp.
Smart contracts
Smart contracts are used by developers to maintain data on the block chain and to execute operations. Multiple smart contracts can be developed for a single DApp to handle more complex operations. Over 75% of DApps are supported by a single smart contract, with the remainder using multiple smart contracts.
DApps incur gas, that is fees paid to the validators of the block chain, due to the cost of deploying and executing the DApp's smart contracts. The amount of gas required of a DApp's functions is dependent on the complexity of its smart contracts. A complex smart contract of a DApp that operates on the Ethereum blockchain may fail to be deployed if it costs too much gas, leading to lower throughput and longer wait times for execution.
Operation
Consensus mechanisms are used by DApps to establish consensus on the network. The two most common mechanisms to establish consensus are proof-of-work (POW) and proof-of-stake (POS).
Proof-of-work utilises computational power to establish consensus through the process of mining. Bitcoin uses the proof-of-work mechanism. Proof-of-stake is a consensus mechanism that supports DApps through validators that secure the network by having a stake and percent ownership over the application.
DApps distribute their tokens through three main mechanisms: mining, fund-raising and development. In mining, tokens are distributed as per a predetermined algorithm as rewards to miners that secure the network through transaction verification. Tokens can also be distributed through fundraising, whereby tokens are distributed in exchange for funding in the initial development phase of the DApp, as in an initial coin offering. Lastly, the development mechanism distributes tokens that are set aside for the purpose of developing the DApp through a pre-determined schedule.