Dapp has been a buzz word for quite some time now, however, its definition remained somehow vague and relative.
A dapp’s decentralized nature is the main factor that differs it from an app we've been using on mobile and online platforms. It has emerged with the evolution of the blockchain and decentralized systems and has seen substantial growth in popularity and applications within the last year.
However, the concept of decentralization can cover various aspects, therefore it can get confusing as to what part of an app’s structure has to be decentralized for it to acquire such denomination.
Many sources discussing dapps cite the definition by David Johnston et al. from 2015. According to them, dapps must comply with the following criteria:
1. Decentralized operation: open-source code, autonomous operation, consensus of users
2. Decentralized storage: storage on a blockchain, cryptographically sealed data
3. Cryptographic currency: use of tokens for access and value contribution within a dapp
4. Token generation: tokens as a proof of value, generated through a cryptographic algorithm
Throughout the evolution of the decentralized web, these four conditions have loosened significantly, and today, an application can adhere to only a few of them and still be considered a dapp.
The most important features that define a decentralized app are decentralized service and decentralized data storage/database it communicates with.
Both a dapp and a centralized app employ a similar communicating protocol. However, the way their UI connects to their services and storage/database is quite different.
Decentralized applications connect to a dispersed, P2P network, contrary to centralized apps. Rather than the communication going from A to B in apps (from UI to a centralized server), dapps communicate through a network of independent service nodes aligned by a consensus mechanism.
Similarly, the database or data storage is different in a dapp and an app. A decentralized app leverages a decentralized system of data storage. While for most dapps, the blockchain is the prevalent decentralized system, it is, however, not exclusive - dapps can also employ distributed systems like HashGraph. The majority of dapps today run on the Ethereum blockchain, followed by EOS, NEO, Tron, and other decentralized systems.
Aligned with dapp and tech evolution, the definition of a dapp is no longer set in stone, and today, dapps come in many versions and use various decentralized mechanisms. For example, a dapp could run on a decentralized network of nodes but would connect to a predominantly centralized database, and it could still be defined as a dapp.
What’s more, even though many of the launched dapps today do integrate cryptographically generated tokens (aligned with the criteria mentioned above), these actually do not determine its decentralized nature, but rather serve as a means for operation in such dapp.
To sum up, the decentralized character of an application is determined by two main factors:
decentralized type of its data storage/database,
decentralized way of its communication with it.
Within just a few years of evolution in this extremely niche but increasingly important segment of the decentralized web, dapps have seen substantial growth in production and adoption thanks to their decentralized way of operation and data storage that addresses the demands of the ever more informed user base.
However, while it’s important to follow the evolution of dapps closely, it’s also imperative to address some still existing blockers in the adoption process (primarily related to issues with dapp development) and thus further alleviate and promote the integration of dapps in businesses, organizations, and projects.
A guest post by 0xcert.