In a world where the terms “blockchain” and “ICO” are a staple of news in online press, it’s not surprising when something new emerges in that field. Enter a new model for building successful and massively scalable applications. Thanks to blockchain technology (and the massive interest surrounding it), we now have a new type of application called a “Decentralized Application” (DApp). These are sometimes referred to as blockchain applications.
What is a DApp?
There are many different explanations as to what DApps are. The term “decentralized applications” isn’t strictly related to blockchain, however, DApps started to be recognized in recent years precisely because of blockchain. Generally, DApps are applications that run on some kind of a P2P network – multiple computers rather than a single one. Think of BitTorrent or TOR as a decentralized applications.
For an application to be considered a blockchain DApp that uses tokens, it must meet the following criteria:
- 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. However, all changes must be decided by consensus of its users.
- 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.
- The application must use a cryptographic token (Bitcoin or a token native to its system) which is necessary to access the application. Any contribution of value from (miners / farmers) should be rewarded in the application’s tokens.
- The application must generate tokens and have an inbuilt consensus mechanism (Bitcoin uses the Proof of Work Algorithm).
So, to be clear: in this article, whenever I’m mentioning “DApp/DApps”, I’m only referring to the ones running on the blockchain (so, blockchain applications) and the ones that use tokens.
Blockchain applications? Three types of DApps
The Ethereum white paper distinguishes between 3 types of DApps.
The first category is financial applications that run on the blockchain.
These provide users with a way of managing their own money. Bitcoin is a DApp in the first category. Bitcoin provides the monetary system that is completely decentralized and distributed. There is no central authority that controls the money and all the power of managing money resides on the users and the protocol. Users are the owners of their money and they can do whatever they want with that money. Other examples of the DApp from the first category are the various “alt-coins”.
The second category are semi-financial applications which mix money with information outside the blockchain.
For example, insurance apps that refund money for a plane ticket if the plane is delayed (Fizzy). The ICO itself also belongs to the second category of DApps. It mixes a token sale with all the crowdsale functionalities for the idea for which the ICO is held.
Finally, applications that fall within the third category. These DApps utilize all the features that decentralized and distributed systems have to offer.
These don’t have to be financial at all. Good examples are online voting or decentralized governance (e.g. DAO). These types of blockchain applications are the most popular ones. Dubai is thinking of using blockchain and building the first blockchain-run government. Another possibility of using blockchain in this category is energy distribution apps. So, the basic idea is that if I have solar panels on my home, and these solar panel produce more energy than I use, then I can sell the excess of power directly to my neighbor.
The classification of the three types of DApps is based on the Ethereum white paper. There’s another classification of DApps out there. You can find it here under “Classification of Dapps“.
The difference between DApps and smart contracts
Now that you know what DApps are, you may ask yourself another question. How do these smart contracts you’ve heard about fit into all that?
Smart contracts are programs that are executed and run on the blockchain. A smart contract defines the conditions to which all parties using the contract agree. So if the required conditions are met, certain actions are executed. When I buy tokens on the new ICO, a smart contract has rules written into itself. For example, if the ICO doesn’t raise enough money, all of the money I have invested will be returned to me, or that I cannot transfer new tokens until the ICO is successfully concluded.
DApps (Ethereum based) are blockchain applications where the smart contract is what allows it to connect to the blockchain. The easiest way to understand this is to compare a DApp with a Web App.
Frontend and backend
Traditional web applications have a frontend and a backend. The frontend is all that the users sees when entering a webpage. All of the HTML, CSS and JS are used to display the frontend and are used to connect to the backend.
The backend is where all the mechanics are implemented for the website, for example a database connection and serving the client information about their profile. Java, Python or Node.js are used on the back-end, combined with a SQL database.
DApps are similar to web apps, they may have the frontend (GUI in general) but what differentiates them from Web Apps is the backend. Instead of the Java API and a traditional database, we have a smart contract that connects to the blockchain and contains all of the logic for the application.
As opposed to traditional, centralized applications, where the backend code runs on centralized servers, DApps have their backend code running on a blockchain network. Each operation needs to meet the consensus of the network and is computed on every node of the network. So, decentralized applications consist of the whole package, from backend to frontend. The smart contract is only the backend part of the DApp.
Examples of DApps
In this section, I will present some interesting projects and blockchain applications that are built on the Ethereum platform just to show how varied DApps can be.
From the EtherTweet website: the service provides a basic Twitter-like functionality. As it’s deployed on Ethereum blockchain, it means no central authority has control of what people publish or what they post. As a result, the user has all the control of their EtherTweets.
Etheria is a game build on the Ethereum platform. It’s similar to Minecraft but what differentiates it from the rest is that you can purchase all the land tiles for ether. The user interacts with the game by sending commands. Those commands later go to the smart contract which controls the game behaviour. It’s completely decentralized and everyone can interact with it.
Gnosis is a prediction market platform which allows its user to participate in voting for different predictions. The platform offers users a place where they vote on predictions regarding various topics, from the weather to election results.
A platform which lets users/players challange each other in DOTA2 and win rewards based on the bet or the tournament. FirstBlood offers different tournaments which are listed on the website, where players can participate and win rewards. The platform awards every winner with tokens. As it’s based on the blockchain, every match history is written and stored on the blockchain.
The future of DApps
Blockchain is really a young technology. The Bitcoin whitepaper was released in 2008, and Satoshi Nakamoto mined the first Bitcoin block in 2009. People knew that bitcoin was revolutionary but it took a few years for developers to truly figure out why. They later understood that Bitcoin was built upon a really revolutionary technology – blockchain.
We’re still in the process of understanding blockchain and what we can do with it – and understanding its real potential. Every now and then, more interesting uses of blockchain emerge from the community in the form of a really interesting ICO for a new DApp. I’d never have thought of using blockchain as a mean of distributing energy or for autonomous government projects.
I often compare the current state of blockchain and DApps to the early life of the Web. How we used the WWW back in the 90s and 00s is way different from how we use the web now. Something similar will happen to the blockchain and DApps. Seems like we’re still trying to find the real potential of this technology. In my opinion, many more interesting blockchain applications are on their way. I’m sure we’ll encounter uses that we’ve never thought about. I can’t wait to see what the future brings.
And if you’re interested in building your own distributed application or blockchain product, click here – we can help.