- Decentralized applications (dApps) are applications that run on top of blockchain networks. They can be designed for several real-world use cases.
- Decentralized apps eschew centralized servers to transact in a distributed and peer-to-peer (P2P) fashion as opposed to using the central HTTP protocol to communicate.
- A version of this article first appeared on Gemini’s Cryptopedia. Check out the Crypto Council’s Resources for all your explainer needs. Get in touch if there is a topic we can help with.
The Blockchain Makes dApps Possible
Since Bitcoin launched more than a decade ago, blockchain protocols are constantly being developed and refined to unlock new functionalities and use cases. Now there is a budding industry of decentralized applications (dApps) built on blockchain — everything from finance to gaming to web browsing to collecting art.
Though most dApps are built with Ethereum, all dApps are built using blockchain technology. These dApps rely on blockchains to process data through distributed networks and execute transactions with smart contracts. Smart contracts are automated, self-executing agreements that make transactions between two parties seamless, quick, and automatic. They are the key element of dApp technology, and can be combined to create powerful software which can be applied across different industries.
Just like developers build applications for mobile and desktop devices, dApp developers create applications to function on specific blockchain networks. The vast majority of dApp development is on the Ethereum blockchain. As a result, the Ethereum blockchain supports the vast majority of activity across the dApp ecosystem.
Web Apps vs. Decentralized Apps
Trello, Slack, and Twitter are examples of companies that offer web applications. The usability of traditional web applications depends on two elements: the front end and the back end. Web applications use software that lives on centralized web servers, not the local operating system of any given device. Devices and servers communicate via coding messages through the Hypertext Transfer Protocol (HTTP). For instance, when you open Twitter on your web browser, the feed on display (the front end) is drawn from data held on the company’s web server (the back end).
While the internet channels huge amounts of data through massive, centralized servers, a blockchain represents hundreds or even thousands of machines that share the transactional burden over a distributed network. On the front end, decentralized apps and websites use the same technology to render a page on the internet. However, on the back end, dApps communicate with their respective blockchain networks through a wallet, which serves as a bridge to the blockchain ecosystem.
Wallets manage your blockchain address and the cryptographic keys necessary to identify and authenticate yourself. Instead of using the HTTP protocol to communicate with the blockchain, dApp wallets trigger smart contracts that interact with the blockchain and execute transactions. A dApp, then, is the front-end user interface (UI) that communicates with smart contracts that transact on the blockchain, at which point the distributed network of nodes that makes up the blockchain validates and confirms the dApp data. While a well-designed decentralized application user experience (UX) may not seem so different from a web app, it differs from the latter in that it lacks servers, HTTP, and potential censorship.
Decentralized App Criteria
Although it’s apparent that dApp architecture differs from conventional platforms, what constitutes a dApp is still being defined. However, a dApp generally meets these four main criteria:
- A dApp is entirely open source, with no entity owning the majority of the coins or tokens. By way of its open-source nature, changes to the protocol must be decided via consensus of its network users.
- A dApp’s data must be stored on a decentralized blockchain.
- A dApp needs to generate digital assets that act as a proof of value.
- A dApp’s assets are distributed as rewards on the network.
Based on this definition, the Bitcoin blockchain classifies as a dApp because it adheres to all four criteria. Let’s run through the dApp criteria for Bitcoin:
- Bitcoin operates on open source code, no single entity owns the majority of bitcoin (BTC) in circulation, and the Proof-of-Work (PoW) consensus mechanism guides governance.
- Bitcoin and all its data live on the blockchain.
- Bitcoin generates coins that act as proof of value resulting from the mining process.
- Bitcoin distributes bitcoin cryptocurrency to miners as a mining reward.
Under this definition, many cryptocurrencies can be considered rudimentary versions of dApps, even without smart contract functionality and web interfaces. A blockchain itself can be classified as a dApp. Blockchains can host dApps that have their own blockchains, like Bitcoin. Or, dApps that are not blockchain-based can be built on top of an existing blockchain, which is the case with many of the dApps that run on Ethereum.
The Future of Decentralized Apps
Although Bitcoin can arguably be called the first dApp, Ethereum has since become the primary growth driver of the dApp ecosystem. This is largely because of its smart contracts, network effect, and user base. As the decentralized finance (DeFi) market expands its use cases and adoption, dApps present an essential on-ramp to new audiences by deploying user interfaces that emulate conventional web applications while accessing the new capabilities of blockchain. In doing so, dApps are in many ways expanding the functionality of the internet through blockchain.
Regardless of the underlying blockchain in use, interest in dApps is growing fast — and the movement has only just begun. As blockchain continues to develop at a rapid pace, it’s probable that finance, gaming, online markets, and social media will all become blockchain-based dApps.