原文標題:《憤怒退出:DAO 中的反抗與自由》
原文來源:王超,Empower Labs
“ Rage Quit」(「憤怒退出」),在DAO 領域被簡稱為「怒退」,曾經是一個相對較小眾的概念。隨著 DAO 的發展,越來越多的 DAO 開始面臨分叉、創始人出走、甚至清盤的狀況,使得「憤怒退出」這個詞彙逐漸頻繁地出現在各種報道中。
但值得注意的是大家對「憤怒退出」的理解存在很大的誤區,連一些國外專業媒體也常誤用。
2019 年以太坊丹佛大會上,Ameen Soleimani 和他的同事們一起發布了Moloch v1 - 一個用於創建捐贈型DAO 的協議。相較於 Aragon 等複雜的 DAO 作業系統,Moloch v1 協定的核心只有 400 多行程式碼。它簡潔,優雅,易於理解和使用,可以讓人們非常方便的把資金匯集到一起並集體管理和協調資金的使用。
在 DAO 的治理中,少數意見總是無法避免的。通常,決策和事務執行都遵循“少數服從多數”的原則。但這也帶來了風險:當多數派掌握了決策權時,可能會濫用其優勢,侵犯少數派的利益。為了預防這種風險,Moloch 協議引入了「Rage Quit」這個概念。
當一個成員反對某提案,即使他們投了反對票,提案還是有可能通過。在 Moloch 協議中,提案從投票通過到真正被執行之間存在一個 7 天的寬限期。在寬限期內,投了反對票的成員如果不希望自己的資金被用於該項目,可以選擇「憤怒退出」。從而在提案執行之前將自己在合約中的剩餘權益取回。
「憤怒退出」並非任意時刻都能進行,這裡列出了幾個關鍵特徵:
「憤怒退出」由智能合約代碼強制約束。
只有在上一個提案中投過反對票的成員才有資格執行「憤怒退出」。
「憤怒退出」只能在提案已經獲得通過,但尚未執行的寬限期內進行。
成員退出時,僅能取回其在合約中剩餘的份額。
(例如,如果一開始投資了100 個ETH,而財庫中的30% 已經被使用,那麼成員只能取回70 個ETH。 )
這裡還有一個隱形的前提,成員需要對於DAO 的財庫有著直接的,可追溯的歷史投入。這樣才能從合約代碼層面去公平的確認剩餘權益,讓成員實現退出。換句話說,如果一個成員根本沒往 DAO 財庫裡放過錢,那是不存在「憤怒退出」這一說的,就算代碼寫了出來,也執行不了。
一個有趣的冷知識,在Moloch V1 協議裡,為了追求協議的足夠簡單和安全,」怒退」是從協議裡抽取資金的唯一方法。也就是說被資助的專案方為了拿到資助的資金,也只能透過執行「憤怒退出」來提取資金,即使他們即不憤怒,也不想退出。
Moloch v1 協定取得了顯著的成功,但其功能僅限於協調捐款,使用範圍較窄。因此,眾多團隊在 Moloch v1 的基礎上進行迭代,推出了 Moloch v2。這個新版本主要增加了一系列功能,使其能夠支持共同投資,進而開闢了更廣泛的商業領域。
隨著合約功能的完善和合規框架的完成,Moloch V2 引發了一股Investment DAO 的熱潮,The LAO、Flamingo、MetaCartel 是其中的佼佼者,後期甚至形成了專門投資Investment DAO 的Investment DAO。到現在,Investment DAO 已經成為 Web3 投資市場裡不可忽視的一股力量,有許多 Investment DAO 的觸角已經進入了傳統投資領域裡,投到了 Stability AI 等優秀項目。
扯遠了,說回到 Rage Quit。基於 Moloch V2 框架及變種搭建的這類投資 DAO,自然也都是支持」怒退」的,但情況跟之前比複雜了很多。 V1 是捐贈協議,已經捐出去的就是撒出去了,即使退出成員也無法對已經捐贈出去的錢做什麼要求,所以”怒退”可以非常簡單的把還沒捐出去的那部分拿回來就可以。但 v2 是投資協議,已經投出去的錢換成了股權或 Token 權益,是要等著回報的,這部分權益肯定不能因為」怒退」而作廢。於是就要涉及歷史權益的確認與拆分。因此我們可以看到」怒退」從 v2 開始無論是程式碼或細節,都相較 v1 複雜了不少,且有了一些變化。具體細節就不細講了,在不同的協議和變種中,多有所差別,大家心裡有這個概念就好。
綜上所述,「憤怒退出」的主要用途是泛捐贈/投資類型的 DAO 保護成員的一個武器。它最核心的功能是讓成員透過銷毀在 DAO 裡的份額把財庫裡屬於自己的剩餘資金取回。
對絕大多數DAO 而言,他們的結構和運作方式並不符合實行「憤怒退出」的基本條件。許多 DAO 的成員並沒有直接向其財庫注入資金,因此 DAO 的成員資格與財庫餘額並無直接聯繫,所以「憤怒退出」的適用場景相當有限。
其實很容易理解,考慮一家公司,如果一個員工因不滿而辭職,即便他曾被授予股票期權或持有公司股份,他也沒有資格在離開時提取公司的資金。同理,一個股東購買了茅台的股票後,發現茅台開始生產酒心巧克力,他很憤怒,決定退出,這時他可以選擇在股市上賣出股票,但不能要求將股票退還給茅台並按比例獲取公司的現金。
我們確實在 DAO 中看到創始人自己提議“憤怒退出”。但這種「怒退」更多是形式上的,僅僅是一個名稱,實際上是各方協商的結果。除非創辦人的權益與 DAO 的財庫中的資金有明確的對應關係或約定,否則他在退出時也並沒有資格提取資金。
Nouns DAO 則是個特例,它曾經經歷了一次分叉,分叉後的新合約支持了「憤怒退出」功能。其操作模式與原始的「憤怒退出」概念大致相符,只是具體的執行細節有所調整。 Nouns DAO 可以這麼做主要是因為 Nouns 本質上更像一個捐贈型的 DAO:每當一個 Nouns 在拍賣中成交,它都為財庫帶來了直接且可以追踪的資金。而財庫中已經被使用的資金都相當於支持了生態建設,視為捐贈,並不對應到某個成員個人的具體權益,這也給實施「憤怒退出」提供了便利條件。
由於「憤怒」和「退出」都是日常語境中常用的詞彙,當它們組合起來時,人們很容易僅從字面上理解其意思。而 Moloch 協議,儘管首創了這個概念,卻並未定義為專有名詞。這導致了「憤怒退出」的逐漸發展和公眾對它的多種解讀,有時還帶有誤解。這樣的演進也讓我們看到了科技與文化的交融與演化。每一個創新、每一次誤解都推動了 DAO 領域的思考與改進。今天,我們談論的「憤怒退出」已不再是其初始的樣貌,而是一種與時俱進、不斷演化的製度創新。
DAO 作為一種去中心化的組織模型,正處於其發展的早期,它面臨的每一個問題,都會引導我們去探索和定義未來數位社會的運作機制。而「憤怒退出」就是這趟漫長旅程中的關鍵節點,它不只是幾行程式碼、一個功能,更代表著對自由、公正和共同體權益的探索和追求。
附:Moloch V1 中的ragequit 合約程式碼,只有短短21 行
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