Essentially, with a dApp, you add a letter and subtract the middleman because dApps directly connect users and providers. The “d” stands for decentralized, so when you put that in front of “app” you have an application that runs on a peer-to-peer (P2P) network of computers, rather than a single computer. The dApp developer needn’t rely on third-party entities, such as Google or Apple, to make the dApp available to users, which can range from two to a virtually unlimited number.
Since dApp is a relatively new concept and there are evolving variations in how they are utilized, be aware there is no one accepted definition of what a dApp is?. Generally speaking, though, a dApp may be characterized by:
- Employs open-source code that operates autonomously; no single entity controls it.
- The backend code of a dApp runs on a decentralized server, while the backend code of an app runs on a centralized server; thus, there is no central point of failure for any dApp.
- Runs on P2P network, which is often a blockchain network (a public ledger that records transactions as a series of blocks in a replicating chain), but not always; BitTorrent, for example, is a dApp that runs on a P2P network that is not blockchain.
- Blockchain dApps are typically one of three types:
- Financial: involves the exchange of money.
- Semi-financial: smart contracts that delineate how money is exchanged and managed.
- Transparency: Adds transparency to traditionally opaque processes such as the pharmaceutical or intermodal supply chain and logistics or even digital records used in marketing.
- Governance: non-financial activities such as voting and budgeting used in a DAO (Decentralized Autonomous Organization).
There are several situations where dApps may be preferred over conventional apps:
Users can securely send and receive cryptocurrencies (e.g., Bitcoin) without a bank or other financial intermediary, making transactions faster without incurring third-party fees. Here’s how it works: each computer on the P2P network determines whether a legitimate request for money is made, that the parties to the transaction are also legitimate, and that funds are available. The first computer to verify adds a block to the chain, and broadcasts this proof to the rest of the network; the network, in turn, verifies the proof before queuing the block to the chain, which completes the transaction.
Public and private keys provide access to a ledger system where users can transact and bind their sessions without the need for a lengthy sign-up or authentication process.
Since dApp development is open-source, it is easily accessible to knowledgeable users; a public record makes transaction information easy to audit.
It just works. Whenever specified values and/or conditions are satisfied, a transaction is executed.
Key Differences from Apps
The differences between dApp development and app development include:
dApps can store values and issue tokens of value. Normal apps provide a means to execute transactions; dApps actually conduct the transactions. In addition, users who in some way contribute to a dApp’s ecosystem are automatically rewarded with tokens. An example is Bitcoin mining, where someone who solves a mathematical problem related to a block in the chain receives some Bitcoin for time and resources spent; note that just spending the time does not generate the reward, but the confirmation the block is actually solved.
It’s simple to integrate a dApp with any other existing dApp without permission (unless the dApp developer specified permissions or conditions that must be satisfied) without approval from a governing ownership authority.
dApp development is much more rigorous, more akin to hardware development than software development. Apps are usually less than perfect upon release; the idea is to continually perfect them as users uncover and report bugs. In the same way that hardware development requires rigorous testing and prototyping, dApp development has to get it right. You can’t tell a cryptocurrency user, ‘oops, we see there are some lost funds in your last transaction, we’ll fix that in the next update.’ A dApp should only be launched when it will perform exactly as intended.
Here’s where apps outperform dApps – traditional apps are much faster, especially in executing multiple transactions. Given the growing popularity of blockchain technology and dApps, however, this may be a temporary disadvantage as dApp development continues to improve.
The Future of dApps and Apps
Traditional apps aren’t going to be replaced by dApps because they each have different uses. The challenge for dApp development is that it is in a continuing state of flux, with new functionalities and use-cases rapidly developing.
Image Credit: Business vector created by www.freepik.com