What is a dApp?
A decentralized application (dApp) is a type of distributed open source software application that runs on a peer-to-peer (P2P) blockchain network rather than on a single computer. DApps are visibly similar to other software applications that are supported on a website or mobile device but are P2P supported.
The decentralized nature of dApps means that once a developer has released a dApp's codebase, others can build on top of it. The app is free from the control of a single authority. A dApp is developed to create a variety of applications, including those for decentralized finance, web browsing, gaming and social media.
DApps are built on a decentralized network that is supported by a blockchain distributed ledger. The use of blockchain enables a dApp to process data through distributed networks and to execute transactions. dApps are also often built using the Ethereum platform.
Distributed ledger technologies like the Ethereum blockchain have helped popularize dApps. The major advantages of dApps are that they are always accessible and do not have a single point of failure.
How does a dApp work?
Decentralized apps have the following three common characteristics and key attributes:
- They are open source. All required changes are decided upon by a consensus of the majority of users. This requires the codebase to be available to all users for evaluation.
- They provide decentralized storage. Data is stored on decentralized blocks.
- They offer cryptographic Decentralized blocks of data are validated and proven true.
DApps are both stored and executed on a blockchain system -- commonly using Ethereum. The app is validated with the use of cryptographic tokens, which are needed to access the application.
DApps are similar to conventional apps, as they use the same front-end code to render a web page. But dApp's back-end code is different, as it runs on a decentralized P2P network. This is what makes dApps free from the control of a single authority.
While a traditional application is supported by centralized servers and database, a dApp is supported by a smart contract that is stored on a blockchain. Ethereum is the most popular blockchain for running smart contracts. Smart contracts enforce rules defined in the code and mediate transactions. Since a smart contract consists of the back-end only and is often just a small part of the whole dApp, creating a decentralized app on a smart contract system requires combining several smart contracts and employing third-party systems for the front-end.
The blockchain that a smart contract runs on is a ledger of data records that is stored in blocks -- as opposed to being stored in a central location. The blocks of data remain dispersed across distributed locations. All of the blocks of data are linked and ruled by cryptographic validation.
Not all dApps work on standard web browsers. Some may work only on websites with customized code to open that specific application.
Benefits of decentralized applications
Decentralized applications provide the following benefits:
- Fault tolerance. If a single node in the network is still working, a decentralized network can stay available, although performance may be severely downgraded. Because there is no centralized network, a hacker would not likely be able to attack enough network of nodes to take down a dApp.
- Data integrity. Data stored on a blockchain is immutable and secure because blockchain consensus algorithms ensure data stored in the blockchain is resistant to change.
- Flexible platform. The Ethereum blockchain is flexible enough to enable the quick development of dApps for different industries.
- User privacy. Users do not need to submit their personal information to dApps to use any app-specific functionality.
Drawbacks of decentralized applications
Decentralized applications also have the following weaknesses:
- Maintenance. DApps are difficult to maintain, debug and update, as all fixes require the consensus of all the peers in the blockchain-based network.
- Hard to scale. Decentralized networks are harder to scale than centralized networks.
- Network congestion. If a dApp uses too many resources, it will back up the whole network.
- User experience. Because dApps do not function the same as centralized apps, it may be more difficult for developers to create a user-friendly experience for end users. Users need a public and private key to log in versus a username and password.
What are examples of dApps?
Although there are thousands of dApps being used and developed, three examples of dApps include Chainlink, TraceDonate and Minds.
- Chainlink is middleware software that provides tamper-proof inputs, outputs and computations for Oracle networks. Google is testing it for a BigQuery PaaS data warehouse.
- TraceDonate is a service that connects charities and donors to beneficiaries with the goal of building trust that donations given reach those in need. Funds are kept in a digital wallet and enable the donor to track how the donation is spent.
- Minds is a dApp-based social media platform that runs on open source code and can encrypt all personal data sent by its users.
Learn how dApps work and their common attributes, as well as how they are influencing IoT.