What is a decentralized application (dApp)?
The beginner’s guide
A decentralized application (dApp) is a community-managed software application running on a distributed network.
DApps are similar to traditional apps, with some key differences. Unlike traditional companies that host applications, such as Alphabet, Snap Inc. or Meta, dApps are typically maintained and hosted by a more distributed network of participants.
dApps connect their users directly with each other using blockchain technology and smart contracts. These innovations have allowed dApps to replace the role of an intermediary company with lines of computer code instead. This computer code powering the dApp is configurable for different use cases and publicly available for anyone with an internet connection to see.
Applications have become an integral part of peoples' everyday digital lives, from ordering taxis to tracking packages and booking theater tickets. While these services are convenient, the traditional applications we use on our smartphones and other devices have a lot of fundamental drawbacks:
- Apps are created and controlled by centralized, profit-driven companies. These companies typically charge a fee or harvest their users' personal data to generate revenue (like many e-commerce or social networking sites).
- Some apps are only available to users in select countries or regions.
- Companies can remove users from apps or freeze their accounts without warning.
- Companies often require their users to submit personal information such as email addresses, cell phone numbers, bank details, etc. in order to create accounts.
- Users must place their complete trust in the companies behind the apps to properly secure and manage their personal data and sensitive information.
dApps have emerged as a peer-to-peer alternative to standard applications, which are free from the interference of intermediary companies. dApp users offer and accept services directly between one another — often meaning no commission fees, no monthly charges, and no data harvesting is required to execute a service.
Additionally, most dApps are free to use, available to anyone in the world, and censorship resistant.
Finally, dApp users themselves often play an important role in maintaining the security of the network by running their own node. They can also be invovled in the governance of the protocol and determine the future strategic direction of the project.
What are dApps used for?
Developers can create dApps to provide a wide variety of services, from online marketplaces like Origin to video streaming platforms like Livepeer. Feasibly, any existing application today can be transformed into an autonomous, peer-to-peer driven dApp.
The main use case for dApps is removing dependencies on centralized, monopolistic applications. Traditional apps often charge hidden fees and take large cuts from their users.
Let's imagine a number of Airbnb hosts wanted a decentralized room hosting application developed. The intent of this dApp would be to reduce their reliance on a single company to match room providers with room seekers, while also being able to retain more of their profits. All they would need to do is pool funds together and source a reputable team of developers to build the dApp.
Once launched, the dApp would run autonomously, removing go-between fees and allowing hosts to connect directly with their customers. After users connect their web3 wallet, interacting with this sort of dApp could be as easy as using any traditional website or online service.
dApps can also streamline services that are traditionally time consuming due to human-involvement. Think of services such as life insurance. Instead of waiting weeks for a payout, a smart contract could be programmed to release funds immediately once a death certificate had been submitted and verified.
How do decentralized applications work?
For decentralized applications to operate autonomously, they require logic-driven rules in order to perform basic app functions.
Let's say a developer wanted to create a dApp that performed exactly like Uber, Lyft, or any other ride-hailing application. A key app function would be to autonomously connect a driver with a passenger once both parties agree on the fare.
The app would also need a transparent system to record people's transactions and interactions. In order to be truly decentralized, anyone in the world would need to be able to audit the interactions the dApp facilitates.
Additionally, the dApp would need some sort of electronic payment option that would work over a peer-to-peer network.
Furthermore, this network would not require users to submit their personal information, since personal information can be obscured using cryptography.
Finally, since the dApp would be released without any company watching over it, the infrastructure would need to be open-source. Open source code would allow developers from the app's community to make improvements to the protocol post-launch.
Four core components come together to achieve the goals of the dApp:
- Smart contracts
- Blockchain technology
Smart contracts are computer-based code that developers can write to enforce and perform a variety of functions. Smart contracts use predefined rules to automatically execute actions.
Returning to the rideshare example, a smart contract could be set up to dispatch a car to your location only after the smart contract automatically verifies you have enough funds to pay for the ride. The smart contract could also be programmed to know that if you are requesting a ride for six people, it will need to dispatch a vehicle with enough seats for your group.
The smart contract can achieve all of this based on the rules programmed into it, rather than relying on a single individual’s judgment.
This is why many consider smart contracts to simply be a decentralized way of executing business logic. It is also why smart contracts have often been compared to vending machines. With vending machines, if you enter enough money and you make a selection, then you will receive the item you selected.
Once programmed and deployed, smart contracts (like vending machines) do not require any intermediary to execute their rules. They are trustless mechanisms that developers can use to remove human-intermediaries from the execution of agreements, making them perfect for autonomous platforms. Despite the absence of human involvement when executing agreements, authorized developers may still make some periodic engineering updates to keep the application secure and interoperable with other platforms.
Blockchain technology is a type of transparent, distributed database of information that serves as the underlying technology behind the Bitcoin protocol and various other types of cryptocurrencies. Bitcoin's blockchain tracks transactions of its own cryptocurrency, but other blockchain networks like Cardano, Solana and Polkadot can track all kinds of other information beyond transactions.
Traditionally, a single company such as a bank manages a central ledger of transactions, account information, and other data. A blockchain, however, relies on a global network of volunteer participants, called "nodes."
Anyone with an internet connection can become a node and help manage a blockchain network. This ability for anyone to join and participate in maintaining information is what gives blockchain’s one of their defining characteristics of being decentralized. The blockchain itself helps to maintain agreement on the validity of information stored on each of these nodes thanks to a special feature called a consensus mechanism.
Blockchain networks allow users to maintain a degree of anonymity when transacting. This is because tasks are executed through cryptographically-generated addresses, known as a public key.
No personal data is required to sign up — dApp users simply need to connect their crypto wallet keys, which are a string of randomly generated letters and numbers called an alphanumeric code. If you are interested in learning more about the cryptography powering cryptocurrencies, you can read out article How do cryptocurrencies use cryptography?
One of the biggest advantages of blockchain ledgers is their immutability, meaning once verified data is added to the ledger, it cannot change it — only updated. Information published on the blockchain is also censorship-proof and publicly available to anyone with an internet connection.
Finally, instead of keeping one copy on a single server, information stored on a blockchain is copied and distributed to all participants in the network. This feature removes any single point of failure and makes blockchain networks difficult to compromise — particularly as the network grows.
Cryptocurrency provides a means of transferring value in a peer-to-peer way using a blockchain network. These non-physical tokens can be purchased via a platform like Kraken, earned from crypto mining, or withdrawn from cryptocurrency ATMs. Investors hold their cryptocurrencies in a personal digital account, called a cryptocurrency wallet.
Within dApps, cryptocurrencies can facilitate payments for things like purchasing services or goods. Alternatively, they can also allow holders to participate in on-chain governance.
Governance tokens grant holders voting powers over how a dApp is managed and developed. The more governance tokens a person has, the more weight they carry in the voting process.
Most dApps require external data to function correctly. After all, not all the information blockchains track actually originates on the blockchain itself.
A decentralized prediction market, such as Augur, for example, will need to source accurate, live information from non-blockchain based sources to settle bets. To source this data without relying on a single entity, blockchains use an automated service called an "oracle".
Oracles such as Chainlink and Band Protocol directly feed data to dApps via an API instead of a single third-party. This allows data from non-blockchain sources to be brought into dApps in a reliable but still decentralized way.
DApps use this data to create and satisfy conditions programmed into smart contracts, significantly expanding the utility of decentralized applications.
Decentralized finance (DeFi) & decentralized applications (dApps)
In recent years, the advancement of dApps has led to the creation of the decentralized finance (DeFi) sector. This term refers to an ecosystem of dApps that provide a range of peer-to-peer financial services, including token swapping, lending, borrowing, and insurance.
These autonomous applications allow anyone to effectively become their own banks. People can loan their own assets out to a global pool of traders and borrowers, and collect interest for doing so. These financial services, including Uniswap, Curve, Aave and others, are enforced by automated smart contracts, meaning users don't need to place any trust in counterparties to honor their commitments.
To take out a DeFi loan, a user must deposit a sufficient amount of collateral into a particular crypto wallet address. These funds are controlled exclusively by the smart contract which immediately reimburses the lender if the borrower defaults on their loan repayments.
This functionality provides complete protection and assurance for the lender and means they can confidently do business with anyone in the world. For borrowers, they can gain access to capital without needing a credit rating or extensive documentation. This advantage is vitally important for unbanked citizens in developing countries who otherwise would have no access to financial services.