The Blockchain world is full of exciting new concepts and terminologies. However, these concepts/terminologies are usually full of ambiguities and often times inconsistent since we are still in a very early stage. It is difficult to communicate with each other if we have different understanding of the same terms. Below I try to clarify the difference between the two most interesting terms: DApp and DAO and propose a new term: iDApp to fill the gap between them
What is DApp?
DApp is well defined by David Johnston in this awesome DApp white paper as
For an application to be considered a Dapp (pronounced Dee-app, similar to Email) it must meet the following criteria:
The application must be completely open-source, it must operate autonomously, and with no entity controlling the majority of its tokens. The application may adapt its protocol in response to proposed improvements and market feedback but all changes must be decided by consensus of its users.
The application’s data and records of operation must be cryptographically stored in a public, decentralized blockchain in order to avoid any central points of failure.
The application must use a cryptographic token (bitcoin or a token native to its system) which is necessary for access to the application and any contribution of value from (miners / farmers) should be rewarded in the application’s tokens.
The application must generate tokens according to a standard crytptographic algorithm acting as a proof of the value nodes are contributing to the application (Bitcoin uses the Proof of Work Algorithm).
He further classified the DApps into three types based on how blockchain is being used.
Type I decentralized applications have their own block chain. Bitcoin is the most famous example of a type I decentralized application but Litecoin and other “alt-coins” are of the same type.
Type II decentralized applications use the block chain of a type I decentralized application. Type II decentralized applications are protocols and have tokens that are necessary for their function. The Omni Protocol is an example of a type II decentralized application.
Type III decentralized applications use the protocol of a type II decentralized application. Type III decentralized applications are protocols and have tokens that are necessary for their function. For example the SAFE Network that uses the Omni Protocol to issue ‘safecoins’ that can be used to acquire distributed file storage is an example of a type III decentralized application.
DApps vs Traditional decentralized applications
Based on the definition above, DApp is one decentralized application, but not every decentralized applications are DApps. I guess this is the most confusing part of the DApp concept due to the choice of labeling.
All traditional P2P applications, like Bittorrent and Freenet, are decentralized since P2P network is decentralized by default. They are not using blockchain type organization method, so they do not have a federated verifiable global state. Thus, they could not be viewed as one “virtual” application with enforced business logics.
However, in my opinion, blockchain is just one way to organize the P2P nodes, and it should not be the only way. In the near future, existing blockchain technology may not even exist. The blockchain may evolve into a more generic term to represent a verifiable global state and transparent computing process.
What is DAO?
DAO concept arose from the Ethereum community. Vitalik Buterin wrote one excellent blog discussing DA, DO and DAO.
DAO concept evolved from a more financial subclass called DAC (Decentralized Autonomous Corporation/Company), which is mainly for translating the human corporation organization into the autonomous computer organization. One example of DAC is “The DAO” which is the investment organization organized using an Ethereum smart contract.
DAO is defined by Vitalik as :
It is an entity that lives on the internet and exists autonomously, but also heavily relies on hiring individuals to perform certain tasks that the automaton itself cannot do
Based on this concept, Bitcoin itself could be viewed as one DAO. So it seems that DAO has large overlapping with DApp. Vitalik chose the word “Organization” over “Application” to make it more differentiable from the traditional P2P application.
DApp vs DAO
Although the two concepts are created by two different groups of people, they are used interchangeably sometimes. The key difference is the word “Autonomous”. DAO could be viewed as one type of DApp, the fully autonomous DApp. DApp is not necessarily DAO.
DApp and DAO are different on automation level
Here I borrow the automation/autonomous level concept from autonomous car area.
The current blockchain based DApps could be viewed as Level 1.5 or 2 automation maximally. It excludes the human intervention, but its business logic is pre-fixed and can only be updated through majority vote; it has no self-learning ability at all.
DAO is supposed to be full autonomous, which has Level 5 automation. The application should make the decision based on its own intelligence and self-improve from the outcomes of the decisions that it made.
No human created applications reach the “Autonomous” level yet.
DApp does not mention the level of automation. All the examples it gave are the automated software since there is no autonomous software yet. All existing blockchains based DApps including Bitcoin just automate the pre-coded business logic. Vitalik mentioned the DAO as the holy grail since no one yet got there even some may have called themselves “The DAO”.
So DAO is mainly a good vision, not reality (yet)
iDApp: Intelligent DApp
DApp concept does not concern the intelligence level and assumes current application is basic level automation. DAO is about the future not current.
While with the advancement of AI research, the autonomous driving is getting into the Level 3 or 4. So a new concept calling iDApp, short for Intelligent DApp, is proposed to fill the gap between DApp and DAO.
iDApp is the DApp with certain level intelligence.
Instead of pre-coded business logic, it could use the machine learning techniques to learn from the decision outcomes. For example, instead of a fixed reward mechanism, it could adjust the rewards proportion based the current environment. If it needs more computing resource, it could reward more to miners.
iDApp uses blockchains instead of relying on blockchains
As mentioned, blockchain is like the operating system that provides a good infrastructure. Instead of deploying to the blockchain, iDApp itself decides how it utilizes underlying computing infrastructure. It could deploy itself to existing public chain or start its own new chains and migrate as it wants.
Public, Consortium and Private does not matter anymore
iDApp chooses the best available choice to outsource its computing infra requirements. It only cares about the demands of the customers that it serves since this would maximize its revenue. If the customers require privacy, it would not utilize the Public chain since doing so would result in losing all of its clients and income.
The Evolution: App -> DApp -> iDApp -> DAO
We are in the middle of the evolution, the possible largest evolution in human history. But we are still in early stage.
With blockchain, we could have bitcoin. However, we only used the power from “Decentralization” to make the application unstoppable and censor-resistant. It has quite narrow use cases. The similar situation is in autonomous driving as well. Type 2 self-driving is not that useful and has quite narrow usage.
With iDapp, we hope the power from “Intelligent” could make the thing much different. Like belief in self-driving, it could lower the cost of operations and make the “impossible” business models possible.