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)
Product Development
An app is usually developed using programming or scripting languages, such as HTML, CSS and JavaScript. This code is usually proprietary to its creator and not available to the general public. The app can be developed and deployed on the internet. On the other hand, a dApp developer working on the Ethereum blockchain uses a programming language called Solidity to create smart contracts. Smart contracts are simply a set of rules or instructions that must be followed for the particular application. Terms of the smart contract are automatically fulfilled by the relevant parties. The code for a smart contract is open-source. This means that all nodes on the blockchain network have access to the code and can freely implement it. A frontend interface is usually created that will allow the user to connect with the smart contract on the blockchain.
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 dApp’s 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.
Conclusion
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.