What are Decentralized Apps (dApps)?
Decentralized Apps or dApps often surface in topics around smart contracts. Let's find more about it in this post
Almost all of us use web applications on a daily basis. It can be your favourite website, social media app, shopping portal or anything that you can access over internet, using a device of your choice.
Typically web applications work based on a client-server architecture.
The client layer is any device that you use to access a web application. Common ones are smartphones, tablets and desktops - but it can encompass a broad range of devices, including voice assistants for example.
User interface or UI layer is what you use to access the web application. It can be a website that opens on your browser or an app on your device.
Server or Backend layer is the core of any web application. Functional logic of the application and the data are managed by this layer.
In majority of cases, the Server or Backend layer is owned by a central authority.
Let’s take Gmail as an example.
Google owns the server where your mails reside. So the centralized authority, Google in this case, has control over your data and subsequently your access to it. There are scenarios where legitimate users were blocked out of their Google account due to false positives from algorithms.
In short, when you entrust a central authority to manage your data and the access to it - there is a risk of being locked out. Also your privacy is at the mercy of such central authority.
Decentralized Apps (or dApps) offer one possible solution to this problem.
What is a Decentralized App (dApp) then?
Decentralized Apps or dApp or dApps are application that reside and run on blockchain network of computers, instead of a single system by a central authority
From our earlier discussion on web applications, what essentially changes in dApps is the server or backend layer.
Instead of the server residing in a set of computers owned by a central authority, it is distributed in a blockchain and reside in multiple computers that are part of the blockchain.
It is important to note that - both data and application code - reside on the blockchain. Application code executes on the blockchain to server the requests from the client.
As you can imagine, the application code is implemented using smart contracts. These smart contracts can expose APIs that can be invoked from the client layer using corresponding software libraries.
Some potential benefits of using dApps are:
Increased privacy because the data is encrypted and accessed with explicit authorization by the data owner
Lack of censorship on data and the owner has complete control over its usage (this is subjective and depends on how the blockchain is implemented)
Development of smart contracts is independent of any business motives by a central authority
However, it comes with its own set of drawbacks:
Scaling is complex as the application code is vastly distributed across the blockchain network
Upgrading or making changes to application code is complex and has to be carefully coordinated across the network
In summary, decentralized apps or dApps offer an alternative paradigm where applications can be distributed and managed without any interference from a central authority. It has its own drawbacks too and the centralization can creep in depending on how the blockchain is implemented.
Hope you can talk about dApps in your next chit-chat with co-workers! Until next time - stay curious, stay hungry and stay foolish…