Imagine leasing out un-utilized space on your computer’s hard drive to businesses and people around the world and making profits in return. Or think about a social app or a database hosting confidential information, which are almost cent percent secure from the threat of hacking or data theft. Or you could be toying with another big idea. Blockchain has opened up many new possibilities and what we have seen so far is just the tip of the iceberg.
Welcome to the world of dApps! You must be already wondering, “Well, what are dApps?” For starters, Decentralized Applications are a new type of software applications that are not owned by a central authority, and more importantly cannot be shut down by anyone, and does not undergo downtime. They are open-source software that use smart contracts to run transactions on a blockchain.
A decentralized application (Dapp, dApp or DApp) is an application that is run by many users on a decentralized network with trustless protocols. They are designed to avoid any single point of failure. They typically have tokens to reward users for providing computing power.”
In this article, we will discuss the following aspects of DApps:
- what are dapps?
- key Attribute of Dapps
- Types of dapps
- How Does dapps differ from a Traditional apps
- What are the Key Advantage of dApps over conventional Apps
- How does a dApps function
- How to Build a dApps
- Top platform for Developing dAPPS
What are dApps?
The concept of decentralized apps is still in a nascent stage and as such, it is not easy to provide an all-encompassing answer to questions like, “what are dApps?”. However, from what has been witnessed so far, it is possible to draw out a few of the leading characteristics of these applications.
But first things first – let us take a step back and understand the underlying technology behind dApps, which is blockchain. If you’re familiar with how a blockchain works, you must be aware that it is a ledger of transaction records arranged in ‘blocks’ that are interlinked by cryptographic validation. Each such block is linked to its predecessor and successor and it is impossible to tamper with the data written into a block.
A specific blockchain involves digital storage of consensus between all the parties involved in the chain of transactions, with each transaction being preserved perpetually and visible to everyone in the loop. The critical thing to note here is that this ledger is distributed across multiple nodes and hence, it is neither stored in a centralized location nor managed by one entity.
Keeping in mind the basic features of a blockchain as explained above, it would be easier to understand the following key attributes of dApps:
- Open Source:
Ideally, it must have an autonomous governing system, with all changes decided by the consensus of the majority of users. The code base of the dApp must be available for scrutiny.
All operational records of a dApp must be stored on a public and decentralized ledger (blockchain) to ensure the control does not fall into a centralized authority.
Validators within the blockchain invest work (human effort, computing power and electricity) to verify transactions and add blocks to the chain. As such, it is necessary to incentivize them and the commonly accepted currency is cryptographic tokens.
The community around the decentralized app must agree on a cryptographic algorithm to demonstrate proof of value. For instance, both Bitcoin and Ethereum are currently using Proof of Work (PoW), with the latter also conducting research on a hybrid PoW/Proof of Stake (PoS).
If the above traits are considered, then Bitcoin certainly deserves a round of applause for being the first decentralized app to be developed and implemented. If you need an introduction, Bitcoin is a self-sustaining public ledger that enables efficient transactions without intermediaries and a centralized control entity.
Types of dApps
Based on the blockchain model that is leveraged, decentralized applications can be classified into three categories:
- Type 1:
These dApps have their own blockchain, for example, Bitcoin. Other alternative cryptocurrencies with their own blockchain also fall under this category.
- Type 2:
This breed of dApps leverages the blockchain of Type 1 apps. These decentralized apps are protocols and have tokens necessary for their functioning. The Omni Protocol is the best example of a Type 2 applications. Omni is a distributed trading platform developed on top of the Bitcoin blockchain as a ‘layer’ to facilitate ‘peerless, trustless, and effortless’ exchange of assets or value between parties without involving middlemen.
- Type 3:
Type 3 dApps use the protocol of the Type 2 application. The SAFE Network (Secure Access for Everyone) is an example of a Type 3 dApp. It is a decentralized data storage and communications network that replaces data centers and servers with the additional computing resources of its users. It is an autonomous data network that enables the creation of censorship-resistant websites and applications. It leverages the Omni Protocol for issuing SafeCoins that are then used to allow for its functional aspects.
How Does a dApp Differ from a Traditional App?
Decentralized applications are a significant shift from traditional apps, mainly because of the underlying principle of decentralization that drives the entire lifecycle. Trust and data immutability is another factor that differentiates the two. Unlike traditional apps that have a centralized controlling authority, dApps run on a decentralized blockchain and the data once written on the chain cannot be changed or erased. Therefore, at every stage of the dApp development lifecycle, you need to ensure that you apply the principles of the decentralized network.
Furthermore, in the case of traditional apps, one assumes that once the interface design is completed, the app will run faster since there is less dependency on third parties. On the other hand, when developing a decentralized app, one needs to design for trust and scalability.
Another major difference between the two is the rigor with which a dApp code needs to be tested before it is pushed to mainnet. Since a smart contract cannot be changed once it is launched, it is important to ensure that it is bug-free. This approach of ensuring certainty by maintaining caution is very different from the iterative “fail fast, learn faster” approach followed in the case of traditional app development.
What are the Key Advantages of dApps over Traditional Apps?
It is worth calling out some of the key advantages that these applications have over traditional applications, which are listed in the following section.
- Being decentralized, these apps are tamperproof and the records inherent are unalterable. They are also highly secure and immutable from hacking, intrusions and any other potential sabotage.
- It enables faster payment processing due to the absence of intermediate applications such as
the integrated payment gateway for accepting funds.
- It promotes greater anonymity as these applications do not require users to follow lengthy signup processes.
- It provides reliable data records because users can access the public blockchain to verify transaction information.
How Does a dApp Function?
The above image is an example of dApp Development using Hyperledger Sawtooth and Amazon AWS for deployment.
The functionality of a decentralized app is based on the four criteria or characteristics discussed in the beginning of this article. In a nutshell, it runs as an open-source software implemented on a decentralized blockchain and is fueled using tokens that are generated using an agreed protocol or algorithm.
Because it is open source, anyone can access and contribute to its code. Decentralization adds to the transparency of the application – anyone at any time can refer to the trail of records on the distributed ledger. New records can be added to the ledger using tokens that are mined or pre-mined using a protocol/algorithm.
Steps to Build a dApp
The dApp development process is not as straightforward as the process to build a centralized application or traditional software. The steps to create a decentralized app are discussed in the following sections:
The first step in the dApp development process is to identify the right business use case. The best way to start is to identify the problem and analyze if decentralization is the best way forward. Let’s pick a supply chain case – we want to pay vendors who source our equipment or raw materials immediately as soon as the item arrives. Remember, blockchain comes up with five benefits:
If you are thinking of a problem that you want to solve, two of the above components should be a part of your solution. Do you need encryption? Do you require immutability? Do you want the information to be decentralized or distributed? This is how you need to think about the problem you are solving.
The second step is to create a proof of concept (POC) so that stakeholders understand the idea. Once you have established the POC and demonstrated it to the right people, you need to create visual and technical designs.
You should keep the POC small if you have to create a smart contract or user interface to demonstrate how the end-to-end cycle works. Ensure that it takes no more than 2-4 weeks to complete the POC cycle.
After the POC is completed, start working on the visual and technical designs and identify how the platform will look like. The technology side of the dApp development is crucial as there are multiple Distributed Ledger Technology (DLT) platforms available. You have to ensure that you have picked the right platform based on your requirements of speed, scalability, consensus mechanism and public or private network functionality.
Once the development is completed, first launch it on the test network, scrutinize the code rigorously, and fix any bugs or errors before going live.
Launch your dApp on the production server after you have tested the code and functionality and when you are sure that it will function as per your expectations. Remember, there is no room for errors in the production environment, unlike a traditional app for which you can write the code, deploy the app and then modify it again whenever needed.
In the case of a public blockchain, every action executed on a live smart contract has a certain gas fee associated with it. Therefore, it is essential to ensure that the codes are written efficiently and have no errors.
Top Platforms for Developing dApps
The most popular blockchain platforms for building dApps today are Ethereum, EOS, and TRON. In this section, we will briefly discuss the key features of each of these three platforms.
Ethereum, or ETH, in short, is recognized for ensuring security and enabling true decentralization. However, ETH is not found to great when the need for scalability (the ability to process transactions at scale) becomes paramount. Hence, your development platform is primarily driven by your need.For example, if your need for security outweighs the need for scalability, you may opt for ETH. However, if you’re developing a gaming or gambling app, then ETH is perhaps not the best choice of platform.
EOS is not a truly decentralized platform. Currently, it involves 21 validators or ‘witnesses’ who verify the transactions based on a ‘Delegated Proof of Stake’ consensus algorithm. The validators are paid for voting and thereby securing the network. Validators who do not fulfill duty can be voted out.The obvious advantage is that the process offers scalability as new users can be onboarded much faster in the absence of network congestion. In short, scalability is achieved through a rationalized decentralization. However, the security of the platform is not foolproof as the various nodes may team up to sabotage the system.
Similar to EOS, TRON functions on a ‘Delegated Proof of Stake’ consensus algorithm. It resolves the scalability problem not by attempting to sidechain but by scaling the main chain itself. This also allows it to have a much more transparent cost structure. However, it is not entirely protected as a truly decentralized platform would be. Users can still be locked out if the validators team up.
Cost of Developing a dApp
The cost of developing a dApp depends on several factors such as the vision and goals for the application, expected features and the efforts you would put into the development process. Furthermore, the cost also varies based on the industry for which the decentralized app is built, the complexity, and the number of users who would be interacting with the application at any given time.
A significant portion of the cost is also determined by the development platform, that is, ETH, EOS, TRON or any other. At present, the cost of development is highest for ETH-based apps, which offers superior quality graphics and user interface along with robust functionalities. On the downside, it may take up to six months to develop such an application.
On the other hand, both EOS and TRON are comparatively less expensive and enable faster development cycles involving only a few weeks. However, the obvious trade-offs are the quality of graphics and design features.
When planning the budget for a decentralized app, in addition to the resource cost for consulting and development, you must also plan for the one-time and running costs associated with the platform. For example, ETH maintains a specific pricing policy for deploying a smart contract, data storage and transaction fee. While the first two components are borne by the dApps developer, the third one is borne by users.
On the contrary, EOS follows a different cost mechanism. Here, a blockchain user is not required to pay for using a smart contract. However, bandwidth, CPU, and storage available for a smart contract are based on the staking of EOS tokens. Furthermore, RAM is highly precious and is served by an internal marketplace from where one can purchase RAM for use and then sell it later.
There is no doubt that dApps are creating new opportunities for a large number of industries, including Banking and Financial Services, Logistics and Supply Chain, Business Intelligence, Cloud Storage, Crowdsourcing and more.
For example, Walmart and IBM have me together to work on the Hyperledger Fabric blockchain to track food staples from supplier to shelf. On the other hand, a start-up named Sia has developed a secure blockchain cloud storage app by the same name, which connects users who need file storage with hosts worldwide offering underutilized hard drive capacity, enabling improved economics for both users and hosts.
Similarly, blockchain startup Civic offers its Secure Identity Platform (SIP), which makes use of a verified identity for multi-factor authentication on mobile and web mobile apps without requiring usernames or passwords. With SIP, organizations can save millions of dollars by ensuring identity and data protection.
In spite of the buzz around these evolving possibilities, one must admit that the large-scale adoption of decentralized apps in an enterprise setting is slow and will follow its own course.
Nonetheless, more and more enterprises in the retail, banking, gaming and logistics sectors have moved beyond the exploratory and “what is dApp” stage and are taking the lead and developing their own Decentralized Applications to either streamline processes, enhance security or improve the user experience. It is only a matter of time that these applications will take to the mainstream.
We hope that this write-up on dApps has provided you with a basic understanding of the various aspects of decentralized applications built on blockchain technology. If you have a business case or an idea for a dApp that you want to explore further, get in touch with us and our team can help you make the right decision.