DApps are decentralized applications running on blockchains. How do they work, and what are they used for? Here are some explanations.
What is a dApp?
Unlike traditional applications running on centralized systems (such as a server, a cloud platform, or a centralized network), a dApp or decentralized application is an application that runs on a decentralized system, such as a blockchain. All parameters of a dApp, from code execution to data storage to data distribution over the network, are managed in a decentralized manner.
“Normal” applications are centralized
One must already understand the recurring problems of centralized applications to understand the interest of dApps:
- Source code is not always accessible. More than a simple geek’s whim, access to the source code allows to make sure what is going on under the hood. That’s how, for example, you can be sure about what Mozilla Firefox or Brave Browser does: the code is open source. If the browser sent your personal data around, it would be a scandal within a few hours of the update. The same serenity is desirable for anything that is related to financial services or to your data.
- They are not autonomous: they require a central entity to operate them
- They are not transparent: data is rarely publicly accessible
- They are not fault tolerant by nature. Even if after a lot of effort, it is possible to make an application resilient (Google doesn’t crash every 3 days), it requires a specifically designed structure, a rigorous development process and lots and lots of work.
- They are sensitive to censorship. Any entity that operates a platform can censor or have censorship imposed on it.
And the light was
The proof of work, invented by (no longer introduced) Satoshi Nakamoto, allowed the advent of the very first dApp: Bitcoin. A distributed and decentralized version of historical monetary systems, Bitcoin is the first currency to be autonomous, transparent, and fault-tolerant by design. It is virtually impossible to hack Bitcoin, as it would involve hacking more than half of the network’s nodes. Even the developers of the Bitcoin protocol do not have control over it, because they do not have the ability to impose their updates on all the nodes in the network. This is the origin of Bitcoin’s forks, such as Bitcoin Gold or Bitcoin Cash.
But the story doesn’t end there, because a second genius came to add his stone to the building: Vitalik Buterin, the inventor of Ethereum. His idea is brilliant in its simplicity: what if, instead of setting up a blockchain every time you want to create a decentralized application, you simply allow developers to run code and store data directly on the blockchain? Thus, was born the Ethereum project, the first decentralized application platform.
Via smart contracts (which are, in fact, code), developers can design decentralized applications on Ethereum without having the heavy task of creating a blockchain from scratch to support their executions.
How do dApps solve the problems of centralized applications?
Decentralized applications are:
- Open source in nature: the code of contracts is public and accessible to everyone. Everyone can check what they are committing to by using a decentralized application.
- They are autonomous because they run on the blockchain
- They are transparent (as much as the blockchain on which they are executed)
- They are fault tolerant (like the blockchain)
What are decentralized applications used for?
Concretely, for everything. They are particularly interesting when a central authority poses a problem (whether technical, political, financial, or other).
Here are some examples:
- The management of domain names is currently regulated by ICANN, an American organization. A new protocol is emerging on Ethereum
- Value capture by platforms in many industries. We can’t count them anymore: social networks, buyer/seller platforms (Uber, AirBNB, LeBonCoin, Ebay, etc), marketplaces, etc. Decentralized applications make it possible in many cases to do without trusted intermediaries
- Certification authorities that issue certificates (allowing for example HTTPS encryption)
- Casinos or online gaming systems (which need transparency to gain the trust of users)
- Publishing platforms sensitive to censorship (like Wikileaks, ThePirateBay, etc)
- Payment systems (cut out the middleman for better efficiency and price)
- Online voting systems
- Crowdfunding platforms
- Online betting platforms
- Insurance systems
We are only at the very beginning of the decentralized internet. It’s possible that many of the systems we use will be offered decentralized, more reliable, and cheaper alternatives in the coming decades. If the cryptocurrency world is the first to benefit (read: Decentralized exchange Uniswap’s volume surpasses Coinbase), the uses are bound to spread, sooner or later, to the industrial world. When a central authority is not relevant for this or when alternatives to it can be found.
On which platforms do decentralized applications run?
There are several platforms for dApps today.
If the oldest and most robust one remains Ethereum, today, EOS, TRON, NEO, among others, are also functional and have managed to capture a small share of the market (mainly for reasons of risk reduction: some dApps have an interest in spreading themselves over several platforms to ensure their operation in case of congestion of one of them). The most serious competition to Ethereum is likely to come with the advent of Cardano’s Goguen era, which will introduce smart contracts on this platform known for its security and robust development.
Would you like to build your own DApps? Contact our experience blockchain expert today.