DAO

From Internet Computer Wiki
Revision as of 17:19, 12 January 2024 by Diego.prats (talk | contribs)
Jump to: navigation, search

A Decentralized Autonomous Organization, or DAO for short, is a system that allows many parties to jointly control an entity.

What is a DAO?

Let’s first clarify what decentralized means in this context. First, an application can run on a decentralized platform. This means that the platform itself is controlled by many different parties and, in particular, that even if some of these parties fail or turn malicious, the application will still keep running successfully. The IC is such a platform as it is run by many nodes that are owned by independent node providers. Therefore, applications that run on the IC are called decentralized applications or dapps.

A second kind of decentralized denotes who is in control of changing a dapp, or a smart contract more generally. In general, dapps running on the IC or smart contracts on other decentralized platforms can still be controlled by a single, central entity and thus still be under centralized control. As motivated below, it is often beneficial if a dapp is also under decentralized control. This means that no single party can decide how the dapp is evolved. Instead, the dapp can only be changed according to decisions that many parties jointly make. This decentralized control of a dapp is what a DAO achieves.

Motivation: why a DAO?

The following discusses the main motivations for DAOs from the point of view of two main actors on the IC: the dapp developers, who build dapps on the IC, and the end-users, who interact with and invest in dapps.

Dapp users

Dapps on the IC are realized as a set of canister smart contracts. Canisters define a controller specifying which principals can modify them. Most dapp canisters are either controlled by some developers or have no controller at all. Both situations have downsides for a dapp’s users. In the case where a dapp is controlled by a centralized group of developers, users of the dapp must trust these developers not to stop the application and not to modify the application in an undesirable way, e.g., that favors the developers. In the case where the canister has no controller, it cannot be upgraded at all. This not only prevents evolving the dapp regarding new requirements but might also be a problem when it is necessary to fix security bugs.

DAOs provide a third option, namely to hand over the control over a dapp to a community that can jointly decide how to evolve a dapp in an open governance system, i.e., to decentralize a dapp’s control. This protects users as the control is now in the hand of a community rather than in the hand of a few parties. Moreover, dapp users can join the open governance themselves and thereby directly impact how the dapp is evolved.