a16z:如何識別、評估和避免DAO 治理攻擊?

往往只需要一個惡意的提議就可以搞垮一個協議,所以清楚地了解接受和拒絕提議的風險權衡是至關重要的。

來源:老雅痞

許多Web3 項目使用可替換和可交易的原生代幣進行無許可投票。無權限投票可以提供許多好處,從降低准入門檻到增加競爭。代幣持有者可以使用他們的代幣對一系列問題進行投票——從簡單的參數調整到治理過程本身的大修。 (關於DAO 治理的評論,見「光速民主」)但是無權限投票很容易受到治理攻擊,即攻擊者通過合法手段(如在公開市場上購買代幣)獲得投票權,但為了攻擊者自己的利益,利用這種投票權來操縱協議。這些攻擊是純粹的「協議內」,這意味著它們不能通過密碼學解決。相反,防止它們需要周到的機制設計。為此,我們開發了一個框架,以幫助DAO 評估威脅,並有可能對抗此類攻擊。

實踐中的治理攻擊

治理攻擊的問題並不只是理論上的。它們不僅可以在現實世界中發生,而且已經發生並將繼續發生。

在一個突出的例子中,Steemit,一家在其區塊鏈上建立去中心化社交網絡的創業公司,Steem 有一個由20 個證人控制的鏈上治理系統。投票者使用他們的STEEM 代幣(該平台的原生台幣)來選擇證人。在Steemit 和Steem 獲得牽引力的同時,孫宇晨已經制定了將Steem 合併到Tron 的計劃,Tron 是他在2018 年創立的區塊鏈協議。為了獲得這樣做的投票權,孫宇晨找到了Steem 的創始人之一,併購買了相當於總供應量30% 的代幣。一旦當時的Steem 證人發現他的購買行為,他們就凍結了孫宇晨的代幣。接下來是孫宇晨和Steem 之間的公開反擊,以控制足夠的代幣來部署他們喜歡的前20 名證人名單。在涉及主要交易所並花費數十萬美元購買代幣後,孫宇晨最終取得了勝利,並有效地自由控制了網絡。

在另一個例子中,Beanstalk,一個穩定幣協議,發現自己很容易受到通過Flashloan 的治理攻擊。一個攻擊者通過貸款獲得了足夠多的Beanstalk 的治理代幣,瞬間通過了一個惡意提案,讓他們奪取了Beanstalk 的1.82 億美元的儲備。與Steem 攻擊不同,這次攻擊發生在一個區塊的範圍內,這意味著在任何人都沒有時間做出反應之前就已經結束了。

雖然這兩起攻擊發生在公開場合和公眾視線之下,但治理攻擊也可以在很長一段時間內秘密進行。攻擊者可能會創建許多匿名賬戶,慢慢積累治理代幣,同時表現得與其他持有人一樣,以避免被懷疑。事實上,鑑於許多DAO 的選民參與度往往很低,這些賬戶可以長期處於休眠狀態而不引起懷疑。從DAO 的角度來看,攻擊者的匿名賬戶可以促進健康水平的去中心化投票權的出現。但最終攻擊者可能達到一個門檻,即這些虛假錢包有能力單方面控制治理,而社區卻無法回應。同樣,惡意行為者可能會在投票率足夠低的時候獲得足夠的投票權來控制治理,然後在許多其他代幣持有人不活躍的時候試圖通過惡意的提案。

雖然我們可能認為所有的治理行動只是市場力量發揮作用的結果,但在實踐中,治理有時會產生低效的結果,這是激勵失敗或協議設計中其他漏洞的結果。就像政府決策會被利益集團甚至是簡單的慣性所控制一樣,DAO 治理如果結構不當也會導致低劣的結果。

那麼,我們如何通過機制設計來解決這種攻擊?

根本的挑戰:不可辨別性

代幣分配的市場機制無法區分那些想為項目做出有價值貢獻的用戶和那些對破壞或以其他方式控制項目抱有很高價值的攻擊者。在一個代幣可以在公共市場上買賣的世界裡,從市場的角度來看,這兩個群體在行為上是不可區分的:都願意以越來越高的價格購買大量的代幣。

這種不可區分性問題意味著去中心化的治理不是免費的。相反,協議設計者在公開的去中心化治理和確保他們的系統免受尋求利用治理機制的攻擊者的影響之間面臨著基本的權衡。社區成員越是能自由地獲得治理權力並影響協議,攻擊者就越容易利用同一機制進行惡意修改。

這種不可辨別性的問題在權益證明(Proof of Stake)區塊鍊網絡的設計中很熟悉。在那裡就是如此,代幣的高流動性市場使得攻擊者更容易獲得足夠的權益來破壞網絡的安全保障。儘管如此,代幣激勵和流動性設計的混合使得權益證明網絡成為可能。類似的策略可以幫助確保DAO 協議的安全。

評估和解決脆弱性的框架

為了分析不同項目所面臨的脆弱性,我們使用了一個由以下公式捕獲的框架:

對於一個協議來說,要想被認為是對治理攻擊的安全,攻擊者的利潤應該是負的。在為一個項目設計治理規則時,這個方程可以作為評估不同設計選擇的影響的一個指導原則。為了減少利用協議的動機,該方程意味著三個明確的選擇:降低攻擊的價值,增加獲得投票權的成本,以及增加執行攻擊的成本。

降低攻擊的價值

限制攻擊的價值可能很困難,因為一個項目越成功,成功的攻擊可能就越有價值。顯然,一個項目不應該為了減少攻擊的價值而故意破壞自己的成功。

然而,設計者可以通過限制治理所能做的範圍來限制攻擊的價值。如果治理只包括改變項目中某些參數的權力(例如,借貸協議的利率),那麼潛在的攻擊範圍就比治理允許完全普遍控制治理的智能合約時要窄得多。

治理範圍可以是一個項目階段的功能。在其生命的早期,一個項目可能有更廣泛的治理,因為它找到了自己的立足點,但實際上治理可能被創始團隊和社區嚴格控制。隨著項目的成熟和控制權的下放,在治理中引入一定程度的摩擦可能是有意義的——至少在最重要的決策中需要有大型全體會議。

增加獲得投票權的成本

一個項目也可以採取措施,使其更難獲得攻擊所需的投票權。代幣的流動性越強,就越容易要求獲得投票權,因此,幾乎是矛盾的,項目可能希望為了保護治理而減少流動性。人們可以嘗試直接減少代幣的短期交易性,但這在技術上可能是不可行的。

為了間接減少流動性,項目可以提供激勵措施,使個別代幣持有者不太願意出售。這可以通過激勵質押來實現,或者通過賦予代幣獨立的價值,超越純粹的治理。代幣持有人獲得的價值越多,他們就越能與項目的成功保持一致。

獨立的代幣利益可能包括參加現場活動或社交體驗。至關重要的是,像這樣的好處對與項目保持一致的個人來說是高價值的,但對攻擊者來說是無用的。提供這類好處提高了攻擊者在獲取代幣時面臨的有效價格:由於獨立的好處,目前的持有人將不太願意出售,這應該增加市場價格;然而,雖然攻擊者必須支付更高的價格,但獨立功能的存在並沒有提高攻擊者獲取代幣的價值。

增加執行攻擊的成本

除了提高投票權的成本,還可以引入摩擦,使攻擊者即使在獲得代幣後也難以行使投票權。例如,設計者可以要求對參與投票的用戶進行某種認證,如KYC(了解你的客戶)檢查或信譽評分閾值。我們甚至可以限制未經認證的行為者首先獲得投票代幣的能力,也許需要一些現有的驗證者來證明新方的合法性。

在某種意義上,這正是許多項目分配其初始代幣的方式,確保受信任的各方控制相當一部分的投票權。 ( 許多權益證明解決方案使用類似的技術來捍衛他們的安全——嚴格控制誰可以訪問早期的權益,然後從那裡逐漸去中心化。)

另外,項目可以讓攻擊者即使控制了大量的投票權,他們在通過惡意提案時仍然面臨困難。例如,一些項目有時間鎖,使一個代幣在被交換後的一段時間內不能被用來投票。因此,尋求購買或借用大量代幣的攻擊者將面臨著在實際投票前等待的額外成本——以及投票成員會注意到並在這期間挫敗他們的預期攻擊的風險。授權在這裡也是有幫助的。通過給予積極但非惡意的參與者代表他們投票的權利,那些不想在治理中發揮特別積極作用的個人仍然可以為保護系統貢獻他們的投票權。

一些項目使用否決權,允許投票推遲一段時間,以提醒不活躍的選民注意一個潛在的危險提案。在這樣的方案下,即使攻擊者提出惡意提案,投票者也有能力回應並關閉它。這些設計和類似的設計背後的想法是阻止攻擊者偷偷摸摸地通過惡意提案,並為項目的社區提供時間來製定應對措施。理想情況下,那些明顯符合協議利益的提案將不必面對這些路障。

例如,在Nouns DAO,否決權由Nouns 基金會掌握,直到DAO 本身準備好實施一個替代模式。正如他們在網站上寫的那樣,「Nouns 基金會將否決那些給Nouns DAO 或Nouns 基金會帶來非同小可的法律或生存風險的提案。」

項目必須取得平衡,允許對社區變化有一定程度的開放性(有時可能不受歡迎),同時不允許惡意提案從縫隙中溜走。往往只需要一個惡意的提議就可以搞垮一個協議,所以清楚地了解接受和拒絕提議的風險權衡是至關重要的。當然,在確保治理安全和使治理成為可能之間也存在著高水平的權衡——任何引入摩擦以阻止潛在攻擊者的機制當然也會使治理過程更難使用。

我們在這裡勾勒出的解決方案屬於完全去中心化的治理和為了協議的整體健康而部分犧牲一些去中心化的理想之間的光譜。我們的框架突出了項目可以選擇的不同路徑,因為他們尋求確保治理攻擊不會獲利。我們希望社區能夠利用這個框架,通過他們自己的實驗進一步發展這些機制,使DAO 在未來更加安全。

Total
0
Shares
Related Posts