DApp is a decentralized application that runs on a peer to peer (P2P) network of computers instead of a single one; such applications have been around from the time P2P networks were begun. These software programs are designed in such a manner that they can exist and run on the internet without being under the control of any single entity. They don’t necessarily have to be on a blockchain network: examples of decentralized apps that run on a P2P (but not blockchain) network are Tor, BitTorrent, BitMessage etc.
DApps have numerous partners everywhere in the market, unlike the smart contracts system in where exchange takes place between two parties. dApps as what we refer to today, run on a blockchain like Ethereum network, which allows developers to create their own operations, and tokens and offer unlimited capability for application development. The tokens generated are used like currency to pay the individuals who maintain the network.
For a DApp to be considered as a blockchain DApp, the following criteria need to be satisfied:
- The app has to be open source, with the code displayed publicly; this allows others to alter the code or create forks.
- The data and records of the app are hosted in a decentralized manner on secure computer networks (that has a combination of standalone servers and cloud servers that run the software) in a public blockchain to eliminate central failure points
- It has a finite number of blockchain tokens which necessitates paired cryptographic keys. This enables data storage on the blockchain through signing of transactions.
- It must generate tokens based on a standard cryptographic algorithm to serve as proof of value and the miners (contributors) must be rewarded with said tokens
- The app must operate independently without any one entity having majority control of its tokens
- The app may make protocol changes as a response to feedback received and for recommended improvements; however, a consensus must be reached among the user for every change
How they Work
DApps can be anything from web pages to computer or mobile apps that to all appearances, operate like any other application; it’s the backend that differs. The apps’s data is hosted on a network of nodes instead of local or cloud servers. The nodes all maintain identical ledgers – a blockchain..
A blockchain is basically a P2P network whose purpose is the maintenance of an open ledger to collect data (similar to a spreadsheet). Every node on the network carries exact copies of that ledger – this could run into thousands of copies; this is because as long as a computer is compatible, it can turn into a node by just running the software. As all the ledgers of all the nodes have to be identical, the network becomes immutable. A discrepancy on one ledger will invalidate that particular record; this makes the system almost 100% hack proof.
Miners verify transactions and broadcast them to the network, thereby passing the information on to a node. It’s a pretty resource intensive activity that necessitates massive computing power. The user who initiates the transaction, pays miners in tokens for their work; this again means that DApps need users to have wallets which can hold tokens that work for each specific blockchain. Like on the Ethereum network, tokens used are Ether.
Benefits of DApps
Thanks to the decentralized system of DApps, there is no single entity responsible for securing the data, no servers to maintain or servers and other expenses; with blockchain storage, the data is almost hack proof, and secure. There is no motivation to sell user information to recover costs. At least 51% of the network has to be simultaneously attacked, if any impact has to be made on the ledger data – this is extremely complex, and expensive to boot.
The open source nature of DApps also makes it very transparent – anyone can check out the code and see how it actually operates.
The Process of DApps Development
Usually, a whitepaper describing the application and its features is published, giving an outline of the idea along with a working model of the app. The next steps are:
- Setting up of initial token sale.
- ICO – initial coin offering
- Spreading of the application ownership.
- Funds are invested into the DApp development and deployment – the DApp is launched.
As they operate under open source license, DApps can be modified without restrictions, and can operate under the legal model of open source software.