Decentralized applications (dapps) are software programs whose operation is maintained by a distributed network of computer nodes instead of a single server.
The best way to understand dapps is through a comparison against regular web applications.
DApps vs. Traditional Web Applications
Normally, all web applications have a front-end side and a back-end side. The front-end is also called client-side and is what users see when they interact with a website. Simultaneously, the back-end or the server-side is the application’s data access layer, representing the behind-the-curtains mechanism that gives the website its functionality.
The Server-side
An analogous way to think about this is to picture web applications as cars. If a car were a web app, its front-end would include the dashboard, the steering wheel, the windshield — basically everything the driver sees while inside the car, while the back-end of the car would be the engine that propels it forward.
The Client-side
On the client-side of things, regular apps and decentralized apps look the same. Just like one could drive a car without understanding the intricacies of combustion engines, one could also navigate a website like Netflix or Amazon without understanding how it works in the background.
The main difference between decentralized applications and regular web applications is that both the back-end and front-end of regular apps are hosted on a single server. In contrast, the back-end of dapps is hosted on a distributed network of synchronized servers (computer nodes) scattered all over the globe.
While decentralized apps saw a massive resurgence in popularity only after the Ethereum network went live, it’s important to understand that dapps don’t necessarily need to run on top of blockchains.
In fact, the first decentralized application, a pioneering peer-to-peer online file-sharing software called Napster, was founded in 1999 — or ten years before the first blockchain was even invented. Other examples of dapps that run on peer-to-peer networks but not on blockchains are the popular file-sharing service BitTorrent and the privacy-focused open-source browser Tor.
Understanding Decentralized Applications
Despite the examples mentioned above, when one talks about decentralized applications today, the term is almost exclusively used in the context of dapps running on blockchains.
Ethereum
The first blockchain to support decentralized applications is Ethereum — a next-generation smart contract and decentralized application platform designed as a reaction to Bitcoin’s minimal programmable capacities.
Besides having a native cryptocurrency, Ethereum is also a Turing-complete protocol that runs and executes scripts like a conventional computer. However, the Ethereum Virtual Machine is a distributed computer whose state at any given moment is perfectly defined by a consensus algorithm.
Decentralized applications built on the Ethereum network are made possible through smart contracts, which are essentially pieces of code stored, verified, and autonomously executed on a blockchain. What makes these contracts smart is that once signed, they execute automatically and according to their predefined terms, thus eliminating the need for a third party to monitor and verify their completion.
In that regard, decentralized applications can be thought of as a bunch of interoperable smart contracts working in the background of the same user interface. In terms of functionality, dapps can theoretically provide the same service and the same user experience that regular apps do, while at the same time exercising the full advantages of decentralization like transparency, open access, constant uptime, and censorship-resistance.
The Benefits And Drawbacks Of Decentralized Applications
When analyzing the benefits and drawbacks of decentralized applications, one should never confuse the starting and endpoints of innovation. The technology is still very nascent; Ethereum came into existence only six years ago, and decentralized apps only became widely popular in the last two years. Many of the current drawbacks of decentralized applications can be considered more circumstantial than inherent, meaning that many of the current problems won’t necessarily be present in the future.
Benefits of DApps
Zero downtime — One of the biggest benefits of running applications on distributed computing networks is that when one node leaves the network or a component fails, all remaining units are still functional and able to take over the extra work. This way, once the smart contract at the heart of the app is deployed on the blockchain, the application will continue running uninterrupted for as long as the network is alive. Furthermore, due to their decentralized nature, dapps are resistant to a broad range of security threats, including DDoS attacks, SQL injections, XML bombs, and cross-site scripting, which isn’t the case with regular apps.
Censorship-resistance – Again, because they run on top of open and permissionless networks, no single entity has the power or the authority to block users from accessing or deploying decentralized applications.
Privacy — In general, users can freely interact with decentralized applications using only their cryptocurrency wallet without providing or disclosing any personal identifying information.
Transparency — Since decentralized applications run on public and transparent blockchains, all of the data, including the source code of the dapp and all inbound and outbound transactions, is also transparent and publicly available. This adds an additional layer of security because all on-chain behavior is perfectly verifiable, and the dapps’ code can be reviewed and audited by anyone at any point in time.
Drawbacks of DApps
Challenging to build — The immutability of smart contracts makes building and designing dapps especially difficult. Developers need to extensively plan and future-proof dapps right from the inception because once they deploy the underlying smart contracts, making changes to them is impossible. Furthermore, dapps are built using Ethereum’s native programming language called Solidity, which isn’t something developers learn unless they’re exclusively interested in building dapps on the platform.
Inferior user experience — In general, decentralized applications provide a more inferior user experience than their centralized counterparts. For one, due to the infancy of the technology, they’re significantly harder to navigate even for more tech-savvy people. To make things worse, all blockchain transactions are irreversible and final, which leaves no room for mistakes. If a user makes a wrong transaction on a dapp, there’s little to no recourse offered, and errors can cost users dearly.
Costly to use — Making a transaction on a decentralized application requires paying a network transaction fee. This transaction fee, calculated in Gas (Ethereum’s native pricing unit) and settled in ETH, goes directly to miners who maintain the blockchain network the dapp is running on. In times of high congestion, simple peer-to-peer transactions can cost anywhere between 2-5 dollars, while peer-to-contract transactions like token swaps on decentralized exchanges can cost upwards of 20 dollars.
Slow — Aside from being expensive, dapps are also incomparably slower than regular apps. This is because blockchains using the proof-of-work consensus algorithm take time to settle transactions and mine new blocks. The average block time on the Ethereum blockchain is 13.3 seconds. The throughput capacity of the network is roughly 15 transactions per second, which is way below that of centralized applications. This means that when the usage exceeds the network’s settlement capacity, the blockchain becomes congested, and transactions cost more and take longer to settle. In that case, unless the users pay an extremely high gas fee, their transactions may take hours to settle or may even end up rejected by the network.
Prone to bugs and hacks — Smart contract execution risk is definitely at the top of the list. While the deterministic and autonomous execution of code and the immutability of blockchains do have their security advantages, they can wreak havoc if done wrong. Even the smallest coding errors can result in severely malfunctioning smart contracts, and the most unnoticeable design errors can lead to damaging exploits such as loss of funds locked in the contracts or congestion to the point of unusability. While code audits from reputable auditing firms certainly provide some solace to the average DeFi user, some degree of uncertainty remains.
Popular Decentralized Applications
Decentralized Exchanges (DEXs)
Decentralized exchanges and token-swap protocols are the most used decentralized applications in the cryptocurrency space. Decentralized exchanges utilize smart contracts to mitigate the need for trusted intermediaries to custody funds, which lowers the risk of exchange hacks and the stealing of custodial funds. All transactions on decentralized exchanges are either peer-to-peer or peer-to-contract, and the funds go directly to the users’ wallets.
Instead of relying on order books to quote prices and execute transactions the way centralized marketplaces do, decentralized exchanges use Automated Market Makers or AMMs. AMMs are protocols that use smart contracts to create liquidity pools of tokens and pre-set algorithms or mathematical formulas to determine the pricing.
Some of the most popular decentralized marketplaces in the space are Uniswap, Curve, Balancer, SushiSwap, DODO, Bancor, and Kyber.
Besides simple token-swap protocols, other decentralized applications in this category create and allow for the trading of more sophisticated financial instruments like derivatives and synthetic assets. Some of the most popular dapps that support synthetics are Synthetix, Hegic, Opyn, Erasure, and MCDEX.
Lending and Borrowing Dapps
Decentralized lending and borrowing dapps are the second most widely used DeFi applications. The dapps in this category allow users to lend or borrow crypto assets against crypto collateral — all without any restrictions such as background credit checks or KYC.
The two most popular dapps of this type are Compound and Aave. Compound is an AMM that automatically matches borrowers with lenders and calculates the interest rate based on the ratio of borrowed to supplied assets. Aave, in addition, allows users to experiment with flash loans, rate switching, and unsecured borrowing.
Learn more about DeFi: What are Flash Loans?
Yield-farming Dapps
Yield-farming dapps are essentially automated decentralized investment funds that, instead of human fund managers, leverage smart contracts to aggregate and allocate capital.
The idea of yield-farming dapps is to automate the process of yield farming, which in simple terms means stacking or locking up capital in various DeFi protocols in return for rewards. These dapps offer a hands-free approach to crypto investing and benefit users by allowing them to socialize the gas (transaction) costs.
Users don’t necessarily need to understand how a specific yield-farming dapp’s strategy works in the background — they simply stake cryptocurrency in the dapp and earn yield passively.
The most popular dapps in this category are Yearn Finance, Harvest Finance, Pickle Finance, and Set Protocol.
Decentralized Autonomous Organizations (DAOs)
Decentralized autonomous organizations or DAOs are precisely what their name describes. Instead of relying on humans and typical hierarchical management structures to operate, DAOs leverage smart contracts to autonomously execute decisions.
While DAOs can have many functions, the most important one is that they allow dapps users to govern in a decentralized manner. The cryptocurrency space innovates and moves at breakneck speed, forcing dapps to innovate and change if they ought to keep up and stay relevant. However, to innovate and evolve, dapps need to make decisions that can’t come from a single person or group, as this would go against the core value of decentralization.
To solve this issue, dapps form DAOs that, amongst other things, allow users to vote for and propose protocol changes, create non-custodial treasuries to fund future development, and give users certain rights or distribute ownership shares to the dapp.
The Future of Decentralized Applications
Perhaps the most crucial advantage dapps have over regular apps is permissionless innovation. Because decentralized apps are entirely open, and in most cases, free of controlling parties, they allow developers to create, experiment freely, and advance the space in organic and unexpected ways.
Furthermore, since dapps aren’t burdened by trade secrets, copyrights, trademarks, or patents, they effortlessly facilitate combinatorial innovation, which means that the entire space can benefit from individual progress that builds on the efforts of others.
The future of decentralized applications is undoubtedly bright—every imaginable metric points to it.
The speed at which current dapps are innovating and new dapps are being built is nothing like this space has ever seen before. The total value locked (TVL) in DeFi protocols is approaching $13.43 billion, which marks a staggering 2000% year-to-date increase, up from just $650 million locked at the beginning of the year. The number of new dapp users, as measured by the number of unique wallet addresses interacting with DeFi protocols, also skyrocketed from 10,000 to over 620,000 in just 2020 alone.
If the next year looks anything like 2020, then there’s a real chance decentralized applications will hit the mainstream and attract institutional money, like Bitcoin already did.