What are Decentralized Apps?
Since Bitcoin launched more than a decade ago, blockchain protocols are constantly being developed and refined to unlock new functionalities and use cases. Now there is a budding industry of decentralized applications (dapps) built on blockchain — everything from finance to gaming to web browsing to collecting art.
Decentralized applications (also known as “dapps”) deliver services similar to those offered by typical consumer applications, but they use blockchain technology to provide users more control over their data by eliminating the need for centralized intermediaries to manage the data, thus making the service “decentralized.”
This new model for building massively scalable and profitable applications is emerging. Bitcoin paved the way with its cryptographically stored ledger, scarce-asset model, and peer-to-peer technology. These features provide a starting point for building a new type of software called decentralized applications, or dapps. dapps are gaining media coverage and will receive wider adaption then then the most currently used web apps of today. dapps provide increased flexibility, transparency, resiliency, and have a better incentivized composition than existing software models.
One of the main goals of the founders of Ethereum, (After Bitcoin, Ethereum is the second-largest cryptocurrency by market capitalization. It is the most actively used blockchain), was to make these kinds of apps easier to create. They still face challenges in trying to make that happen.
Thousands of dapps exist today on Ethereum, ranging from a Twitter replacement to a decentralized virtual reality game. Developers hope Ethereum 2.0, a long-awaited upgrade that officially started being rolled out on Dec. 1, 2020, will ease these problems in the coming years.
Decentralized vs Centralized Applications
A software application is software that defines a specific goal. There are millions of software applications currently in use, and the vast majority of web software applications follow a centralized server-client model. Some are distributed, and a select few novel ones are decentralized.
Currently centralized systems are the most widespread model for software applications. Centralized systems directly control the operation of the individual units and flow of information from a single center. All individuals are directly dependent on the central power to send and receive information and to be commanded. Facebook, Amazon, Google, and every other mainstream service we use on the Internet uses this model. Let’s call these huge services “The Stacks.” The Stacks are useful because they provide a valuable service to us, but they have immense flaws. Which we will touch upon at a different time.
While the internet channels huge amounts of data through massive, centralized servers, a blockchain represents hundreds or even thousands of machines that share the transactional burden over a distributed network. On the front end, decentralized apps and websites use the same technology to render a page on the internet. However, on the back end, dapps communicate with their respective blockchain networks through a “wallet,” which serves as a bridge to the blockchain ecosystem.
Wallets manage your blockchain address and the cryptographic keys necessary to identify and authenticate yourself. Instead of using the HTTP protocol to communicate with the blockchain, dapp wallets trigger smart contracts that interact with the blockchain and execute transactions. A dapp, then, is the front-end user interface that communicates with smart contracts that transact on the blockchain, at which point the distributed network of nodes that makes up the blockchain validates and confirms the dapp data. While a well-designed decentralized application user experience may not seem so different from a web app, it differs from the latter in that it lacks servers, HTTP, and potential censorship.
Decentralized and distributed:
Distributed means computation is spread across multiple nodes instead of just one. Decentralized means no node is instructing any other node as to what to do. A lot of Stacks such as Google have adopted a distributed architecture internally to speed up computing and data latency. This means that a system can be both centralized and distributed.
Yes, a system can be distributed and decentralized. Bitcoin is distributed because its timestamped public ledger, the blockchain, resides on multiple computers. It’s also decentralized because if one node fails, the network is still able to operate. That means that any app that uses a blockchain alongside other peer-to-peer tools can be distributed and decentralized.
Centralized systems can be distributed as well. Software applications that are able to achieve decentralized consensus are a real innovation.
The dapp space is an emerging field with a lot of smart people still experimenting with new models. Different developers have different opinions on what exactly a dapp is. Some developers think that having no central point of failure is all it takes and some think that there are other requirements.
How does a Dapp work?
Dapps built on Ethereum use blockchain technology under the hood to connect users directly. Blockchains are a way to tie together a distributed system, where each user has a copy of the records. With blockchains under the hood, users don’t have to go through a third party, meaning they don’t have to give up control of their data to someone else.
By their nature, centralized entities have power of the data that flows into and out of their networks. For example, financial entities can stop transactions from being sent, and Twitter can delete tweets from its platform. dapps put users back in control, making these kinds of actions difficult if not impossible.
There isn’t one agreed-upon definition of a dapp as it’s a relatively new concept. But the key characteristics of a dapp include:
- Open source: The code is public for anyone to look at, copy and audit.
- Decentralized: Dapps don’t have anyone in charge, so no central authority can stop users from doing what they want on the app.
- Blockchains: If there isn’t a central entity, then what’s holding the app together? Dapps use an underlying blockchain (such as Ethereum) to coordinate instead of a central entity.
- Smart contracts: Decentralized applications use Ethereum smart contracts, which automatically executes certain rules.
- Global: The goal is for anyone in the world to be able to publish or use these dapps.
What are dapps used for?
The Ethereum white paper published by Ethereum creator Vitalik Buterin in 2013 splits dapps into three main types:
- Financial apps: These are applications where money is involved.
- Semi-financial apps: Decentralized apps that involve money, but also require another piece, such as data from outside the Ethereum blockchain.
- Other apps: Every other type of decentralized app developers are looking to create, including online voting and storage apps.
What are the features of any profitable dapp should have?
- Open Source: Open sourcing a dapp changes the structure of its business practices so that the internet is common denominator instead of a chain of close silos.
- Internal Currency: How is an open source dapp developer supposed generate income? They allocate scarce resources in the network using a scarce token, an appcoin. Users need this appcoin to use the network. Owners of scarce resources get paid in appcoins.
- Decentralized Consensus: The blockchain’s innovation is decentralized consensus. If your app needs some feature that requires everyone else to agree on something, you should use a blockchain.
- No Central Point of Failure: Dapps can’t be shut down, because there is no server to take own. Ata in a dapp is decentralized across all of its noes. Each node is independent, if one fails, the others are still able to run on the network.
Financial applications are popularly known as DeFi applications, short for “decentralized finance.”
The idea is to use blockchains (especially Ethereum) to improve more complex financial applications – such as lending, wills and insurance – and stablecoins, alternative coins that aim to stabilize cryptocurrency prices.
The second type of app is similar, but it mixes money with “a heavy non-monetary side” as Buterin puts it in the Ethereum white paper.
Buterin gives the example of Ethereum developers setting up “bounties,” rewards that can only be unlocked if someone accomplishes a task. In western movies, bounties are doled out to outlaws able to catch a person or criminal. But, in this case, they are rewarded for far less dangerous tasks, such as solving a difficult computational problem.
The magic here is the smart contract is (in theory) able to tell if the bounty hunter has provided a working solution, only disbursing the funds if this condition is met.
Another example is a crop insurance application that’s dependent on an outside weather feed. Say a farmer buys a derivative that automatically pays out if a drought wipes out her crops.
These smart contracts rely on so-called “oracles” that relay up-to-date information about the outside world, like how many inches of rain fell last season.
The major caveat, though, is that many developers are skeptical oracles can be used in a decentralized way. Users have to trust that the data feed is providing the correct data, and not gaming the data for their own financial interest.
Other applications: DAOs and beyond
Ethereum is a flexible platform, so developers are dreaming up other ideas that don’t fit into the usual financial classifications.
One example is to use this approach to create a decentralized social network that’s resistant to censorship. Most mainstream social apps, such as Twitter, censor some posts, and some critics argue those social apps apply inconsistent standards about what content is censored or “downranked.”
So, with a decentralized app like Peepeth, once you publish a message to the blockchain, it can’t be erased, not even by the company that built the platform. It will live on Ethereum forever.
Some have explored taking this idea of decentralization even further. If Bitcoin can do away with financial authorities, is it possible to do the same for companies and other types of organizations?
Decentralized Autonomous Organizations (DAOs) are one particularly ambitious breed of dapp that attempts to answer “yes” to that question. The goal is to form a leaderless company by programming rules at the beginning about how members can join, vote, how to release company funds and more. Once launched, the DAO would operate under these rules indefinitely.
Dapps are early, experimental, and developers have yet to solve several crucial problems with the underlying network holding them back. For one, dapps can be very expensive to run when Ethereum grows more congested with users. Although traditional apps sometimes have issues with scale, those issues are exacerbated in a decentralized environment, which by its nature can’t operate without a certain level of cooperation and coordination among multiple stakeholders.
The Future of Decentralized Apps
Although Bitcoin can arguably be called the first dapp, Ethereum has since become the primary growth driver of the dapp ecosystem. Mainly because of its smart contracts, network effect, and user base. As the decentralized finance (DeFi) market expands its use cases and adoption, dapps present an essential launching point to new audiences by deploying user interfaces that emulate conventional web applications while accessing the new capabilities of blockchain. In doing so, dapps are in many ways expanding the functionality of the internet through blockchain.
Irrespective of the underlying blockchain use, interest in dapps is growing fast — and the movement has only just begun. As blockchain continues to develop at a speedy pace, it’s probable that finance, gaming, online markets, and social media will all become blockchain-based dapps.