Dapps: power to the consumer (Article 11):

Blockchain technology introduces the second generation of decentralized applications.

Al_ref
Decentralized Innovations
7 min readJun 10, 2022

--

Photo by Joan Gamell on Unsplash

When we use our computers, we constantly use applications — whether this is the word editor on which we compose our documents, or the anti-virus software that quietly operates in the background to keep our computer virus-free. There are also web applications that run over the internet, such as web browsers and social media platforms. Web applications consist of 3 main parts:

  • Front-end: This is the Graphical User Interface (GUI), which is everything you see as a user and which is what you interact with, such as the buttons you press or text fields you can type into (e.g. for updating your status).
  • Back-end: Here, the work is done to perform your request (e.g. your Google search results are being fetched).
  • Database: This is where the data is stored, and where the back-end goes to look for the information you requested (e.g. the article or Youtube video you are looking for, as well as verifying the necessary identities when needed).
Components of traditional web application

These traditional applications are controlled by a central entity like Google or Facebook. However, there is another type of applications — decentralized applications. And these decentralized applications existed years before the invention of blockchain, namely in the form of Peer-to-Peer (P2P) networks. On these, data is shared and consumed anonymously across the different nodes in the network. Tor, bitTorrent and Popcorn Time are some examples of decentralized applications. Just like blockchain, these ‘traditional’ decentralized applications use hash functions to encrypt data and distribute copies of the data among multiple nodes in the network. The only difference between ‘traditional’ decentralized applications and the blockchain is that ‘traditional’ decentralized applications do not suffer from the double-spending problem, since no transaction or value needs to be protected from double-spending. These applications are the first generation of decentralized applications.

In contrast to the first generation, the second generation of decentralized applications are not just available on the internet, but are protected by blockchains. Since these applications operate on blockchains, they possess a myriad of different capabilities, and a particularly remarkable feature is that payments and valuable information can be protected from fraud and manipulation. This second generation of decentralized applications is what is referred to as ‘Dapps.’ (Acceptable alternative spellings: ‘dApps,’ ‘DApps’ or ‘dapps’)

One can consider Dapps as the progression of smart contracts. Smart contracts consist of computer code that runs on the blockchain and which performs a certain task once pre-set conditions are met. If you combine multiple smart contracts to perform complex tasks and then add a GUI, you get a Dapp. Just like other web applications, Dapps consist of:

  • Front-end: which features a GUI and looks exactly like any traditional web application.
  • Back-end: which is one or more smart contracts that perform the operations required by the Dapp.
  • Database: which is a blockchain or a distributed ledger where digital identities and information are stored and verified.
Components of Dapps

Due to the similarity between traditional applications and Dapps, some criteria were needed so that it would be easy to clearly identify the two and differentiate between them. After long discussions within the community, a report was released in 2014, which set the criteria for Dapps:

“For an application to be considered a Dapp (pronounced Dee-app, similar to Email) it must meet the following criteria:

1. The application must be completely open-source, it must operate autonomously, and with no entity controlling the majority of its tokens. The application may adapt its protocol in response to proposed improvements and market feedback but all changes must be decided by consensus of its users.

2. The application’s data and records of operation must be cryptographically stored in a public, decentralized blockchain in order to avoid any central points of failure.

3. The application must use a cryptographic token (bitcoin or a token native to its system) which is necessary for access to the application and any contribution of value from (miners / farmers) should be rewarded in the application’s tokens.

4. The application must generate tokens according to a standard cryptographic algorithm acting as a proof of the value nodes are contributing to the application (Bitcoin uses the Proof of Work Algorithm).”

By the way, it is commonly acceptable to pronounce Dapp as a one-word like ‘cap’ or ‘rap.’

The criteria set in the report mainly concern the back-end (so the smart contract portion) of Dapps, and there is no requirement that the Dapp needs to have a GUI. According to these criteria, Bitcoin qualifies as a Dapp, whereas according to more recent definitions of Dapps, it does not qualify. The reason why it is possible for Bitcoin to be considered a Dapp is that the report provides three different categories of Dapps:

  • Layer-1 Dapps: These are the Dapps that are self-reliant. This category includes Bitcoin and other blockchains. However, only open and public blockchains qualify as layer-1 Dapps as other types do not meet the set criteria above.
  • Layer-2 Dapps: Those are protocols and scaling solutions for blockchains that are open-source, public, decentralised, and which algorithmically generate tokens.
  • Layer-3 Dapps: These are smart contracts and Dapps built on top of layer-2. Compared to layer-1 and layer-2 Dapps, Layer-3 Dapps provide extended functionality, as they can combine and add functionality to both layer-1 and layer-2 Dapps.

If you remember the Blockchain article, you may recall that the 3 layers of Dapps mentioned above are analogous to what was introduced in the blockchain article as the 3 layers of blockchains. So, the report released in 2014 basically described the layers of blockchains and called them the layers of Dapps. The new definition of Dapps, however, only includes layer-3 Dapps from the 2014 report.

You can discover many Dapps from this website and this directory, and see how similar they are to traditional applications. Yet, despite the great similarity between traditional applications and Dapps, traditional internet browsers cannot run Dapps — it requires a dedicated browser or an add-on to the traditional web browser to run the smart contracts of the Dapps. Trustwallet and Opera have dedicated Dapp browsers, while Metamask allows the Chrome browser to interact with Dapps.

Dapps being built on blockchain are distributed across multiple nodes and hence will enjoy multiple benefits compared to traditional (or centralised) applications. These benefits are shown in the following animation, which has been copied from the Ethereum website.

Dapps is an umbrella term for all the different types of applications that are and can be decentralised; among others, this includes apps related to “DeFi”, which refers to decentralised financial applications, or “gameFi”, which is a category of games where you earn as you play and win, and many more. With decentralisation, the users of the applications have total control over their data and can rest assured that any transaction done through any app is free from fraud and manipulations.

Although numerous Dapps have existed for some time and they have proven their value, there are a few risks and cons to them as well, in particular, the following:

  • Dapps are built on smart contracts, so they suffer from all the risks attributed to smart contracts.
  • Dapps are still in an early stage of development and the field itself is still vastly unexplored, so it is prone to unknown issues and problems.
  • Dapps cannot still compete with traditional applications, since the latter have matured substantially while having experienced decades of improvements.
  • As Dapps run on blockchains, it is difficult — if not impossible in some cases — to make modifications or fixes to the code once it is deployed.

However, the potential of Dapps clearly outweighs their risks. Also, the damage does not necessarily need to be lasting; as it will be explained later in an article on ‘The DAO’, in some extreme cases, the damage caused by a faulty Dapp is fully reversible.

While Dapps are built on supposedly ‘smart’ contracts, these (upon closer inspection) turn out to be rather ‘dumb’ contracts. Smart contracts have rigid conditions, and they are not as adaptive as many of the smart applications we are already using every day: think of for example your smart watch’s health tracker, which analyses your heartbeat and your movement to determine the type of exercise you are doing, or the step counter on your phone, which automatically detects and counts your steps, or Google Maps, which establishes road congestion based on the number of signals it receives from the mobile devices that are currently located on any specific road. Smart contracts, by contrast, do not perform such adaptive and smart operations. Truly ‘smart’ smart contracts would incorporate Big Data and Artificial intelligence capabilities in a way that the smart contracts would acquire the ability to self-program and evolve to become independent entities able to adapt to new conditions.

--

--