What are Decentralized Applications (DApps)
As the blockchain revolution keeps raving, more developers and companies seek ways to learn about it and possibly adopt it for their next project. This article does not introduce the reader to blockchain and its workings. Instead, this article seeks to be more practical — teaching the reader about Decentralized Applications (DApps) and why they are useful and more practical.
Understanding DApps
To clearly understand what DApps are, we need to know the concept of decentralization first. A centralized body runs All web applications in the Web2 ecosystem, even though they are open source. Because an individual, a group, or an organization owns those applications.
DApps are web applications whose backend runs on a decentralized peer-to-peer (P2P) network with an open-source code. DApps have different data structures based on the functionality they were created for.
Centralized applications have been around for a long time, but they have their downsides. Some of these include:
- They lack transparency.
- They have a single point of failure.
- They encourage censorship.
Given these downsides, the emergence of decentralized technology like blockchain became imminent. This technology is the root of decentralized applications (DApps). It may be worth mentioning that DApps (decentralized applications) and distributed applications are related concepts, but they are not the same. Let’s compare both:
Decentralized Applications (DApps):
- DApps are applications that run on a decentralized network, typically a blockchain.
- They are not controlled by any single entity; their backend code runs on a decentralized peer-to-peer network.
- DApps often use smart contracts to run their logic, which allows for trustless interactions between parties.
- The governance and operations of a DApp are distributed among its users, and changes to the application often require consensus (or at least a significant majority) among stakeholders.
- Examples include applications built on Ethereum, where the application leverages the blockchain for its operations.
Distributed Applications:
- Distributed applications may run on a decentralized network, but they can also run on a centralized network with multiple nodes.
- The primary goal of distributed applications is to ensure that the application can scale and remain resilient by distributing workloads across multiple computing resources.
- They are not necessarily built on a blockchain or a peer-to-peer network, and they may still rely on some form of central control or authority.
- The nodes of a distributed application may be owned and operated by a single entity or multiple cooperating entities.
In summary, while all DApps are inherently distributed because they run across multiple nodes in a decentralized manner, not all distributed applications are decentralized. Distributed applications can be centralized or decentralized, and their primary feature is the distribution of computational resources and tasks across multiple systems for efficiency and redundancy, whereas DApps emphasize a lack of central authority and often involve blockchain technology.
Advantages of DApps
DApps are advantageous in the following ways:
- They have no single point of failure, hence are fault-tolerant by nature.
- They are transparent; hence they are easy to trust.
- The government, or any regulatory body, has no right or ability to remove content on the blockchain.
Disadvantages of DApps
DApps, like every other system, have disadvantages, and these are as follows:
- DApps are difficult to scale as every peer in the network must update their node software. They have to be built to scale right from scratch.
- The absence of identity verification policies, such as KYC, is an issue due to the absence of centralized authority.
- They have complex architecture due to their reliance on consensus mechanisms.
- DApps may rely on each other or centralized applications.
Popular DApps
Below is a list of popular DApps:
PancakeSwap
PancakeSwap is the most popular DApp in the Web3 world, built on the Binance Smart Chain (BSC). It charges lower transaction fees, especially because it is built on BSC. This makes it the most used DApp among its counterparts.
Uniswap
Uniswap tops decentralized exchanges (DEXs) on Ethereum, with more users than others. Its ecosystem has over 300 applications, paving the way for upcoming DEXs.
Aave Protocol
Aave protocol is the most diverse lending pool in the Ethereum ecosystem. It is an open-source and unique, non-custodial liquidity protocol.
Building a DApp
DApps can be software applications or websites built on a decentralized network like Ethereum. Smart contracts are the backend code for DApps. Thus, a DApp comprises a front-end integrated with a smart contract backend.
While the main language for building front-ends of DApps is JavaScript, we can write smart contracts with any choice language from general-purpose languages like Go, Rust, and Haskell or contract-purpose languages like Solidity, Vyper, and Serpent.
MacBobby Chibuzor is a Robotics Hardware Engineer and a Tech Polyglot. He also has practical experience in Software Engineering and Machine Learning, with an interest in embedded systems and Blockchain technology. In addition, Mac loves to spend his free time in technical writing.