A DApp stands for a decentralized application and is a new type of software application which is more auditable, profitable(for developers and users alike), and has no central point of failure. Applications can be in the form of a website, an online service, or even a Android/iOS application. Moreover, such applications interact on a P2P(peer-to-peer) network and use blockchain technology for consensus among nodes. A DApp usually has a web-based front-end and a smart-contract as a back-end, but not necessarily for all the functions provided by the app.
Properties of DApps
There are four properties common to most DApps. These are:
- Open source code
- Cryptocurrency support
- Decentralized consensus mechanism
- No central point of failure
Open source code
Due to the trustless nature of the blockchain, developers are obliged to make the source code open source. This also allows further modifications by interested people.
Cryptocurrency support
Every DApp uses an internal cryptocurrency to quantify all transactions among users of the application. For example, the game Cryptokitties uses Ethereum(ETH) tokens to buy game objects. Some applications may also pay users for their attention, such as the Basic Attention Token used in the Brave browser.
Decentralized consensus mechanism
Blockchains use consensus protocols to solve the Byzantine Generals’ problem. In case of Bitcoin, the consensus mechanism is called Proof-of-Work, which is generally agreed to be wasteful due to amount of work done for the energy consumed. A consensus mechanism is required to avoid fraudulent transactions.
No central point of failure
Since the blockchain is stored on many different nodes connected by a P2P network, the network on which the DApp runs is reasonably safe from attacks, and in the case of failure of one or more nodes, other nodes can take over.
Challenges to DApp development
Considering the above advantages, optimism about DApps is expected. However, the reality is that DApps require some fundamental problems to be solved before they are ready for the masses. One problem is that current blockchains have scalability issues. For example, current cryptocurrencies charge disproportionately high fees for relatively small transactions. This makes cryptocurrencies unsuitable for transferring smaller amounts of money. Moreover, DApps are not very user-friendly, since some knowledge of cryptocurrencies and blockchains is required to interact with them.
Another challenge is that with an increase in the userbase, a DApp may become less responsive, since most blockchains yet cannot support a large number of transactions. Ethereum currently supports about 7-15 transactions per second, which is really tiny compared to visa’s 65000 transactions per second(as of 2017).
Enfin
Even with all the existing challenges to DApps, they will shape the internet in a very significant way as the technology matures. Stay tuned for more.