Most people are familiar with the term app. App is simply a shorthand version of the word application. An app refers to a software application. There are three types of apps: mobile, desktop and web-based. Google Play and other repositories can be accessed on smartphones that allow a user to download various mobile apps to their phones for free or at a minimal cost. Apps perform a wide variety of functions and tasks related to games, social media, entertainment, finance, exercise, dating and so on.
The advent of blockchain technology has led to the creation of what are known as dApps. dApp is a shorthand version of the term decentralized application. There are several blockchain projects that are geared toward dApp development and creating repositories of dApps similar to Google Play for apps. While both apps and dApps allow users to perform similar tasks, the two types of products are based on different underlying technologies. Apps and dApps differ in regard to: 1) level of centralization, 2) product development and 3) cost to user.
(Illustration of Apps on Smart Phone)
Level of Centralization
An app and a dApp differ in terms of the level of centralization. An app is on a centralized server. That means that there is a single or central point of failure. For a web-based app, if the server that provides the app goes down, the app will be unavailable. On the other hand, a dApp is available on many nodes or computers on a blockchain network. There is no single or central point of failure for a dApp. Every node has the same exact dApp on a blockchain. If one node goes down due to technical issues or malicious hacking, the dApp will still be available. In addition, there is no central authority that can alter a dApp once it is deployed on the blockchain.
(Illustration of Decentralized Network)
In some cases, a smart contract will need to access data outside of the blockchain to complete the terms of the smart contract. For example, a dApp that enables a user to buy 100 shares of IBM stock if the price drops below a certain level would need to have access to the current price of IBM stock. In this case, during dApp development, an interface would need to be created between the smart contract deployed on the blockchain and an external stock price data source. Any source of external data needed by a smart contract is called an oracle.
All transactions and activities related to using the dApp are converted into cryptographic hashes and stored on the blockchain and cannot be altered. Blockchains mainly use protocols known as proof-of-work or proof-of-stake to verify all transactions on a blockchain. This means that when a smart contract is first deployed on the blockchain, it is verified. In addition, any subsequent transactions using the dApp are verified. This verification process slows the speed of a dApp versus a conventional app.
Cost to User
There is generally not a cost to the user every time they use an app. On the other hand, the user of a dApp typically needs to use tokens to access a dApps functionality. dApp development on public blockchains, such as Ethereum, are often funded through an initial coin offering or ICO. Investors receive tokens in exchange for cryptocurrencies, i.e., Bitcoin or ether.
In addition to acquiring tokens through ICOs, dApp users can acquire tokens by purchasing them on cryptocurrency exchanges or through mining activities. Miners are rewarded with tokens for verifying transactions on the blockchain. Tokens, however acquired, are needed to access and use dApps on the blockchain. This is not the case with apps.
Apps and dApps can accomplish a variety of similar tasks for users. However, there are many differences between the two products. Apps are centralized products, while dApps are peer-to-peer or decentralized products. The two products have different development processes. In addition, dApps require users to have tokens to fully utilize their functionality. This is not the case with conventional apps.