Rage Exits: Resistance and Freedom in DAOs

23-10-17 20:00
Read this article in 12 Minutes
总结 AI summary
View the summary 收起
Original Title: "Angry Exit: Resistance and Freedom in DAO"
Original Source: Wang Chao, Empower Labs

"Rage Quit" (also known as "怒退" in the DAO industry) used to be a relatively niche concept. With the development of DAOs, more and more DAOs are facing situations such as forking, founder departure, and even liquidation, making the term "Rage Quit" increasingly common in various reports.

However, it is worth noting that there is a significant misunderstanding of the concept of "rage quitting", even among some professional media outlets abroad.


At the 2019 Ethereum Denver conference, Ameen Soleimani and his colleagues released Moloch v1 - a protocol for creating donation-based DAOs. Compared to complex DAO operating systems like Aragon, the core of the Moloch v1 protocol consists of only 400 lines of code. It is concise, elegant, easy to understand and use, allowing people to easily pool funds together and collectively manage and coordinate their use.

In DAO governance, minority opinions are always inevitable. Usually, decision-making and transaction execution follow the principle of "majority rule." However, this also brings risks: when the majority holds decision-making power, they may abuse their advantage and infringe on the interests of the minority. To prevent this risk, the Moloch protocol introduces the concept of "Rage Quit."

How to "rage quit"?

When a member opposes a proposal, even if they vote against it, the proposal may still be passed. In the Moloch protocol, there is a 7-day grace period between when a proposal is voted on and when it is actually executed. During this grace period, members who voted against the proposal can choose to "rage quit" if they do not want their funds to be used for the project. This allows them to withdraw their remaining equity in the contract before the proposal is executed.

"Angry exit" is not something that can be done at any time. Here are several key characteristics:

"Angry exit" is enforced by smart contract code.

"Angry exit" can only be carried out during the grace period after the proposal has been approved but not yet executed.

When a member exits, they can only retrieve their remaining shares in the contract.

(For example, if 100 ETH were initially invested and 30% of the treasury has already been used, members can only withdraw 70 ETH.)

There is an implicit premise here that members need to have a direct and traceable historical investment in the DAO's treasury in order to fairly confirm their remaining rights at the contract code level and enable members to exit. In other words, if a member has never put money into the DAO treasury, there is no such thing as an "angry exit", and even if the code is written, it cannot be executed.

An interesting piece of trivia is that in the Moloch V1 protocol, "rage quitting" is the only way to withdraw funds from the protocol in order to maintain simplicity and security. This means that even if the project being funded is not angry and does not want to quit, they must still execute a "rage quit" in order to access the funds they were granted.


The Moloch v1 protocol has achieved significant success, but its functionality is limited to coordinating donations and has a narrow scope of use. Therefore, many teams have iterated on Moloch v1 and released Moloch v2. This new version mainly adds a series of features, enabling it to support joint investment and opening up a wider range of business fields.

With the improvement of contract functions and the completion of compliance frameworks, Moloch V2 has triggered a wave of Investment DAOs. The LAO, Flamingo, and MetaCartel are among the leaders, and later even formed an Investment DAO dedicated to investing in Investment DAOs. Investment DAO has now become an undeniable force in the Web3 investment market, and many Investment DAOs have already entered the traditional investment field and invested in excellent projects such as Stability AI.

Going back to the topic of Rage Quit. These investment DAOs built on the Moloch V2 framework and its variants naturally support "rage quitting", but the situation is much more complex than before. V1 was a donation protocol, and once the donation was made, it was gone. Even if a member quits, they cannot demand anything from the money that has already been donated. Therefore, "rage quitting" can simply retrieve the part that has not been donated yet. However, V2 is an investment protocol, and the money that has already been invested has been exchanged for equity or token rights, which are expected to generate returns. This part of the equity cannot be invalidated due to "rage quitting". Therefore, it involves the confirmation and splitting of historical equity. As a result, we can see that "rage quitting" has become more complex in both code and details since V2, and there have been some changes. The specific details vary in different protocols and variants, but having this concept in mind is good enough.

In summary, the main purpose of "rage quit" is a weapon to protect members of a donation/investment type DAO. Its core function is to allow members to retrieve their remaining funds in the treasury by destroying their shares in the DAO.

Angry quitting happens every day, but it's not "rage quitting"

For the vast majority of DAOs, their structure and operation do not meet the basic conditions for implementing "rage quit". Many DAO members do not directly inject funds into their treasury, so membership in the DAO is not directly linked to the balance of the treasury, making the applicable scenarios for "rage quit" quite limited.

It's actually easy to understand. Consider a company. If an employee resigns due to dissatisfaction, even if they were granted stock options or hold company shares, they are not eligible to withdraw the company's funds upon leaving. Similarly, if a shareholder buys Maotai's stock and finds out that Maotai is starting to produce liquor-filled chocolates, they may become angry and decide to exit. At this point, they can choose to sell their stocks on the stock market, but they cannot demand that Maotai return their stocks and receive a proportionate amount of the company's cash.

We have indeed seen the founder propose a "rage quit" in the DAO. However, this "rage quit" is more of a formal name and is actually the result of negotiations among all parties. Unless the founder's rights are clearly linked to the funds in the DAO's treasury or there is an agreement, he is not eligible to withdraw funds when he exits.

Nouns DAO is a special case in the encryption industry. It has undergone a fork, and the new contract that resulted from the fork supports the "rage quit" function. The operating mode of the new contract is similar to the original "rage quit" concept, but with some adjustments to the specific execution details. Nouns DAO can do this mainly because Nouns is essentially more like a donation-based DAO: every time a Noun is sold in an auction, it brings direct and traceable funds to the treasury. The funds that have already been used in the treasury are equivalent to supporting ecological construction and are considered donations, rather than corresponding to the specific rights and interests of a particular member. This also provides convenient conditions for implementing "rage quit".

Written at the end

Due to the fact that "anger" and "exit" are both commonly used words in daily language, when they are combined, people tend to understand their meaning only literally. Although the Moloch protocol pioneered this concept, it did not define it as a proprietary term. This has led to the gradual development of "rage quitting" and various interpretations by the public, sometimes with misunderstandings. Such evolution also shows the integration and evolution of technology and culture. Every innovation and every misunderstanding has pushed the thinking and improvement of the DAO field. Today, the "rage quit" we are discussing is no longer its original appearance, but a constantly evolving institutional innovation that keeps up with the times.

function ragequit(uint256 sharesToBurn) public onlyMember { uint256 initialTotalShares = totalShares;

 Member storage member = members[msg.sender];

 require(member.shares >= sharesToBurn, "Moloch::ragequit - insufficient shares");

 require(canRagequit(member.highestIndexYesVote), "Moloch::ragequit - cant ragequit until highest index proposal member voted YES on is processed");

 // burn shares member.shares = member.shares.sub(sharesToBurn); totalShares = totalShares.sub(sharesToBurn);

 // instruct guildBank to transfer fair share of tokens to the ragequitter require( guildBank.withdraw(msg.sender, sharesToBurn, initialTotalShares), "Moloch::ragequit - withdrawal of tokens from guildBank failed"

欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 Correction/Report
Choose Library
Add Library
Add Library
Visible to myself only