原文標題:《 A16z:避免 DAO 治理攻擊的三種方式 》
原文來源:a16z
原文作者: Pranav Garimidi, Scott Duke Kominers 以及Tim Roughgarden
原文編譯:DeFi 之道
許多 Web3 專案使用可互換且可交易的原生 Token 來進行無許可的投票,無許可投票可以提供很多的好處,從降低准入門檻到增加競爭。 Token持有者可以使用他們的 Token,對一系列問題進行投票,從簡單的參數調整到治理過程本身的徹底檢修。 (有關DAO 治理的回顧,請參閱“Lightspeed Democracy”這篇文章)然而,無許可投票很容易受到治理攻擊,即攻擊者通過合法手段(例如在公開市場上購買Token)獲得投票權,然後使用該投票權為攻擊者本身的利益來操縱協議。這些攻擊純粹是「協議內」攻擊,這意味著它們無法透過密碼學手段解決。相反,預防它們需要深思熟慮的機制設計。為此,我們開發了一個框架來幫助 DAO 評估威脅並應對潛在的攻擊。
治理攻擊的問題不僅僅是理論上的,並且已經在現實世界當中發生了多次,並且將會繼續發生。
舉一個突出的例子,Steemit 是一家建立去中心化社交網路的新創公司,它建立在其Steem 區塊鏈上,該區塊鏈擁有一個由20 名驗證者(witnesses)控制的鏈上治理系統。選民使用他們的 STEEM Token 來選出驗證者,在Steemit 和Steem 獲得發展的同時,孫宇晨制定了將Steem 合併到Tron 的計劃,為了獲得足夠數量的投票權,孫聯繫了Steem 的創始人之一,購買了相當於總供應量30% 的 Token 。而當 Steem 的驗證者發現了孫的購買行為之後,他們就凍結了孫的 Token 。此後,孫和 Steem 之間展開了公開爭執,孫的目的是控制足夠的 Token 來選出一個新的驗證者名單,在一些交易平台的幫助下,孫最終獲勝並有效地控制了 Steem 網絡。
在另一個例子中,穩定幣協議 Beanstalk 被發現容易遭受閃電貸治理攻擊,一名攻擊者獲得了一筆貸款,以獲取到足夠數量的 Beanstalk 治理 Token ,從而立即通過了一項惡意提案,允許他們控制了 Beanstalk 的 1.82 億美元儲備資金。與 Steem 的治理攻擊不同的是,Beanstalk 的攻擊是發生在一個區塊的時間範圍內的,這意味著在任何人作出反應之前,攻擊就已經結束了。
雖然這兩次攻擊是在公開場合和公眾視線下發生的,但治理攻擊也可以在很長的一段時間內秘密進行。攻擊者可能會創建大量匿名帳戶,並緩慢累積治理 Token ,同時表現得像任何其他持有者,以避免被懷疑。事實上,考慮到許多 DAO 的選民參與度往往很低,這些帳戶可能會長時間處於休眠狀態而不會引起懷疑。從 DAO 的角度來看,攻擊者的匿名帳號可能有助於呈現健康水準的去中心化投票權。但最終攻擊者可能會達到一個門檻,即這些女巫錢包有權單方面控制治理,而社區卻無法做出回應。同樣,惡意行為者可能會在投票率足夠低時獲得足夠的投票權來控制治理,然後在許多其他持有者不活躍的情況下嘗試透過惡意提案。
雖然我們可能認為所有的治理行動,都是市場力量發揮作用的結果,但在實踐中,由於激勵失敗或協議設計中的其他漏洞,治理有時會產生低效的結果。正如政府決策可能會被利益團體甚至是簡單的慣性所捕獲一樣,DAO 治理如果結構不當,可能會導致較差的結果。
那麼,我們要如何透過機制設計來應對這類攻擊呢?
Token 分配的市場機制,無法區分想要為專案做出有價值貢獻的使用者以及高度重視破壞或以其他方式控制專案的攻擊者。在一個可以在公共市場買賣 Token 的世界中,從市場的角度來看,這兩個群體在行為上是沒有區別的,兩者都願意以越來越高的價格購買大量 Token。
這種不可區分的問題,意味著去中心化治理並不是免費的。相反,協議設計者面臨著公開去中心化治理以及保護其係統免受試圖利用治理機制的攻擊者攻擊之間的根本權衡。社群成員獲得治理權力和影響力協議的自由越多,攻擊者就越容易使用相同的機制進行惡意更改。
這種不可區分性問題在權益證明(PoS)區塊鏈網路的設計中很常見的,此外, Token 的高流動性市場使攻擊者更容易獲得足夠的權益來破壞網路的安全保障。儘管如此, Token 激勵和流動性設計的結合,使得 PoS 網路成為可能。而類似的策略可協助保護 DAO 協議。
為了分析不同項目面臨的漏洞,我們使用以下等式捕獲的框架:

為了讓協定是安全的(可以抵禦治理攻擊),攻擊者的利潤應該是負的。在為專案設計治理規則時,此等式可用作評估不同設計選擇的影響的指南。為了減少利用該協議的動機,該等式意味著三個明確的選擇: 降低攻擊的價值,增加獲得投票權的成本,以及增加執行攻擊的成本。
限制攻擊的價值可能會很困難,因為專案越成功,成功的攻擊就越有價值。顯然,一個專案不應該僅僅為了降低攻擊的價值而故意破壞自身的成功。
然而,設計者可以透過限制治理功能的範圍來限制攻擊的價值。如果治理只包括更改專案中某些參數的權力(例如貸款協議的利率),那麼潛在攻擊的範圍要比治理允許對治理智慧合約進行全面控制時要窄得多。
治理範圍可以是專案階段的函數。在專案早期,當專案找到立足點時,可能會有更廣泛的治理,但在實踐中,治理可能會受到創始團隊和社區的嚴格控制。隨著專案的成熟以及去中心化控制,在治理中引入一定程度的摩擦可能是有意義的——至少,最重要的決策需要大量社區成員的參與。
專案方也可以採取措施使獲得攻擊所需的投票權變得更加困難。 Token 的流動性越強,攻擊者就越容易獲得投票權,這幾乎是自相矛盾的,專案方可能希望為了保護治理而減少流動性。人們可以嘗試直接降低 Token 的短期可交易性,但這在技術上可能不可行。
為了間接減少流動性,專案方可以提供激勵措施,使個人 Token 持有者不太願意出售。這可以透過激勵性質押來實現,或透過賦予 Token 超越純粹治理的獨立價值來實現。 Token 持有者獲得的價值越高,他們就越能與專案的成功保持一致。
獨立 Token 的好處可能包括親身參與活動或社交體驗。至關重要的是,這樣的好處對與專案方合作的個人來說是很有價值的,但這對攻擊者來說是無用的。提供這些好處會提高攻擊者在獲取 Token 時面臨的有效價格:由於獨立的好處,當前持有人將不太願意出售,這會提高市場價格,然而,雖然攻擊者必須付出更高的代價,但獨立功能的存在並沒有提高攻擊者獲取 Token 的價值。
除了提高投票權的成本外,我們還可以引入摩擦,使攻擊者即使在獲得 Token 後也更難行使投票權。例如,設計人員可能需要某種使用者身份驗證才能參與投票,例如 KYC 檢查或聲譽分數閾值。人們甚至可以先限制未經認證的參與者取得投票 Token 的能力,可能需要一些現有的驗證者來證明新參與者的合法性。
從某種意義上說,這正是許多項目分配其初始 Token 的方式,確保受信任方控制很大一部分的投票權。 (許多權益證明解決方案使用類似的技術來保護其安全性,即嚴格控制誰有權獲得早期權益,然後逐步去中心化)
或者,專案方可以這樣做,即使攻擊者控制了大量投票權,他們在通過惡意提案時仍然面臨著困難。例如,有些項目有時間鎖的設定,因此在交換後的一段時間內無法使用 Token 進行投票。因此,試圖購買或借入大量 Token 的攻擊者將面臨額外成本,因為他們需要等待才能真正投票,並且投票成員可能會注意到並阻止他們的潛在攻擊的風險。委託在這裡也很有幫助,透過賦予積極但非惡意的參與者代表他們投票的權利,不想在治理中發揮特別積極作用的個人,仍然可以為保護系統貢獻他們的投票權。
一些項目也使用了否決權機制,允許將投票推遲一段時間,以提醒不活躍的選民注意潛在危險的提案。在這樣的方案下,即使攻擊者提出惡意提案,選民也有能力回應並關閉它。這些設計背後的想法是,阻止攻擊者偷偷通過惡意提案,並為專案社群提供時間來製定回應。理想情況下,明確符合協議利益的提案不必面對這些障礙。
例如,在 Nouns DAO 中,否決權是由 Nouns 基金會持有的,直到 DAO 本身準備好實現替代方案為止。正如他們在網站上所寫的:
「Nouns 基金會將否決那些給 Nouns DAO 或 Nouns 基金會帶來重大法律風險或存在風險的提案。」
專案方必須達成平衡,以允許對社區變化(有時可能不受歡迎)保持一定程度的開放性,同時不允許惡意提案從縫隙中溜走。通常來說,只需要一個惡意提案就可以使協議失效,因此清楚地了解接受和拒絕提案的風險權衡至關重要。當然,在確保治理安全和使治理成為可能之間存在著高水準的權衡,因為任何引入摩擦以阻止潛在攻擊者的機制,當然也會使治理過程更具挑戰性。
我們在這裡概述的解決方案,介於完全去中心化治理和為了協議的整體健康而犧牲部分去中心化之間。我們的框架強調了專案方在尋求確保治理攻擊不會有利可圖時可以選擇的不同路徑。我們希望社群將使用該框架透過自己的實驗進一步開發這些機制,使 DAO 在未來更加安全。
https://t.me/theblockbeatsTelegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia