We all are familiar with the term “Application,” which means a software program. All software applications are designed to perform a certain task and serve a specific goal. Our everyday chores are completed with the help of several software applications. It would not be wrong to say that we are surrounded by hundreds of software programs. Our mobile phones are filled with hundreds of software applications. Most of these applications we are familiar with follow a centralized server-client model. Some of them are distributed, and only a few are decentralized applications.
Currently, the majority of software applications are developed on the model of centralized systems. Each system is composed of multiple individual units. The centralized applications control all these individual units, and the operations form a single point known as the center. The center gives commands and sends information to all the individual units. Almost all the mainstream services we use on the internet are examples of centralized system models like Amazon, Google, Facebook, etc. The other type of software application is distributed and decentralized applications.
Difference between Distributed and Decentralized Applications
In distributed applications, the one point does not control all the other units, but it is spread across multiple units. And in decentralized applications, each node is independent, and no node commands any other node on what to do. Google has somewhat adopted this model to increase its computing and data latency speed. But we already discussed earlier that Google is based on a centralized system, which means that a system can be both distributed and centralized.
Decentralized applications run of Blockchain or peer-to-peer network of computers rather than depending on just one computer. And because of that reason, the consumers of Decentralized applications have more control over their data than the consumers of other applications. No unit manages or controls the data of any other units. They are free from interference and dictation of a single authority. They are also known as dApps. Mainly these apps are developed on the Ethereum platform. These apps have several uses in finance, social media and gaming.
A Brief Description of Decentralized Applications
Take an example of any application you are familiar with, like Instagram or Uber. An organization has ownership of these software programs and is responsible for operating these applications. This means that this organization has complete authority over these applications and their operations. The applications might have billions of consumers upfront, but just a single entity controls the backend. Dapps are only capable of running on P2P networks or blockchains. You can take examples of Tor, BitTorrent and Popcorn times, where countless consumers are using the content of applications.
When we think of a Blockchain network, cryptocurrencies come to our minds. Like cryptocurrencies, Decentralized applications run in a decentralized environment, open-source Blockchain networks in public. Both are independent, and no entity has any control over them.
You can further understand the concept of Decentralized applications by taking an example of the Facebook application. Imagine that Facebook is a decentralized application and is present on a Blockchain. Now, if you post anything on Facebook, then after posting, no one, not even Mark Zuckerberg, can take your post off or delete it except you.
Ethereum Decentralized Applications
These Decentralized applications are powered and created on an Ethereum platform. Ethereum dapps use smart contracts for their functions. They are located on the Ethereum network and use this platform’s Blockchain technology to store the data.
History of Decentralized Applications
In the early days, the web was not as useful for us, with plenty of applications and services meant to solve our everyday problems and help us with anything imagine able. It was very decentralized in the beginning. Every data under the sun is connected through a computing device with an internet connection and HTTP protocol. The HTTP protocol works in a way that it has a group of reliable servers that convert the web address you enter into a server address. Moreover, HTTP protocol would add another layer of security to the data you entered. People had their personal servers and had complete control and authority over their data. But with time, the centralized model of data possession, which is still in implementation today, was born. But the question is that why did it happen?
The most straightforward answer to this question is that a centralized model is easy to develop and program. It is human nature to go for the easiest option, and in this case, it also worked, so everyone kind of went for it. Soon, companies began to develop their software programs and started to profit from the users of those applications while maintaining complete authority on the server of that application. The early examples of Decentralized applications are Yahoo and MySpace etc.
With the advancements in the HTTP web, a new protocol named BitTorrent was introduced by developer Bram Cohen. The reason for the development of this program is to reduce the time required to download big media files through HTTP protocols. It made use of peer-to-peer networks that were present at that time, like Napster, Grokster and Gnutella. The BitTorrent protocol successfully downloaded huge media files that otherwise would take a very long time because, with the evolution of the web, the size of files available also increased. At the same time, hard-drive space also increased, and more and more people started to use the web. With the help of BitTorrent, this problem was solved, and the people who were downloading the file started also to upload it.
A single file became available at multiple sources for downloading. More people would download the file and ultimately upload it if the file was more popular. That means a single person is pulling from multiple sources. The more sources the file is available at, the more would be its downloading speed.
Working of Decentralized Applications
Decentralized applications are based on Ethereum and run on blockchains for the purpose of directly connecting its customers. Blockchain technology is used to assemble a distributed system. In a distributed system, each entity can access the records. Because the decentralized applications are based on a Blockchain network, the customers of these applications are under the authority of any third entity, which means that they are free to use the application in whichever way they want.
It is contrary to the centralized applications, where data to the consumers have to go through a third entity. For example, Facebook can delete the post of any of its users if it is not according to their terms and policies, and Uber can cancel your ride without your permission. Dapps will put their customers in control, meaning that it is impossible that any other party can interfere with their data.
It is hard to define Dapps because they are a relatively new idea completely. However, some primary features of Decentralized applications are given below
- Decentralized
As you must have gathered from this article, these applications are decentralized in nature, so they do not have any central authority which can tell their users that what they can or cannot do.
- Blockchains
The question is that if Decentralized applications do not have any center unit to control them, then what is holding these applications together. Decentralized applications run on Blockchain technology, making them free from any central entity’s control.
- Open Source
The programming code of Decentralized applications is open for anyone to look at. That is in contradiction with the most application that we use in our daily lives. However, despite the code being public, no one can make any alterations to it.
- Global
As we learned earlier, the software code of Decentralized applications is open and public. That is because anyone can examine that code and learn from it.
- Smart contracts
Decentralized applications are innovative because they can automatically carry out specific commands. The reason for that is they use Ethereum Smart Contracts.
- No Central Point of Failure
Decentralized applications cannot be put down because there is no server. Data in dapps is distributed across all its units, making them impossible to shut down. Because each node is independent of other nodes, if one node fails, other nodes are still able to function on the network. There are various decentralized database systems on which this kind of application can be built, like BitTorrent, Interplanetary File System and independent DHTs.
Usage of Decentralized Applications
Dapps can be divided into three primary types, according to the Ethereum White Paper published by Ethereum creator Vitalik Buterin in the year 2013.
- Financial Applications
- Semi-financial Applications
- Other Applications
Financial Decentralized Applications
As the name suggests, in this application, money is involved in one way or another.
In the financial sector, the idea of Decentralized applications is used to reduce the complexity of specific financial applications like insurance, wills and lending.
Semi-Financial Applications
Semi-financial applications have the involvement of money, but other things are also required, like data from outside of Ethereum Blockchain.
According to “Buterin,” these applications mix money with “a heavy non-monetary side.”
Buterin also gives the example of the creators of Ethereum, which will provide rewards that can be unlocked if anyone completes a specified task. In Hollywood, such kinds of rewards are given to someone who catches a criminal or wanted person. But fear not, these applications will not ask you to do such challenging jobs. Instead, the more they can ask for is solving a complicated mathematical problem.
Other Decentralized Applications
Ethereum is an excellent platform for developing Decentralized applications, so the hopeful developers of dapps are working on making some applications that are not used for financial purposes.
Take an example of a social networking site that is free from censorship of any entity. The networking site that we are aware of can censor our posts, e.g. Twitter can delete our posts if it does not comply with its terms and policies. And plenty of people does not agree with these sites’ standards about the content they consider “downranked” or censored.
So, if you publish or post something on the Decentralized applications “Peepeth,” no one can delete it, not even the person who developed that application. It will stay on the Blockchain forever.
It is also noted that if the Bitcoin based Decentralized applications are that successful in the financial market, can they also succeed in the same kind of organizations and companies?
Decentralized Autonomous Organizations (DAOs) hope that the answer to the above given question is Yes. They are also taking steps in that regard by attempting to make a leaderless company. Further details about that company like the programming rules, company funding policies, number of members and voting process are still under consideration.
Advantages of Decentralized Applications
Among many advantages of Decentralized applications, the main advantage is its ability to protect the privacy of its customers. The centralized applications require the complete information of its customers, like name, age, email address, etc., to provide them with their services. But the Decentralized applications do not require any personal information of their users to provide them with their functionalities. With the use of “smart contracts,” Decentralized applications allow their customers to stay anonymous and complete their transactions without depending on any third party. The term “smart contracts” was introduced in 1996 by a scientist named Nick Szabo at the University of Washington.
Some hopeful advocates of Decentralized applications believe that Dapps can be the alternative to our regular social media applications. If that were to happen, then the users of social media platform which runs on the Blockchain will be able to post anything, and no none can delete or block their messages. The concept of censorship does not apply to dapps.
The majority of dapps are created on the Ethereum network because it is flexible enough to develop new Decentralized applications. It provides application developers with the proper foundation to find more creative customers for dapps. That would result in the evolution of Decentralized applications in several industries like banking, social media, finance, gaming, online shopping, etc.
Disadvantages of Decentralized Applications
The concept of Decentralized applications is still new, and these applications are still in their experimental stage. For this reason, they are subjected to various unknown problems. The application developers are still not sure that these applications are reliable for performing sensitive tasks. Another cause for their concern is that these applications require a lot of computations, which can overburden the network, resulting in overcrowding.
Another difficulty for creators of Decentralized applications is making a user-friendly interface. The majority of applications based on a centralized model have a user-friendly interface, making them easy to use for the customers. Application users are tempted to use such applications which have an easy-to-use interface. Decentralized applications are still on their way to creating an end-user experience and that specific level of execution that centralized applications have already acquired.
Once a Decentralized application is deployed, it is compulsory to keep doing code modifications and constant updates. That is a massive challenge for software programmers because these enhancements are essential for removing any security risks and errors in the applications. But the problem with Decentralized applications is that they are open-sourced, and their code is published on the Blockchain, which makes them hard to modify for making necessary updates. Moreover, the applications which update themselves constantly are most likely to gain the trust of their customers.
Examples of Decentralized Applications
Some famous examples of Decentralized Applications are as follows
- OpenBazaar
While eBay is a centralized application, OpenBazaar claims to be the decentralized version. There is no central entity on OpenBazaar that can command the users about what they can and can’t buy. Also, no one has the authority to take any fee for using the service.
- PopcornTime
PopcornTime plays online videos for its users by using the BitTorrent protocol. It is like Netflix for Torrent, with obviously Netflix being a centralized app and Torrent being Decentralized. No one can shut down PopcornTime despite its numerous contradiction to copy-right policies. According to research conducted, PopcornTime has users from all around the world.
- FireChat
FireChat was developed in 2014 in Hong Kong. It was created to oppose China’s “Great Firewall,” infamous for blocking any IP address it wants. The protesters were afraid that the government would try to block all networking sites with HTTP protocol. So, they invented FireChat, an application that can directly connect their phones without any central point.
Future of Decentralized Applications
Ethereum has become the primary growth factor of the Decentralized applications ecosystem. The main reason for this is its network effect, smart contracts and user base. Decentralized applications are expanding the features of the internet through Blockchain; for example, in the finance market, the uses and adaptability of dapps are rapidly increasing because it provides a user interface that enhances traditional web applications by making use of new capabilities of Blockchain.
Whether Blockchain technology is underlying Decentralized applications, either Bitcoin or Ethereum, people are getting increasingly interested in apps, which is just a start. With the speed that it is spreading, we can safely say that soon gaming, online markets, finance and all social media will become Blockchain based Decentralized Applications.