What are Decentralized Applications?
Tags: webdev, programming, career, web3
Published: 2022-06-05 19:53:26

I really felt like breaking down the idea behind how decentralized applications work because I felt it would help a lot of people. You might be starting out as a Web 3.0 developer and might have even built a few things in the Web 3.0 space, but do you really understand how these decentralized applications that you have developed work behind-the-scenes? Probably not right. If you are feeling it's a yes, I would still advise that you stick to this article to the very end because you never know what you might learn.

I know, at this point, some readers might be feeling lost in these words, probably because they are not even in the Web 3.0 space yet, or they may be planning to after reading this. Well, allow me the liberty of starting from the very beginning for you all. If you feel you already know enough, you might decide to scroll down to where it gets interesting. With that stated, let's move along.

##What is Decentralization?
In blockchain, decentralization refers to the transfer of supervision, control, and decision-making away from a centralized association (individual, group, or company) to a dispersed network.

If you are new to Blockchain technology or Web 3.0, check out my article on [Breaking into Web 3.0](https://dev.to/abubakardev/the-roadmap-breaking-into-web-30-el3).

Following along, decentralization is essentially the core of the blockchain's existence, and that is why it has grown so much since its creation. For example, having a platform that is completely fraud-free and is safe to use for everyone as long as your personal credentials are secure. This kind of safe platform is what drives the integration of blockchain technology into our daily use of the internet, like finance and gaming, among others. And trust me, who doesn't like to feel a little more secure when it comes to financial transactions, right? Because of these protection benefits, every big company wants to have blockchain integrated into their systems in one way or another. You, as an end-user, also want that kind of integration because you want a platform that offers you more safety in whatever it is you do on the internet. For the benefit of both the companies and the end-users, blockchain is being integrated into applications, and this is what we refer to as a "decentralized application," or dApp, for short.

##What is a Decentralized Application?
According to [Investopedia](https://www.investopedia.com/), a decentralized application (dApp) is a digital application or program that exists and runs on a blockchain or peer-to-peer (P2P) network of computers instead of a single computer. A DApp (also called "dapp") is outside the purview and control of a single authority. DApps (Decentralized Applications), which are often built on the Ethereum platform, can be developed for a variety of purposes, including gaming, finance, and social media.

Standard web applications such as Facebook and Twitter run on computer systems owned and operated by an organization, giving them full authority over the app and its behavior. A site can have multiple users but the backend is controlled by a single organization. This type of application is not decentralized.

To avoid a disclaimer, let me clarify to you that all applications with blockchain technology integrated into them can be referred to as a decentralized application, but not all decentralized applications run on a blockchain network. Feeling confused right now? Let me clear that up for you. Decentralized applications do not necessarily need to run on top of a blockchain network. Tor, Popcorn Time, and BitMessage are examples of decentralized applications that run on a P2P network but not on a blockchain, which is a special kind of P2P network. understood right? Good, let's move along.For the sake of clarity, the focus here is on decentralized applications that run on blockchain networks.

##Examples of decentralized applications
Lets consider some of these decentralized applications.

####Augur
Augur is a decentralized prediction market Platform for Ethereum and EVM compatible chains. Originally founded in 2014, with its version 1 release in 2018. Augur allows users to create prediction markets on different topics including sports, economics, and world events.

####OpenSea
It is the first and largest marketplace for Non-Fungible Tokens(NFTs) and Semi-Fungible Tokens(SFTs) built initially on Ethereum and later integrated with Polygon to reduce the cost of transaction fees users have to pay. Here, users can trade NFTs freely by opening their own marketplace.

####PancakeSwap
PancakeSwap is the most-popular dApp on the market by a large order of magnitude. It’s a fork of the original DEX, Uniswap, but since it’s built on the BNB blockchain, this means reduction in fees for traders. The lower fees are the main reason why PancakeSwap caught so much traction and features such a massive user base. Most newly-launched cryptocurrencies first start trading on PancakeSwap as anyone can list their token on the exchange, provide liquidity, and create a market.

####Splinterlands
Splinterlands is a collectible trading card game built on the Hive and WAX blockchains. The gameplay is comparative to traditional trading card games like Hearthstone. The main difference is that Splinterlands is blockchain-based, meaning in-game resources are tokenized and give full possession for players.

####Aragon
This Ethereum Blockchain-based platform can be used to create and run decentralized organizations. Aragon is an open-source project that is managed by the Aragon Foundation. The project's goal is to eliminate the need for human commerce by allowing individuals to run entire businesses and organizations using Ethereum Blockchain.

These are a few amongst thousands of dApps that are available on the internet today. These dApps are based on separate blockchain use cases like gaming, cryptocurrency, dAO, decentralized finance and exchanges, and more. There are many more dApps you should probably check out on your own. You can check [this](https://defillama.com/) out as well.

##Architecture of a decentralized application

###Decentralized Application Frontend
The frontend code, which is executed on the user side, looks like any other application. However, it contains a digital wallet which:

1. Contains a record of the user’s private and public keys for authentication

2. communicates with the blockchain in order to manage cryptographic keys and blockchain addresses

3. Triggers the backend (smart contracts) to be executed.

###Decentralized Application Backend
The backend code (smart contract) which runs on the server side of the application has the following characteristics:

1. It is stored and executed on a blockchain.

2. It is open source.

3. performs the same function regardless of the execution environment

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t0zc3cddvqlfhqfswtkz.png)

In the above image, take notice that the dApp is on an Ethereum blockchain, therefore, the smart contract will run on an Ethereum Virtual Machine, also called an EVM. Also, take note that there are other blockchains that are compatible with the EVM. For example, Binance Smart Chain, Avalanche, Polygon Chain, Fathom, Cardano, and Tron.

##Pros & Cons
Below are some of the benefits of using decentralized applications:

1. User Privacy: Users of decentralized applications do not have to submit personally identifiable information to use them.

2. Trustlessness: Smart contracts are used in decentralized applications to complete transactions between two anonymous parties without relying on a central authority or middleman.

3. Innovation: The blockchain provides a space for the development of new dApps, allowing developers to focus their efforts on finding new and innovative uses for digital applications.

Like with every other thing, there are a few disadvantages that come with decentralized applications:

1. Decentralized applications are still in their early stages, experimental and subject to a variety of issues and unknowns. 

2. The issue of a bad user interface is a thing. To persuade people to switch to dApps, developers will need to create an end-user experience and a level of performance that rivals that of well-known and established programs.

3. There is also the issue of making upgrades to existing applications. According to Ethereum, developers may find it difficult to make necessary updates to dApps because the data and code published to the blockchain are difficult to change.

With that stated, i guess the article will take a halt here. This might be beneficial to you in some ways and might also not be as useful as you hoped, but i want to believe that it has added to your knowledge of what Web 3.0 development is all about and that is the most important thing here. You most likely have an idea what decentralized applications are now. You might have noticed that I didn't include how you can build a dApp. Well, this is a simple breakdown article, make sure to always check back and most likely i have written an article on how to do that.

Don’t forget to share this article, you never know who might be interested in decentralized applications.

Follow me on [Twitter](https://twitter.com/abubakardev), [Instagram](https://www.instagram.com/abubakardev/) or [LinkedIn](https://www.linkedin.com/in/imam-abubakar-3b246a217/) to reach out. Have a lovely time. Thanks for Reading.

You can also subscribe to my YouTube channel [here](https://www.youtube.com/channel/UCier5h13oVNYEdI7_XXJIjw)