撰文:Pranav Garimidi, Scott Duke Kominers & Tim Roughgarden
翻譯:DeFi之道
很多Web3 項目使用可互換且可交易的原生代幣來進行無須許可的投票(permissionless voting),無須許可的投票可以提供很多的好處,從降低准入門檻到增加競爭。代幣持有者可以使用他們的Token,對一系列問題進行投票,從簡單的參數調整到治理過程本身的徹底檢修。
然而,無須許可的投票很容易受到治理攻擊,即攻擊者通過合法手段(例如在公開市場上購買Token)獲得投票權,然後使用該投票權為攻擊者自身的利益來操縱協議。這些攻擊純粹是“協議內”攻擊,這意味著它們無法通過密碼學手段解決。相反,預防它們需要深思熟慮的機制設計。為此,我們開發了一個框架來幫助DAO 評估威脅並應對潛在的攻擊。
現實中已經發生的治理攻擊
治理攻擊的問題不僅僅是理論上的,並且已經在現實世界當中發生了多次,並且將會繼續發生。
舉一個突出的例子,Steemit 是一家構建去中心化社交網絡的初創公司,它建立在其Steem 區塊鏈上,該區塊鏈擁有一個由20 名驗證者(witnesses)控制的鏈上治理系統。選民使用他們的STEEM 代幣來選出驗證者,在Steemit 和Steem 獲得發展的同時,孫宇晨制定了將Steem 合併到Tron 的計劃,為了獲得足夠數量的投票權,孫聯繫了Steem 的創始人之一,購買了相當於總供應量30% 的代幣。而當Steem 的驗證者發現了孫的購買行為之後,他們就凍結了孫的代幣。此後,孫和Steem 之間展開了公開爭執,孫的目的是控制足夠的Token來選出一個新的驗證者名單,在一些交易所的幫助下,孫最終獲勝並有效地控制了Steem 網絡。
在另一個例子中,穩定幣協議Beanstalk 被發現容易遭受閃電貸治理攻擊,一名攻擊者獲得了一筆貸款,以獲取到足夠數量的Beanstalk 治理代幣,從而立即通過了一項惡意提案,允許他們控制了Beanstalk 的1.82 億美元儲備資金。與Steem 的治理攻擊不同的是,Beanstalk 的攻擊是發生在一個區塊的時間範圍內的,這意味著在任何人作出反應之前,攻擊就已經結束了。
雖然這兩次攻擊是在公開場合和公眾視線下發生的,但治理攻擊也可以在很長的一段時間內秘密進行。攻擊者可能會創建大量匿名賬戶,並緩慢累積治理代幣,同時表現得像任何其他持有者,以避免被人懷疑。事實上,考慮到很多DAO 的選民參與度往往很低,這些賬戶可能會長時間處於休眠狀態而不會引起懷疑。從DAO 的角度來看,攻擊者的匿名賬戶可能有助於呈現健康水平的去中心化投票權。但最終攻擊者可能會達到一個閾值,即這些女巫錢包有權單方面控制治理,而社區卻無法做出回應。同樣,惡意行為者可能會在投票率足夠低時獲得足夠的投票權來控制治理,然後在許多其他持有者不活躍的情況下嘗試通過惡意提案。
雖然我們可能認為所有的治理行動,都是市場力量發揮作用的結果,但在實踐中,由於激勵失敗或協議設計中的其他漏洞,治理有時會產生低效的結果。正如政府決策可能會被利益集團甚至是簡單的慣性所捕獲一樣,DAO 治理如果結構不當,可能會導致較差的結果。
那麼,我們如何通過機制設計來應對此類攻擊呢?
根本挑戰:不可區分性
代幣分配的市場機制,無法區分想要為項目做出有價值貢獻的用戶以及高度重視破壞或以其他方式控制項目的攻擊者。在一個可以在公共市場上買賣代幣的世界中,從市場的角度來看,這兩個群體在行為上是沒有區別的,兩者都願意以越來越高的價格購買大量Token。
這種不可區分的問題,意味著去中心化治理並不是免費的。相反,協議設計者面臨著公開去中心化治理以及保護其係統免受試圖利用治理機制的攻擊者攻擊之間的根本權衡。社區成員獲得治理權力和影響協議的自由越多,攻擊者就越容易使用相同的機制進行惡意更改。
這種不可區分性問題在權益證明(PoS)區塊鍊網絡的設計中很常見的,此外,代幣的高流動性市場使攻擊者更容易獲得足夠的權益來破壞網絡的安全保障。儘管如此,代幣激勵和流動性設計的結合,使得PoS 網絡成為可能。而類似的策略可幫助保護DAO 協議。
評估和解決脆弱性的框架
為了分析不同項目面臨的漏洞,我們使用由以下等式捕獲的框架:
為了使協議是安全的(可以抵禦治理攻擊),攻擊者的利潤應該是負的。在為項目設計治理規則時,該等式可用作評估不同設計選擇的影響的指南。為了減少利用該協議的動機,該等式意味著三個明確的選擇:降低攻擊的價值,增加獲得投票權的成本,以及增加執行攻擊的成本。
1、降低攻擊的價值
限制攻擊的價值可能會很困難,因為項目越成功,成功的攻擊就越有價值。顯然,一個項目不應該僅僅為了降低攻擊的價值而故意破壞其自身的成功。
然而,設計者可以通過限制治理功能的範圍來限制攻擊的價值。如果治理只包括更改項目中某些參數的權力(例如貸款協議的利率),那麼潛在攻擊的範圍要比治理允許對治理智能合約進行全面控制時要窄得多。
治理範圍可以是項目階段的函數。在項目早期,當項目找到立足點時,可能會有更廣泛的治理,但在實踐中,治理可能會受到創始團隊和社區的嚴格控制。隨著項目的成熟以及去中心化控制,在治理中引入一定程度的摩擦可能是有意義的——至少,最重要的決策需要大量社區成員的參與。
2、增加獲得投票權的成本
項目方還可以採取措施使獲得攻擊所需的投票權變得更加困難。代幣的流動性越強,攻擊者就越容易獲得投票權,這幾乎是自相矛盾的,項目方可能希望為了保護治理而減少流動性。人們可以嘗試直接降低代幣的短期可交易性,但這在技術上可能不可行。
為了間接減少流動性,項目方可以提供激勵措施,使個人代幣持有人不太願意出售。這可以通過激勵性質押來實現,或者通過賦予代幣超越純粹治理的獨立價值來實現。代幣持有人獲得的價值越高,他們就越能與項目的成功保持一致。
獨立代幣的好處可能包括親身參與活動或社交體驗。至關重要的是,這樣的好處對與項目方合作的個人來說是很有價值的,但這對攻擊者來說是無用的。提供這些好處會提高攻擊者在獲取代幣時面臨的有效價格:由於獨立的好處,當前持有人將不太願意出售,這會提高市場價格,然而,雖然攻擊者必須付出更高的代價,但獨立功能的存在並沒有提高攻擊者獲取代幣的價值。
3、增加執行攻擊的成本
除了提高投票權的成本外,我們還可以引入摩擦,使攻擊者即使在獲得代幣後也更難行使投票權。例如,設計人員可能需要某種用戶身份驗證才能參與投票,例如KYC 檢查或聲譽分數閾值。人們甚至可以首先限制未經認證的參與者獲取投票Token的能力,可能需要一些現有的驗證者來證明新參與方的合法性。
從某種意義上說,這正是許多項目分配其初始代幣的方式,確保受信任方控制很大一部分的投票權。 (很多權益證明解決方案使用類似的技術來保護其安全性,即嚴格控制誰有權獲得早期權益,然後逐步去中心化)
或者,項目方可以這樣做,即使攻擊者控制了大量投票權,他們在通過惡意提案時仍然面臨著困難。例如,一些項目有時間鎖的設定,因此在交換後的一段時間內無法使用代幣進行投票。因此,試圖購買或借入大量代幣的攻擊者將面臨額外成本,因為他們需要等待才能真正投票,並且投票成員可能會注意到並阻止他們的潛在攻擊的風險。委託在這裡也很有幫助,通過賦予積極但非惡意的參與者代表他們投票的權利,不想在治理中發揮特別積極作用的個人,仍然可以為保護系統貢獻他們的投票權。
一些項目還使用了否決權機制,允許將投票推遲一段時間,以提醒不活躍的選民注意潛在危險的提案。在這樣的方案下,即使攻擊者提出惡意提案,選民也有能力做出回應並關閉它。這些設計背後的想法是,阻止攻擊者偷偷通過惡意提案,並為項目社區提供時間來製定響應。理想情況下,明確符合協議利益的提案不必面對這些障礙。
例如,在Nouns DAO 中,否決權是由Nouns 基金會持有的,直到DAO 本身準備好實現替代方案為止。正如他們在網站上所寫的那樣:
“Nouns 基金會將否決那些給Nouns DAO 或Nouns 基金會帶來重大法律風險或存在風險的提案。”
***
項目方必須達成平衡,以允許對社區變化(有時可能不受歡迎)保持一定程度的開放性,同時不允許惡意提案從縫隙中溜走。通常來說,只需要一個惡意提案就可以使協議失效,因此清楚地了解接受和拒絕提案的風險權衡至關重要。當然,在確保治理安全和使治理成為可能之間存在著高水平的權衡,因為任何引入摩擦以阻止潛在攻擊者的機制,當然也會使治理過程更具挑戰性。
我們在這裡概述的解決方案,介於完全去中心化治理和為了協議的整體健康而犧牲部分去中心化之間。我們的框架強調了項目方在尋求確保治理攻擊不會有利可圖時可以選擇的不同路徑。我們希望社區將使用該框架通過自己的實驗進一步開發這些機制,使DAO 在未來更加安全。