Decentralized applications (also known as “dapps”) provide services similar to those offered by typical consumer applications, but they use blockchain technology to grant users more control over their data by eliminating the need for centralized intermediaries to manage the data, thus making the service “decentralized.”
Digital apps are ubiquitous in today’s world. Consumers use apps for sending email, paying for parking, finding dates and myriad other use cases. Under conventional models of control and ownership, consumers usually hand over personal data to the company providing the service. With a decentralized app, users theoretically gain more control over their finances and personal data since they don't have to trust anyone else to store and secure the information. However, some experts are skeptical this will work in practice.
But there has been progress. Hundreds of dapps exist today on Ethereum, ranging from a Twitter replacement to a decentralized virtual reality game. Many are slow and difficult to use, but they give a taste of the potential for decentralized apps in the long term. 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.
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 impossibile.
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.
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.
What challenges do dapps face?
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.
How do developers create decentralized apps?
Authored by Alyssa Hertig