Decentralized platforms such as Ethereum and EOS allow developers to build Dapp (‘decentralized app’) without any possibility of downtime, censorship, fraud or third-party interference.

But the problem is developers think that Decentralization is achieved by simply using the tech stack offered by the ecosystem for their application logic(smart contracts), storage and deployment.

Let’s examine the anatomy of a Dapp with similar concepts of any traditional software/application/service. A Dapp consists of two parts: a front-end, and a back-end which is divided into smaller components:

Decentralized Infrastructure

1. Data store

Since data is stored on the blockchain, by design all application states changes are replicated to participating nodes therefore no single point of failure.

2. Distributed storage

Swarm and IPFS allow Dapps store of-chain metadata in a distributed manner.

3. P2P utility protocols

Dapps can utilize additional protocols such as Whisper to communicate with other Dapps. These kind of protocols run in a peer-to-peer fashion.

4. Application logic

In the Dapp world application logic is defined by writing smart contracts using a programming language such as Solidity(in Ethereum). These smart contracts enforce the business logic and constraints.

This layer is where developers write code and make mistakes by introducing and granting privileges which in tern weakens the concept of Decentralization.

Centralization

In truly Decentralized Applications, permissions and capabilities are equally granted to all the users. An application which implements an authorization mechanism within smart contracts is usually a candidate for a CApp(Centralized App). For example, an escrow smart contract could be written in a way that it grants ‘cancellation’ privileges to the smart contract creator(Admin rights). With this design, the creator can cancel any escrow deposit whenever they want to just like a classic website where admin has full access over the site. Remember this pattern? A centralized app!

Follow me on twitter: https://twitter.com/hossmobin