Decentralized applications (DApps) are the talk of the blockchain town nowadays and have attracted the interest of developers all over the world.
A DApp can be an application, a tool, or a program that works on a decentralized blockchain
The reason DApps are intriguing the development world is because they are unlike traditional applications.
DApps don’t need a middleman for connecting users and developers. They are connected directly for hosting and managing the code and user data. Unlike traditional apps, no permission is needed for building a DApp, and the rules of the platform cannot be changed by a centralized group of people.
Currently, there are 1000+ DApps built on Ethereum, which is the leading DApp platform.
Let’s try to understand in detail how traditional applications differ from DApps.
Difference Between Traditional Apps and DApps
Traditional web apps use two important elements to make a system usable: the front end and the back end. The communication between these elements occurs in the form of coding messages via HTTP protocol.
However, in contrast to DApps, multiple issues arise in traditional applications.
“A centralized architecture is used for hosting traditional application servers, which means that there is a single point of failure, in case of a malicious attack.”
This makes it quite easy for a hacker because all they need to do is interrupt with the hosting service. Relying on centralized servers leaves the data more susceptible to attacks, putting our privacy at risk.
In case of DApps also, two main elements are involved. However, in this case, the front end stays the same (with a few exceptions) as traditional apps, whereas the backend is a blockchain network consisting of hundreds and thousands of machines.
“It is practically impossible to bring down a DApp because it will require a hacker to take down all the distributed hosting nodes.”
Let’s understand this by taking the example of popular web applications such as Facebook, Twitter, and Instagram, which currently operate on a centralized server model. Their data is maintained by singular authorities, making it easier to be manipulated or changed, as needed.
For example, the Facebook-Cambridge Analytica data hijacking scandal, wherein, personal data of millions of Facebook users was used for political and commercial purposes.
Therefore, even though these applications have millions of front-end users, the backend is still controlled by a single organization.
On the contrary, a DApp works on a decentralized server model, which requires the participation of every element on the network for modifying or taking control of any information.
“DApps are distributed, flexible and transparent, and have the potential to transform the technological landscape.”
DApps are being hailed for their technology because they don’t give ownership to one central authority and hence can be used for connecting different people in marketplaces; sharing resources and storing them; maintaining cryptos; and executing smart contracts.
Features of DApps
DApps are popular and in demand because of three important features. Let’s find out what they are.
1. Open Source
By allowing all the network participants to keep track of the happenings rather than only one person, a DApp creates a new structure for business practices. They are governed through autonomy and any changes in the DApp are decided through consensus. The code base of a DApp should be available for review.
2. Decentralized Consensus
Before Bitcoin was introduced, a transaction’s validity was ensured by some kind of centralization. Making a payment required a transaction to be pushed ahead through a clearinghouse, which monitored it.
However, DApps work on a peer-to-peer (P2P) model, which means that the nodes are able to connect directly with each other.
In a DApp, a transaction is processed through a consensus mechanism and requires the approval of the majority of the nodes for getting processed. For this process, the validators of the network are rewarded in the form of cryptographic tokens.
3. No Central Authority
Now because DApps are decentralized, they don’t depend on a single server, and therefore, there is no central point of failure. The data stored in DApps is allowed to be decentralized across all its nodes, which are independent of each other.
In case one node fails, it doesn’t affect the other nodes and they run on the network accordingly. There are different types of decentralized database systems, such as Interplanetary File System (IPFS), BitTorrent, and independent DHTs, which can be used to create DApps with this feature.
Classification of DApps
According to the Ethereum white paper, DApps can be classified into three different types. Let’s talk about them one-by-one:
1. Financial Blockchain Applications
This category of DApps provides users with ways of managing their finances and money. For example, Bitcoin provides its users with a distributed and decentralized system of monetization.
There is no centralization to the control of the network, and therefore, no single authority is responsible for controlling all the money. The power and regulation is with the people of the network and the consensus protocol. Users are the owner of their money in these applications. In addition to Bitcoin, there are various Altcoins that have been created so far and they fall into this category.
2. Semi-Financial Blockchain Applications
This category includes both money and information that resides outside the blockchain. For example, insurance applications that allow a refund for flights in case of delay in arrival.
Initial Coin Offerings (ICO) are another example of this category. An ICO is basically a fundraising mechanism similar to an IPO with the only difference being the involvement of cryptocurrencies in place of fiat money.
It is easy to structure ICO DApps because they apply standards such as the ERC20 Token Standard. Most of the ICOs operate by having investors send funds to a smart contract in the form of Bitcoin (in case of bitcoin blockchain) or Ether (in case of ethereum blockchain). This smart contract stores the funds and shares an equivalent value in the form of a new token at a later point in time.
3. Fully-Functioning Decentralized Applications
This third category of DApps uses all the features of both decentralized and distributed systems. They are the most popular type of DApps and are not financial at any level. For example, applications for online voting or decentralized governance. Countries such as Dubai have already begun building the first blockchain-run government.
An application is considered a DApp in the context of blockchain if it meets the following criteria:
- Must Be Completely Open-Source
The application must operate autonomously, without anyone entity controlling the majority of its tokens. The application may modify its protocol in response to proposed improvements and market feedback, but the changes must be decided by the consensus of its users.
- Must Be Cryptographically Stored
For avoiding any central points of failure, the application’s data and records of operation must be cryptographically stored in a public, decentralized blockchain.
- Must Use a Cryptographic Token
The application must use a token native to its system, responsible for providing access to the application. Additionally, miners/farmers must be rewarded for any contribution of value with the application’s tokens.
- Must Generate Tokens
Similar to Bitcoin, which uses the Proof of Work algorithm, the application must use a standard cryptographic algorithm to act as a proof of the value.
Advantages of Using DApps
Following are the advantages of using DApps:
DApps don’t have a single point of failure because no single node controls the data transaction or data records in this P2P decentralized network. Its distributed nature supports this very strongly.
2. Prevents Internet Censorship
As there is no central controlling authority owning a DApps network, it controls and prevents the Internet Censorship violation. It is practically impossible to manipulate with data sets in an individual’s favor. This means that not even government authorities can try to block a DApp because, being decentralized in nature, DApps don’t depend on any particular I.P address.
3. Increased Trust on the System
Again, because DApps are not owned by a single entity, users have more confidence and trust that their data will not be stolen or manipulated with.
Disadvantages of Using DApps
DApps are not perfect and come with their own set of disadvantages. Following is the list of these disadvantages:
1. Updates and Bug Fixes are Not Easy
It’s difficult to fix any issues in DApps because fixes require every peer in the network to update all the copies in the network, which can be a daunting task.
2. KYC is Not Easy
Most of the current centralized apps depend on user verification, which is quite easy given that a single authority controls and verifies it. But DApps don’t have a single entity responsible for doing KYC verification, and this makes it challenging to build DApps.
3. Complex to Scale
There are complex networks and protocols to be implemented in DApps to achieve consensus for data validation. For this, the entire DApp needs to be planned and built considering the scale from the very beginning. This is not the case with centralized apps, where you can first build an MVP and then later on scale the system according to requirements.
4. Fewer Evolved Third-Party DApps
In the current centralized app mechanism, we often have to depend on third-party APIs for fetching certain third-party information. However, with DApps, we don’t have this leverage because currently there is no such large third-party DApps ecosystem in place.
DApps have to interact with other DApps for their API needs, which is a disadvantage, because they cannot access APIs through a centralized application.
The Process of Developing a DApp
- Whitepaper and Prototype
First of all, a whitepaper is published, which describes the DApp and its features. This whitepaper outlines the idea for DApp development but also entails a working prototype.
- Token Sale
The sale of initial tokens is set up.
- ICO – Initial Coin Offering
The ownership stake of the DApp is spread.
- Implementation and Launch
The final step is investing the funds in the development of the DApp and deploying it.
In general, there are three types of applications based on Ethereum.
- Financial applications, which provide their users with more powerful ways to manage and enter into contracts, using their money.
- Semi-financial applications, which involve money but also have a heavy non-monetary side to what is being done.
- Governance applications such as online voting and decentralized governance, which are not at all financial.
Examples of Such DApps:
- Token Systems
There are many applications of token systems. The applications can be sub-currencies representing assets such as USD or gold; company stocks; individual tokens representing smart property; or secure unforgeable coupons.
- Financial Derivatives and Stable-Value Currencies
A smart contract application hedging against ether’s volatility in relation to the US dollar, using the data feed from sources such as NASDAQ and NYSE.
- Identity and Reputation Systems
A contract mentioning the name of the owner of a land title can be added to the Ethereum network, but it cannot be modified or removed. Anyone is allowed to register their names with some values; these registrations then stick forever.
- Decentralized File Storage
A Dropbox-like DApp, in which the desired data is split up into blocks by a smart contract, thereby encrypting each block for privacy. A Merkle tree is then built out of it and subsequently, the entire data is distributed across the network.
- Decentralized Autonomous Organizations (DAOs)
A virtual entity having a certain set of members or shareholders with a 68% majority possess the right to spend the entity’s funds and modify its code. It would be collectively decided by the members on how the resources should be allocated by the organization.
Thanks to blockchain technology, apps have evolved into DApps. DApps are the better version of traditional apps as they have the potential to become self-sustaining resources by allowing their stakeholders to invest in DApp development. In the near future, DApps will be preferred over currently available traditional applications for multiple purposes such as payments, storage, cloud computing, etc.
The advancement of blockchain adoption is unavoidable, which will result in numerous current practices becoming obsolete. Services like banking are already working on adopting blockchain soon, which will help them in operating with trust-less, self-sustaining, and decentralized networks.