Advantages of developing DApp in a blockchain system

Zero downtime. Once a smart contract is deployed on the blockchain, the network as a whole will always be able to serve customers who want to interact with the contract. Consequently, attackers will not be able to launch denial-of-service attacks targeting individual decentralized applications.

Privacy. You don’t have to provide your real personal information to use or interact with the dapp.

Resistance to censorship. Absolutely no one on the network can block users from sending transactions, writing decentralized applications or reading data from the blockchain.

Ensuring data integrity. The data stored in the blockchain is immutable and indisputable thanks to cryptographic primitives. Attackers cannot tamper with transactions or other data that has already been published.

Trust-free computation and verifiable behavior. Smart contracts can be analyzed and are guaranteed to execute in a predictable way without the need to trust a central authority. This is not the case in traditional models: with online banking, for example, we must trust, for lack of choice, that financial institutions will not misuse our financial data, alter records, or hack into our accounts.

Disadvantages of DApp development

Maintenance. It can be difficult to support and maintain decentralized applications because code and data published on the blockchain is more difficult to change. It is difficult for developers to update their decentralized applications (or the underlying data stored in the decentralized application) once they are deployed, even if bugs or security threats are found in the old version.

Performance overhead. The performance overhead is huge, and scaling is really difficult. To achieve the level of security, integrity, transparency and reliability that Ethereum strives for, every node runs and stores every transaction. In addition, proving performance also takes time. By rough estimation, the overhead estimate is about 1,000,000 times higher than the standard computation currently performed.

Network congestion. When a single decentralized application uses too many computing resources, the entire network is backed up. Currently, the network can only handle about 10-15 transactions per second; if transactions are sent faster than the network can handle, the pool of unconfirmed transactions can quickly increase.

User-friendliness. It can be harder to achieve user-friendliness because it can be too difficult for the average user to set up the stack of tools needed to truly interact with the blockchain in a secure manner.

Centralization. User- and developer-friendly solutions built around Ethereum’s base layer may be similar to centralized services anyway. For example, such services can store keys or other important information on the server side, maintain an interface using a centralized server, or run important business logic on a centralized server before writing to the blockchain. Centralization negates many, if not all, of the advantages of blockchain over the traditional model.