Skip to main content

Why applications are moving to decentralized network ?

Decentralized Network
Fig 1. Decentralized Network

Recently, I started studying blockchain in order to get certified from blockchain-council. I am in the middle of my training and have started looking into some real-world applications of blockchain. Some problems the applications are trying to solve are decentralized storage, decentralized voting/consensus, decentralized money and many more. The ultimate goal is to take whatever we have built so far and put it over a decentralized network. To achieve this developers are building  custom applications on top of bitcoin blockchain.

When I thought about this goal, I couldn't help but think that is this not a waste of time. We spent last 30 years to build the centralized applications and now people are building something from the scratch to put the centralized applications over a decentralized network. Are people doing it just for fun or just because they can so they are. I will share what have I learnt from my 20 days of training, blogs, articles and whitepapers in a series of blog posts.

File Storage Service Example

We will go through an example step by step to see how we have tried to solve a problem in the past 30 years. 

The problem of storing files over the network can be solved via multiple ways. One we already know is to store the files in some centralized server which is governed by a single organization. Google drive, Dropbox, OneDrive are such applications which store the files this way. These applications have been through years of testing and development and thus prove to be trustworthy. 

Data Privacy Problem

But if you go through the Terms and Conditions of these applications/services, you will find out that the trust is somewhat partial. These services offer to protect your data from other individuals but not the service itself. The service can use your data in any way it wants, or shall i say the organization which owns the service can use your data in any way it wants. 

Closed Source Problem

This poses another problem and the solution to this problem is that we pay for these services. As most of the companies drive their revenues with targeted advertisements, they need more user data to improve their advertisements' targeting. But if you are willing to pay for a service then they don't need to generate revenue from advertisements. So paid services often "promise" to not use/read your data. There is catch though. Even after you pay for the service, you will have to trust the organization that they are not reading your files. So here again the trust is partial because you can't go and look if the service is keeping its promise or not.

Data Encryption Problem

Now we have another problem at hand and the solution to it is to use a middleware application which can encrypt our data before sending it to a central server. There are several applications which encrypt your files before storing on google drive or other storage services. One of them is Cryptomator. We can use such applications even without paying for the services. So far so good, we have stored encrypted files over a centralized server which is owned/governed by a single organization. Everyone starts using these middleware applications and the organization cannot read the files for advertisements. Now the organization decides to provoke access to these third party applications by stating that these are a threat to the organization. All of a sudden our data isn't there anymore and we are left empty-handed. 

What did we learn ?

The problem here is that the control of the service lies with a single organization whose primary goal is to make money (whose isn't it). So no matter what we do, we can end up losing our data, our privacy, our identity to an organization. Here comes the idea of decentralized applications.

Decentralized applications operate over a decentralized network which is not owned by a single organization but in fact is built by its users. Each individual in the network is responsible to keep the network healthy and secure. A single organization cannot decide the rules of the network. This makes it feasible for all new applications to make a presence without being worried about organizations' changing rules OR monopoly on market prices. In upcoming posts, I will write about technologies which are making decentralization feasible.

References

 

Comments

Popular posts from this blog

Kafka consumers

  Today i watched one video on kafka consumers presented by Igor Buzatoic at kafka summit. He demonstrated the working of kafka consumers, group re-balancing and multi-threading environment. The complete video should become available on youtube soon. So the presentation was divided basically in 2 sections - Single threaded mechanism - Multi threaded mechanism Single Thread The idea here is that a single thread is responsible to poll the records from kafka and do the processing of those records. Now here the offset commit step can either be executed manually after the processing is done or periodically if we are sure than our delay in processing is less than commit interval. Usually people go with manual commit only as this ensures that we are committing what we have already processed. Now this is simple architecture and doesn't require any synchronization. Multi Thread In multi threaded environment, there are 2 possibilities - Single thread responsible for polling the records, proc...

Decentralized Applications

DApp: Decentralized Application In the previous post, I discussed why people should move to decentralized applications. In this post, it would be better to understand what a decentralized application is and what is the backbone of all major DApps in the market. To understand a decentralized application, you will have to understand the decentralized network. In a decentralized network, there is no single entity governing the operations of the network. All machines/nodes participating in the network are equally responsible for the state and security of the network. In the above diagram, as you can see, nodes A, B and C are the ones keeping the network running. Those nodes are running the application and no single node can modify the behavior of the application for the connected clients. This means that even when node A stops working and its connected clients connect to node B or node C, they don't notice a difference. When we talk about decentralized network, then we implicitly mean ...