DApps, or decentralized applications, are a type of application whose operation is based on a decentralized network of nodes interacting with each other.
DApp is the acronym for “Decentralized Applications” or “Decentralized Applications”. This is a type of application, the operation of which does not depend on control points or central servers, it works based on a decentralized network. A network in which its users have full control of its operation. DApps allow people to access different services securely. These applications can be used on personal computers, smartphones or even be accessible via the web.
To have a clearer idea of what a Dapp is, we must think of a traditional App (application / service). In this category of traditional apps we have, for example, YouTube, Facebook, Twitter or Instagram. In all of these services, data and decisions are made on central servers. This allows the company behind these services to take censorship actions, change behavior, or even benefit or harm only certain users, constantly questioning neutrality and equal conditions. They act like dictators, you can only trust that they will be "good".
Origin
The DApps concept is nothing new. The first known DApps were seen in file sharing protocols as BitTorrent o DC ++. Both applications are peer-to-peer file sharing systems with high resistance to censorship. However, the first DApp using blockchain was, Bitcoin itself. This is because its structure and operation successfully describe the first DApp blockchain in history.
However, it was not until 2014 with the presentation of Ethereum, its Solidity language and the ability to execute smart contracts DApps were massified. And it is that thanks to this triad, DApps running on blockchain began to become very popular. A situation that can lead to the massive adoption of blockchain technology by allowing new forms of interaction between users, the real and the virtual world.
Differences between a DApp and a traditional App
DApps and traditional Apps have many elements in common, however, their difference lies in how they interact with these elements. Both types of applications have three basic structures which are: the frontend, the backend and the data storage layer.
Frontend
The first layer, the frontend, becomes the interface that users use to interact with the application. In this case, both DApp and traditional App can make use of the immense graphic resources available for this. From web interfaces written in HTML5 to the most elaborate, in frameworks such as Qt or GTK. The purpose of this layer is simply to give the user the ability to interact, receive and send information to the application they are using.
Back-end
This second layer mentions the main logic of the application. In a traditional application, this logic is centralized, unlike DApps in which it is decentralized. In DApps, the backend is related to a smart contract that runs on a blockchain, for example Ethereum. In this way, a smart contract has a programming that guarantees the operation of the DApp. As the smart contracts are visible and public, this guarantees a high level of transparency and security. Users can be sure that the DApp will not do anything other than what the smart contract specifies.
In addition to this, the backend is supported by the APIs (Application Programming Interface) and blockchain capabilities. For example, in Ethereum there are various APIs to control user interaction with the storage or authentication layers to give some examples.
Data storage
Finally, there is the storage layer. In a traditional application, this layer is also centralized. Normally the data is stored on the user's computer or on servers controlled by third parties. This way of working has many points of failure. A user for example, can lose the information of the application if his computer is damaged. It can also happen that the servers are out of service or are blocked. Actions that would prevent the user from using the application correctly or even losing information.
But in DApp, data storage is completely decentralized as well. Each DApp user stores a complete history of the actions performed on the DApp network. In addition to this, the interactions are stored on the blockchain within the blocks Of the same. All this in a cryptographically secure way, preventing unauthorized access by third parties. In this way, if a user's computer or smartphone is damaged, it would be enough to use the DApp on a new device to recover all their information up to that precise moment. Let's also add that the level of redundancy and security with the data increases as more users make use of the DApp.
How does a DApp work?
A DApp works similarly to a blockchain network. In this case, each DApp user is a node within the network. Each user watches over the correct operation and operations carried out in said network.
The communications channel that the DApp uses is the blockchain. In it, a record is kept of each operation that passes through the smart contract that controls the DApp. The acceptance or not of the operations carried out by the users of the DApp, is subject to the programming of said smart contract. In this way, it seeks to guarantee that all participants act within the framework specified by it.
The smart contract in this case, it is an intermediate point that is in charge of corroborating the validity of each interaction. Every time there is a new operation in the DApp, the platform information is updated on each node. This ensures that the information is stored in each of them. In this way, each user contributes to keeping the application running with the resources of their computer. This structure also guarantees that the platform will always be in service. This is due to the impossibility of deregistering all the nodes of the network at the same time. A situation that can occur due to a computer attack or other reasons such as censorship.
At this point, DApps take a breakthrough, because by working and running on a blockchain, they enjoy their security, privacy and even anonymity capabilities. Additionally, they also guarantee that the data used by the DApp is only accessible by the person who originated said information. Thus, users maintain absolute control of their data at all times.
DApps Features
Security
This is one of the main features of DApps. This thanks to the fact that it works on a blockchain that uses strong cryptography to secure the data it handles. This first point ensures that the information can only be seen by the originator and the rest can only verify its validity or not. At no time, the information originated by a user is visible to others.
In addition to this, the data handled by the application is at all times in the possession of the user. DApps do not store information in the cloud or external servers. This minimizes the risks associated with the theft of private information or the sale of it by the company, thus violating the user's privacy.
Decentralization
Another of the main characteristics of the DApps is its decentralization. Or what is the same, the ability to function without central servers. To put this in better perspective, consider the following example:
Facebook is one of the most used social networks worldwide. With more than 2000 billion users, its data centers handle a huge data load. At this point, keeping your infrastructure running is a titanic task. One that has not been without errors, which have led to the network not being available on a global scale. All this because Facebook is a centralized social network.
However, a DApp lacks this point of failure thanks to decentralization. Each DApp user has a complete history of the actions taken in the DApp. Something like a global copy of everything that has happened. Due to this, since it runs on a blockchain, it is enough that only one user is active for the network to continue working without problems. In this way, it is guaranteed that the DApp and its network always works and the case of Facebook does not pass.
Open Source
This is another very common feature of DApps. The fact that the source code is available ensures a high level of transparency of the application. This is because the community can know at all times what the DApp does. It also allows for community audits, so anyone with the knowledge can review the application's source code. This allows to improve it and in any case continue its development in case the project is abandoned by its original creators.
All DApps publicly maintain the source code of their smart contracts and the rest of the application. In this way, anyone can inspect, improve or code the code.
Blockchain inheritance
DApps interact on the blockchain on which their smart contract runs. This means, that each interaction in the DApp generates a data entry in the blockchain. This data is stored cryptographically to add transparency and security. All these actions can be publicly reviewed in the blockchain block explorer.
But only cryptographic interactions can be seen, the entire data is stored cryptographically secure. In addition to this, the fact that a DApp works on a blockchain means that a consensus protocol is used to verify each interaction. This may be that of Proof of Work (PoW) or the Proof of Participation (PoS) or the one chosen by the DApp developer. This seeks to guarantee the same level of security applicable to the blockchain on the DApp.
DApps classification
DApps can be classified into three categories, which are:
Type I
All those DApps that have their own blockchain fall into this classification. That is, those that have their own infrastructure and do not depend on any blockchain to run. At this point, Bitcoin is the first DApp blockchain that has ever existed. The same applies to Bitcoin Cash, Litecoin, Ethereum, Dash, Monero, Among others.
Type II
In this classification we find those DApps that depend on a blockchain and its characteristics to function. At this point, these DApps can work using their own tokens or the blockchain on which they run. An example of this case is Golem.
G It is a DApp that works on the Ethereum blockchain. It was created in order to allow its users to rent computing resources to process data for different uses. Think of Golem as a decentralized supercomputer from which we can rent processing power. To achieve this, Golem has an ERC-20 token, the GNT (Golem Network Token). This token is used to pay users who rent their computing power and for other activities within the network.
Type III
DApps of this type use DApps of type II for their operation. Generally, Type III DApps use the Type II DApps tokens to carry out their operations. An example of these DApps is, Safe Network. Safe Network relies on OmniLayer, a type II DApp, to generate Safecoin, its own cryptocurrency. This cryptocurrency is used in Safe Network in order to carry out all operations within said DApp.
DApps limitations
Some of the most important limitations of DApps are the following:
- Difficulty of exploiting the full hardware potential of user devices. This is especially true for DApps that are run from web browsers. Something that is due to the number of layers of abstraction and the high level of execution of the programming languages used.
- The complexity of the application can often make debugging and security review difficult. This situation is especially critical in the programming of smart contracts. This because a vulnerability in them can affect all users of the DApp at the same time.
- The growth and improvement of DApps is tied to the enrichment of improvements within blockchain structures. A DApp can have a very live development, but this will be slowed down if the development of the blockchain and its tools is poor or non-existent. At this point, the developmental correlation between DApps and the blockchain is symbiotic. Both must follow their development in order to reach long-term goals.
- Difficulty to implement functionalities necessary for the correct operation of DApps. Some DApps are very simple in their programming requirements, others not so much. Take for example the DApp Golem and its decentralized computing system. The main difficulty of the project is to orchestrate the storage of processed and to be processed data within the network. In addition, another problem that it presents is the synchronization when it comes to carrying out computation processes for a certain task assigned to the nodes. All this makes the development of all the immense possibilities of Golem difficult, but it is a challenge that the developers have fully assumed.
Example of some DApps
CryptoKitties
This was one of the first games in the world to be created based on blockchain technology. CryptoKitties, is about collecting “unique virtual kittens”. Each of these kittens have characteristics and properties that make them different from the rest. It is precisely their extreme rarity, which gives them value and would become the game's cryptocurrency. Kittens can be bought and sold, thus obtaining their property in a virtual way.
In addition to this, we can "breed" kittens in CryptoKitties. That is, we can unite two kittens to obtain a unique genetic offspring. which we can keep, breed later or sell to do business. CryptoKitties runs on the Ethereum blockchain, it is a type II DApp.
NASH
This is a Type II DApp that runs on the NEO blockchain. The objective of NASH, is to run an off-chain match engine to enable much faster and more complex exchanges than existing decentralized exchanges.
Saturn network
Saturn network is a decentralized exchange for token trading ERC-20 or ERC-223. It works based on a cross-chain available in Ethereum and Ethereum Classic. Saturn Network offers a fast and effortless exchange system, as there is no need to fill out a KYC or set up an account.
Crazy dogs live
Crazy dogs live is a gambling system focused on creating a transparent, safe and fun-filled platform for its users. It's aimed at dog racing with innovative betting mining features and live streaming. It also allows players to interact with each other and enjoy tremendous fun with games while making profits. The platform will also launch other features in the near future so that the entire ecosystem of the game grows exponentially.
Crazy Dogs Live is a type DApp that runs on the blockchain of TRON.