A reporter asked me these questions the other day, and I quickly banged out this response. I thought it was interesting enough to share with all of you.
What are dApps and how do they work?
A dApp is a decentralized application that provides a specific function, that you are in control of, and not just a temporary user. One way to think of a dApp is like driving a car instead of taking a train. Where you drive the car, who drives it, what kind of gas you put into it, and what you carry with it, is up to you to choose. A train runs on a track, requires a ticket to use, and has other restrictions as to what you can do on it.
Where you drive it, in a dApp, is akin to what services you choose to connect your dApp to. Who drives it, relates to the identity provider you use, sometimes called a public key or crypto wallet. What kind of gas, well, that almost has a near parallel to “gas fees” on distributed ledgers or blockchains – the cost of computation and storage, and with a dApp, again you have a choice. Finally, you choose what to carry – what data you have, and where you take it, is in your control.
Decentralization alone is a word to also consider, and the amount that a dApp is actually designed to not rely on central services can greatly vary. As we’ve seen to many times, dApps and related services that claim to be “on chain” often still rely on brittle bottlenecks. Ultimately, if a dApp can still function when the user gets a new “drivers license”, and it buys gas from a new gas station, then it is truly decentralized.
What are the most common or typical kinds of dApps?
Just the an application or “app”, what kind of functions and features a dApp can provide can greatly very. A simple dApp might be a news reader, podcast or music player, or social media app (like a Mastadon client). A more complex app might utilize a wallet for signing in with credentials, store data on something like IPFS or Filecoin, and tap into smart contract and compute services on Ethereum. A dApp could even power a governance structure for a decentralized autonomous organization (DAO), and handle functions like voting on how to spend funds.
The most popular dApps today are related to the direct task of managing tokens, chains, wallets, and so on. After that, come NFT marketplaces and games, some of which have become very popular in the last year or two, and offer incentives to participate through cryptocurrencies and blockchain transactions.
The work we are doing at Guardian Project is focused on bringing mobile app stores into the decentralized web. We are building a dApp to distribute mobile apps and dApps. This is work we’ve done for many years in the mobile space with F-Droid, already in a decentralized way, and we are now moving the way software applications are stored, verified, and distributed onto IPFS and Filecoin.
Our second project is ProofMode, which utilizes mobile camera apps, web dApps, Filecoin storage and blockchain notarization services, to create a global system for photo, video, and audio verification and chain-of-custody. With our partners at Starling Project, this work has already been used to document potential war crimes in Ukraine, that were submitted to the International Criminal Court as a cryptographically verified evidence dossier.
Why would someone use a dApp and what are they good for?
In theory, dApps are just as good at what they do as a more traditional web, mobile, or desktop app. The difference is that if the provider of the dApp decides to stop using it, or any of the services that it builds on are blocked or shutdown, there should be less of an interruption for the dApp user. Data should be portable between services, and the functionality should be able to be utilized with a new host. Again, not all dApps are created equally decentralized, so any user should do their research before adopting one.
What else should someone know about dApps?
Just like the term application or “app”, what a dApp is, how it is built, distributed, and secured, is constantly changing. That said, the primary value of a dApp is that you, as the user, should be in control, of data and functionality. You may not actually know when you’ve switched from using an App to a dApp, but you should always be trying to find services that support the core values of a dApp – you should be in control of your data and identity, and have the ability to drive you car where you’d like it to go!