Decentralized apps, or Dapps, are web/mobile applications that run on a blockchain network. They differ from traditional web/mobile applications hosted on a hosting service such as Heroku or Microsoft Azure. Both methods have their advantages and disadvantages.
Feature | Dapps | Apps |
Censorship | No | Yes |
Privacy | Yes | No |
Downtime | No | Yes |
Application updates | No | Yes |
Scalability | No | Yes |
Let's review the above features in detail.
It's easier to block centralized applications as they are hosted only on a few servers with static IP addresses. Government or institutions may block specific applications that need to block network traffic from a few servers to block these applications.
However, decentralized applications run on blockchains maintained by many nodes worldwide. These nodes constantly enter and exit the network. It makes it difficult to track and block all the IP addresses of the nodes hosting that blockchain.
Data stored on a blockchain is more secure as only authorized users can access that data. The data can't be used for any other purposes by unauthorized users. In centralized applications, the data is stored on a company's server. They have complete control of the data and can use it however they like.
Centralized applications are hosted on the company's servers; if the servers go down, the application will stop working. However, Decentralized applications are hosted on the blockchain. There're thousands of nodes maintaining the network which can process our requests. Dapp will only go down if all the nodes that are maintaining the blockchain stop working.
Centralized applications are controlled and hosted by a central authority. Thus, it is easy for them to change or update their software. However, Decentralized apps are deployed on the blockchain as a smart contract and stored in a block. The data stored in a block is immutable. Thus, it is impossible to make changes to the already deployed contract.
If the application becomes popular and the number of users increases, we need more servers to increase the throughput(requests processed per second). We can do this in centralized applications by adding more servers to host the application.
However, increasing the throughput in decentralized applications is problematic because any single entity doesn't control blockchains. Moreover, adding more nodes to the network won't increase the throughput because of some blockchain protocols, which virtually make it impossible to increase the throughput beyond a specific limit.
Both Decentralized applications and centralized applications have their pros and cons, which we can look into before deciding on choosing either one of them. For example, suppose we want more control over our application and expect the application to have a large target audience. In that case, it is a good idea to go for a centralized application. Otherwise, we should go for a decentralized application.