For a long time, software products have been a key factor in making services more accessible to the public. Think about the number of people who no longer had to outsource simple tasks like typing letters or basic book-keeping when Microsoft Office dropped.
But while software can be amazing when trying to solve problems, it is often limited by the structures and operational ethos of the organizations behind it. Centralized organizations are behind some of the most prominent software on the market, and the downside is quite evident.
For starters, their products can be hard to customize, and focus on solving a specific set of problems. Secondly, many of these products can experience downtime due to failures or attacks on a single point in their structure. This is quite common with Software-as-a-Service (SaaS) products.
Centralization in software delivery also puts users at the mercy of the small group in charge when it comes to sensitive issues like handling users’ personal information. If it’s not stolen by hackers who want a ransom or plan on defrauding customers, it is being sold to people looking to advertise. Bottom-line, software as we know it comes with numerous flaws, and this is where dApps come in.
In this budding era of blockchain technology, one of the most game-changing innovations out there is the advent of smart contracts. Thanks to platforms like the Ethereum, Polkadot, Cardano and Solana blockchains, people can now build their own mini-software on top of this platform.
This new wave is particularly unique in that the software built can execute complex transactions based on pre-set instructions. These programs that we’ve come to know as smart contracts stand out further because they don’t need to be run by a central body. Being built and run on a blockchain means that they are available as long as the blockchain has validators online.
These smart contracts are now being packaged as apps with specific use cases, hence the name dApps to mean decentralized applications. While you might be tempted to believe that dApps are more about hosting mechanisms, and harnessing the power of automation, they are about way more than that.
The primary selling point of dApps is how they use decentralization to reimagine the manner in which services are delivered, particularly the level of autonomy that ordinary people have when transacting with each other. They are perfectly poised to combat the systemic barriers present in traditional businesses and other organizations.
How are dApps revolutionizing software development?
1. Relationship between developers and users
One thing that’s evident about the rise of dApps is that they have strengthened the relationship between developers and end users. With traditional software development, users will occasionally give feedback on the features and functionality they’d like to have.
However, once this information is received, say through customer support, the high-ranking decision makers, usually on the business end can take a different direction. Feedback may be acted upon or sidelined based on a number of factors such as the cost of implementing it, the competitors’ efforts in that area, and the projected impact on revenue.
In the end, we see new versions of software released from time to time, but they lack any significant improvements and seem like they were made without any user input. Dapps attempt to democratize this whole process.
Let’s take the example of decentralized finance (DeFi) protocols like Aave. Whenever there’s a desire to make some improvements, developers who believe in them can get to work while those who don’t can sit it out. Once the upgrades, patches or other changes are ready for deployment, there will be a vote.
Users can surrender some tokens towards voting for or against those changes. In that respect, developers have more control over what they work on, and end users have more control over what is delivered to them.
2. Certainty and flexibility for developers
Decentralization also gives developers more certainty about getting paid, while leaving them with more flexibility in regard to how they work. A developer contributing to a dApp can be paid in the protocol’s native tokens, and not have to go through the trouble of invoicing a particular entity, along with the additional bureaucracy associated with centralized organizations.
They can also choose to split their time between different dApps and alternate their focus depending on which dApp is more aligned with their ethos and goals at the time.
3. Lower chance of human error
Dapps do a great job at lessening the vulnerabilities that come with human intervention in software systems. When being served by conventional centralized businesses, there’s usually some room for an employee to access a system, tamper with records, and even cancel or redirect an initiated transaction.
However, in the case of dApps, once the ball is set rolling, none of the parties involved has a central point of access they can use to alter records. Remember that these dApps are built on a blockchain and therefore, you’d have to attack a whole lot of computers at the same time and do what they are supposed to be doing faster than them.
The average user doesn’t have the kind of hash power and tech-savviness required to change transactions that have already been validated. So once one of the parties has fulfilled their end of the deal, it is now up to the smart contract to execute the other party’s obligations.
In that sense, dApps limit the entry points for attackers, while also offering more visibility since the transactions they execute can be tracked using a blockchain explorer.
One aspect of software development that dApps really shake up is the question of liability. When companies build software, they need to have a clear understanding of the legal implications of what they are putting out. They have to know which eventualities leave them at fault, and also which ones leave the end user at fault.
This issue often results in scenarios where users are unfairly deprived of certain services, or have their rights infringed upon in the name of cooperating with authorities. For example, if the Securities Exchange Commission (SEC) advises crypto exchanges to delist certain assets because they might be securities, a centralized exchange will eventually have to comply. On the contrary, a decentralized exchange (DEX) can approach this differently.
In the case of Uniswap Labs, the official web portal to the app delisted assets, but that was merely because they’d be liable since they were running that front-end. However, the back-end maintained the ability to handle those assets, and those interested could simply opt for another front-end to interface with the protocol.
Dapps also provide more privacy for the user since they don’t have to attach their personal details to a transaction or to their addresses. Most dApps also don’t require users to go through a Know-Your-Customer (KYC) process or some other type of verification.
5. Service availability
Dapps are also pushing the envelope when it comes to service availability. Regardless of the software you use to do things like trading stocks, making cross-border payments, there are always issues around availability.
Stock exchanges have an opening and closing time for weekdays, plus weekends off. The same goes for banks. Furthermore, it is possible to experience downtime due to scheduled system upgrades and other exercises.
In contrast, dApps don’t have to run during a specific window. Their services are available 24/7 and upgrades can be done without disrupting the protocol.
6. Data integrity
Dapps have also shown tremendous potential in quelling concerns surrounding data integrity. We have seen cases of centralized exchanges displaying questionable data on asset prices, trading volumes and a lot more. There have also been some vague excuses following drastic and incoherent changes in these figures from time to time.
But since DEXs replace order-matching systems with automated market makers (AMMs) and dynamic market makers (DMMs), you’re less worried about tricks like wash trading and their effect on the data you see. It is easier to ascertain liquidity when you can view the smart contract holding the assets.
Ultimately, when it comes to the dApp-equivalent of a business’ internally generated data, you can be more confident that what you’re seeing is what’s actually happening. You also have more freedom to adjust variables like slippage, gas fees and so on.
The challenges surrounding dApps
While dApps bring a refreshing twist to software development and delivery, they are not without their perils. Firstly, smart contract code just like any other code can have vulnerabilities too. Many protocols are rushed and don’t go through rigorous auditing.
This is partly why there have been numerous flash loan attacks, bugs wrongfully distributing community tokens as was the case with Compound recently, and plenty of other DeFi hacks. Let’s not forget that there are still many projects out there with horrible token distribution that sets up retail users for a rug-pull by the larger token holders once the token value increases significantly.
And while this is not a technical issue related to code, it still something that developers have to factor into their work.
Secondly, most of the prominent dApps out there are running atop blockchains that are still struggling to provide affordable transaction processing at scale. Layer 2s, proof-of-stake, sharding and many other solutions are already in play, but gas fees still spike when activity surges. Subsequently, the services provided by these dApps cease to make business sense for anyone other than the whales.
Nevertheless, there are over 3000 dApps on the Ethereum blockchain alone, and dApps are handling hundreds of thousands of transactions daily. Within such a short time, they have clearly earned their space in the future of software development.
Dapps will continue to highlight and work around the inefficiencies and weaknesses of centralized organizations, championing autonomy, permissionless-ness and immutability among other qualities.