A Decentralized Application is powered by peer-to-peer (P2P) blockchain technology, where the people who use the service are also contributing to the hosting of content that exists on it.

It’s the opposite of the traditional server model: whereas one central information server can become slower as it gains popularity, a blockchain becomes more responsive and more secure as more people use it.

Everyone who uses the blockchain contributes to verifying that the information on the chain is correct, and that any user hasn’t secretly changed it. Consequently, the blockchain environment is challenging to attack, because there’s no central store of data for hackers and malicious actors to target.

Bitcoin and other ‘alt’ currencies have made the blockchain famous, but a whole new sphere of activity has emerged in recent years that aims to use the blockchain’s security and authentication features not to produce virtual money, but rather virtual ‘proof’ that certain events took place. It’s a field of activity set to transform the legal sector, amongst many others, in years to come.

DApp and Smart Contracts

DApps and smart contracts are interrelated, but they are different. DApps are blockchain-enabled websites, while smart contracts are the tools that connect the DApps to the blockchain.

DApps have similar front-end architecture to traditional websites. Both use various programming languages, such as CSS, HTML, and JavaScript to render a page.

However, a conventional website uses an API to access a traditional central database on the web, while a DApp uses a smart contract to access the blockchain. An example of this is the blockchain-based collectibles game CryptoKitties, which is accessed via a standard website, but played over the blockchain rather than on a single server.

A DApp has a front end, such as a website or mobile app, and a backend that’s based on the blockchain. A Smart Contract only has a backend. So if you want to create a DApp using a Smart Contract, you’ll need to use several Smart Contracts that use a third party as their front-end.

Proof of Work and Proof of Stake

A DApp utilizes the consensus algorithm of a blockchain to ensure the continuity and integrity of the data that passes through it.

A consensus algorithm means that all users must agree on any change to the blockchain that’s proposed, and prevents any single user from making undesirable changes to the blockchain.

Two of the most critical consensus mechanisms that DApps use are Proof of Work and Proof of Stake.

Proof of Work

A Proof of Work is a complicated mathematical puzzle which people participating in the blockchain must solve to ensure that changes to the chain are agreed upon by all users. It’s the most important tool the blockchain has to maintain the integrity of the data stored on it.

Since the puzzles are difficult to solve, the system offers cryptocurrency as a reward for those who solve them. This process is called Mining, and some users purchase special hardware to solve more puzzles and profit from this rewards system.

Proof of Stake

Proof of Stake (PoS) is a mechanism where multiple users with high authority in the blockchain system validate a single ‘truth’ (a transaction amount, the record of a payment, a user’s score in a blockchain game, or any other type of data) that may exist there without needing to solve difficult puzzles in order to prove that the transaction is authentic.

Those who can authenticate events in this way are called ‘validators’ or ‘forgers’ (rather than ‘miners’, as in Proof of Work), and can earn part or all of the transaction fee according to the size of their coin/token stake, and their current reputation in the blockchain. Proof of Stake uses far less energy than Proof of Work.

How DApps Are Created

Creating a DApp is divided into four stages:

The publication of a white-paper describing the DApp’s features, concepts and functions. For example, this white paper proposes a blockchain-based social network.

The launch of an Initial Coin Offering (ICO), where tokens or altcoins are sold to fund the DApp project, similar to conventional crowdfunding schemes such as Kickstarter. Here, for example, we can see the ICO outcome of the social network project in the white paper mentioned above.

The start of the development process. We can see the social network taking shape here.

The launch of the final product, along with a detailed release report and maintenance plans.

Key Features of a DApp

Decentralization. All the records of a DApp’s activities and operations are stored in a decentralized public blockchain, avoiding any of the security or operational risks posed by centralized servers.

Open source. Anybody can inspect all the code used in a DApp. Any changes to it will have to be agreed on by the majority of users who are involved in the DApp.

Operates on user incentive. Those who validate the DApp’s blockchain are rewarded with cryptocurrency (see ‘Proof of Work’ above).

Different Kinds of DApps

As mentioned above, DApps primarily use Proof of Work and Proof of Stake as their consensus algorithm. DApps that use Proof of Work are similar to Bitcoin in the way they operate, while those that use Proof of Stake are Ethereum-based (see ‘Ethereum DApps’ below).

Bitcoin DApps

Just like their Bitcoin predecessor, DApps that belong to this category have similar characteristics to Bitcoin, in that they are open source, stored with strong encryption, make use of a crypto coin as their unit of operation, and generate their coins and tokens.

Ethereum DApps

Ethereum is an open source project designed to launch blockchain projects which have wider aims than just generating virtual currencies. It’s currently the most popular hub for DApp development, and is at the heart of the internet’s current interest in Smart Contracts.

Ethereum provides developers with a blockchain that enables anyone to create DApps and smart contracts, which they can then use to create their rules for ownership, and to manage transactions.

Below are some examples of the diversity of Ethereum-based DApps.

Decentralized File Storage

Similar to Dropbox, smart contracts in projects of this type work by dividing each uploaded piece of data into encrypted blocks before distributing the file or files securely across the blockchain network. One example of this type of project is Storj.

Token Systems

Token systems are used as incentives for different applications, such as coupons and sub-currencies.

Identification and Authentication Systems

A popular category at Ethereum, these systems are used to prove the identity of a person. For example, if two parties enter into a transaction, a system of this nature can provide continuity of ID for any of the participants, and the assurance that this information cannot be changed later.

Stable Value Currencies

A smart contract that uses data from different stock exchange marketplaces and financial institutions to protect users against ether’s volatility with respect to the US dollar.