A decentralized application is a service that runs on a peer-to-peer network of computers providing direct interaction between users and providers. As opposed to traditional centralized applications where code is run on centralized servers, decentralized applications are intended to operate in a manner not controlled by a single trusted entity. These properties make decentralized applications inherently more difficult to hack or coerce.
Decentralized applications exist in a variety of forms prior to the development of blockchain technology such as BitTorrent and Tor. However, blockchain technology has dramatically increased the scope and attention of the potential of decentralized applications. For example, Ethereum provides a general purpose blockchain designed to facilitate the development of Dapps, and has resulted in a dramatic increase in the number of Dapps under development.
The precise definition of a decentralized applications is not agreed upon in this actively developing field. However, any application which is not completely open source and transparent is not considered a decentralized application because it reinstates the trust requirements around code execution.
DApps can be classified based on whether they operate on their own blockchain, or whether they operate on the blockchain of another DApp. By this classification, DApps are divided into three types.
Type 2 DApps are protocols that operate on the blockchain of a Type I DApp. These protocols themselves have tokens that are required for their function.
Type 3 DApps are protocols that operate using the protocols of a Type II DApp. Similar to Type II DApps, Type III DApps also have tokens that are required for their function.
The resources for building decentralized applications have been rapidly advancing. Dapps have both front end (visible elements of an application) and back end (internal logic components).
Front end of Dapps can consist of the usual HTML, CSS, or any other elements of traditional applications. Decentralized solutions for storing and sharing files are being developed such as IPFS/Filecoin, Storj, Siacoin, Maidsafe, and others.
Smart contracts provide a method for decentralized applications to interact with blockchains. Blockchain platforms such as Ethereum, Bitcoin’s rootstock, Lisk, Tezos, NEO, EOS, and others provide support for smart contracts capable of executing arbitrarily complex business logic allowing for almost any range of possible decentralized applications.
DApps have their backend code running on a decentralized peer-to-peer network, as opposed to typical applications where the backend code is running on centralized servers. A DApp can have frontend code and user interfaces written in any language that can make calls to its backend.
DApps have been utilized in decentralized finance (DeFi), in which dapps that perform financial functions on blockchains.
All the DApps have an identifying code that may only work on a specific platform. Not all DApps work on standard web browsers. Some of them only work on special websites with a customized code, adjusted to open certain DApps.
The performance of a DApp is tied to its latency, throughput, and sequential performance. Bitcoin's system for transaction validation is designed so that the average time for a Bitcoin to be mined is 10 minutes. Ethereum offers a reduced latency of one transaction every 15 seconds. For comparison, Visa handles approximately 10,000 transactions per second. More recent DApp projects, such as Solana, have attempted to exceed that rate.
Internet connectivity is a core dependency of blockchain systems, which includes DApps. High monetary costs also act as a barrier. Transactions of small monetary values can comprises a large proportion of the transferred amount. Greater demand for the service also leads to increased fees due to increased network traffic. This is an issue for Ethereum, which is attributed to increased network traffic caused by DApps built on the Ethereum blockchain, such as those used by Non-fungible tokens (NFTs). Transaction fees are affected by the complexity of a DApp's smart contracts, and by the particular blockchain.
Decentralized applications also require some form of external data which informs the execution of the internal logic of the application. Oracles are in development which provide decentralized means of accessing external data without relying on trusted 3rd parties. Prediction markets in development such as Augur and Gnosis are examples of Oracles.
A Bitcoin mining rig composed of dozens of graphics processing units:
The Shared Data Layer of The Blockchain Application Stack
Documentaries, videos and podcasts
- BlockchainA blockchain is an append-only digital ledger storing a set of time-ordered transactions grouped in blocks that are linked together using cryptographic hashes.
- CryptocurrencyA cryptocurrency (or crypto currency) is a digital asset designed to work as a medium of exchange using cryptography to secure the transactions and to control the creation of additional units of the currency. Cryptocurrencies are a subset of alternative currencies, or specifically of digital currencies.
- EthereumEthereum is an open-source, public, distributed blockchain computing platform featuring smart contract (scripting) functionality, which facilitates online contractual agreements.
- BitcoinBitcoin is a cryptocurrency and a digital payment system invented by an unknown programmer, or a group of programmers, under the name Satoshi Nakamoto. It was released as open-source software in 2009.
- TezosTezos is an open-source blockchain protocol relying on a low power consumption and energy-efficient consensus.
- InterPlanetary File SystemContent-addressable, peer-to-peer hypermedia distribution protocol.
- FilecoinFilecoin is a blockchain based storage and cryptocurrency created by Protocol Labs.
- Show More