避免治理攻擊,藍籌 DeFi 的治理經驗
作者:0xEdwardyw,Tokeninsight
加密領域針對協議的攻擊不時都會出現,其中之一是治理攻擊。攻擊者成功取得協議的治理權,鑄造大量通證以及盜取全部協議金庫資產。最近一次事件就在2月份,一個風險投資 DAO - Build Finance 遭遇了治理攻擊導致協議徹底失敗。這篇文章會對幾個藍籌 DeFi 的治理機制進行對比介紹,看看它們是如何避免治理攻擊。
不同級別的去中心化治理程度
Source: OurNetwork: Deep Dive #2 -- Governance Extractable Value
一個協議發展的早期,控制權往往是由開發團隊管理的,並且是由單一密鑰控制,這種情況下不會存在治理攻擊的可能性。隨著協議的發展,開發團隊把一部分控制權逐漸分散出去,協議變成由多簽的形式管理。控制多簽的人可能包括開發團隊、社區的重要參與者、或者主要投資機構等等。這種情況同團隊完全控制協議在本質上沒有不同,都是由可信任的利益相關方一起治理,治理攻擊依然不可能出現。
隨著協議進一步向去中心化治理發展,發行治理通證將治理權完全分散給治理通證持有者,協議的重要改變由治理通證在鏈上投票決定,投票通過的治理提案按照預先設定的程序自動執行,這個時候治理攻擊的問題才會出現,協議需要仔細的設計治理機制來避免治理攻擊的發生。
Build Finance 的治理攻擊實例
Build Finance 是一個由 DAO 進行治理的協議,治理通證持有者可以投票鑄造通證和使用金庫。2月9日,在協議的 Discord 中,社區的調解人發言通知有人發起了惡意的治理提案,如果提案通過將導致該攻擊者自由鑄造協議通證。社區成功投票否決了這個提案,第一次治理攻擊沒有成功。
攻擊者把持有的通證轉入了另一個錢包,第二次發起了提案。這一次,協議的 Discord 機器人沒有偵測到新的提案(正常情況下機器人應當偵測到新提案,並將該提案放入一個特定的討論區)。這一次治理提案在社區沒有注意到的情況下在2月10日獲得了通過。
Build 協議有兩天的時間鎖,治理攻擊的提案在2月10日通過,開發團隊直到2月14日在 Twitter 上宣告攻擊者完全控制了 DAO 和通證鑄造權,並且鑄造了110萬通證。攻擊者將所有新通證在 DEX 上拋售,協議通證已一文不值。
根據 Build Finance 在其 Medium 頁面的介紹,協議採用了 Governor Bravo治理機制。Governor Bravo是由 Compound Finance 創建的一套成功的治理機制,被很多藍籌 DeFi 採用,包括了 Uniswap 和 AAVE。
Governor Bravo 允許轉移協議的控制權和金庫資金,所以攻擊者有機會獲得協議的全部治理權。儘管被藍籌 DeFi 協議廣泛的採用,這套治理機制本身並不可以阻止治理攻擊的發生。
成功的治理模型 Governor Alpha \& Bravo
Compound Finance 的 Governor Alpha 以及更新版本 Governor Bravo 治理模型被很多 DeFi 協議廣泛使用。Governor Bravo 的治理流程如下:
Source: Compound
治理提案的提出需要65,000 $COMP,提出的提案有兩天的審查期。之後進入3天的投票期,如果有超過一半的同意票,且不少於400,000的投票數,提案獲得通過並進入時間鎖。時間鎖為2天,之後提案會被協議自動執行。
Uniswap 使用 Governor Bravo 治理機制,治理的流程與 Compound 類似。Uniswap 大幅提高了提出治理提案與治理提案的通過門檻。提出提案需要250萬 $UNI 通證,按照2月21日價格這大約是 2,500萬美元。總投票數需要達到4,000萬 $UNI,接近4億美元的價值。
AAVE -- Governor Bravo 修改版
AAVE 的治理模型與 Governor Bravo 類似,但是增加了兩個元素。第一是將時間鎖分為快與慢兩種。重要性較低、風險較低的治理提案可以通過快時間鎖,快速得到執行。而影響重大的提案則需要經過慢時間鎖,讓社區有更多的時間做出反應。比如說一個治理攻擊提案被通過了,慢時間鎖讓社區有充足時間決定怎麼補救,要不要將整個協議 fork 一個新地址。
另一個重要的元素是 AAVE 的多簽衛士(AAVE Guardian)。在 Governor 機制裡,是有一個 Pause 功能的。Pause 可以暫停協議的鑄造、借款、轉移、清算這些功能,但是 Pause 沒辦法阻止治理攻擊者用足夠多的通證來通過一項治理提案。AAVE 的衛士功能允許直接取消一個提案,只要這個提案還沒有被執行,在整個流程的任何一點都可以直接取消。衛士功能可以最有效的阻止任何惡意治理提案。
安全措施
Governor Bravo 的很多元素已經是治理領域的黃金標準,不論其他協議採用了多麼不同的治理機制,都或多或少的包含了這些元素。
時間鎖:幾乎所有協議的採用了時間鎖。提案通過後與被系統執行之間的緩衝時間給予社區和通證持有者做出反應的時間。理論上,如果協議的使用者和通證的持有者對於某一提案有相反的看法,可以在時間鎖期間內退出協議以及賣出通證。時間鎖越長對於協議的保護越強,但是過長的時間鎖會導致當突發系統問題出現時,沒有辦法在短時間內修復。
對提案通過設定高要求:Uniswap 的例子中,通過提案所需要的通證價值非常高,進行治理攻擊的成本極高。而且,Uniswap 的金庫中全部為 $UNI 通證,就算攻擊成功,拿到了金庫控制權,$UNI 的市場價會迅速下跌導致攻擊者的收益未必能高過前期所付出的成本。
Source: Tokeninsight Annual DeFi report
- 多簽護衛:只要惡意治理提案被發現,這是最有效阻止治理攻擊的方法。但是在一個去中心化治理的框架中,應該把這種過大的權利賦予給誰是一個問題。AAVE 採用社區投票來決定10個護衛成員,在其中5個同意的情況下可以否決任何提案。
MakerDAO 的投票機制
MakerDAO 有一個和上述 Governor 治理機制完全不同的投票方式。在 Governor 中,治理通證持有者對某一項治理提案進行投票,無論最終通過還是否決,這一個投票流程都會終止,治理通證也會返還。
MakerDAO 使用持續的同意投票制 (continuous approval voting)。特點在於你對某一個提案用治理通證 $MKR 進行投票,當這個提案獲得通過及執行後,你的 $MKR 仍然在這個提案內,而不像其他投票機制會將治理通證自動退還。你持有的 $MKR 僅能對某一提案進行投票,無法復投。因此如果你想對新的提案進行投票時,需要手動將 $MKR 從舊的提案中取出。
新的提案獲得通過的條件是投票的數量超過前一個成功獲得通過的提案。
Source: MakerDao
例如2022年2月25日的提案收到82,001.5 $MKR 的投票,並且獲得通過等待執行。如果此時有新的提案需要進行投票,通過新提案所需要的票數便是82,001.5 $MKR(見上圖右側 System Info)。
更早之前已經獲得投票通過並且已經執行的提案,例如2022年1月24日獲得通過並且在1月26日已執行的提案。我們可以看到仍有20,050個 $MKR 留存在這個提案裡沒有被手動取出。
這種投票方法增大了新提案通過的門檻。由於很多 $MKR 留存在舊的提案裡,市場上可用來投票的通證數量相應的變少了,新提案要獲得通過需要吸引用戶把票從舊的提案中手動取出。
Curve 的 Vote-Lock 治理機制
在 Governor Bravo 和 MakerDAO 的持續同意投票制,每一個治理通證代表一票。治理通證可以在公開市場交易,也可以從借貸協議中借出。理論上,只要有足夠的抵押品,例如 $ETH,就可以借到足夠多的治理通證,例如 $UNI。可以用借來的治理通證發起治理攻擊,這樣就無需擔心成本的問題,如果$UNI 跌倒一文不值,攻擊者可以無成本還回給借貸協議。
在 vote-lock 機制裡,治理通證本身沒有投票權,需要將 $CRV 質押鎖定為 veCRV 才獲得投票權。鎖定期可以長達4年,鎖定期越長,投票權越大,投票權會隨著鎖定期時間流逝而減少。這令從市場上借來 $CRV 投票的可行性大大降低。
ve 機制廣受歡迎
自去年開始,veto-lock ( ve 機制)這種治理機制熱度快速提升,受到很多新項目的採用。其中一個例子是 Izumi Finance,主打流動性即服務的項目。與 Curve 相似,Izumi 有兩類通證,$iZi 和 veiZi。$iZi 持有者質押鎖定後獲得有治理權的 veiZi,veiZi 無法交易和轉讓。治理權和鎖定期成比例變化。
新型 ve 機制的出現
原始的 ve 機制無法交易和轉讓,近期像 Izumi Finance 和 Andre Cronje 支持的 Solidly 項目開始嘗試一個新模式,veNFT。
Izumi Finance 的 $iZi 質押鎖定後獲得的將是 veiZi NFT。原本的治理通證依然無法交易,但是代表治理權的 NFT 可以在 NFT 市場,例如 Opensea 進行交易。這個方法解決了 ve 機制資本利用效率低的問題,但是會對治理安全產生什麼影響還沒有出現相關的討論。
結語
藍籌 DeFi 協議所使用的治理機制都經受了時間的考驗,但他們並非完美,問題還是會時不時出現。沒有100%安全的治理機制,安全性是由不同類別的機制組合在一起達成的。這包括了一個好的治理機制,一個活躍的社區,以及一個經濟激勵機制來反激勵治理攻擊,讓攻擊的潛在收益無法覆蓋成本。
在風險管理領域,有一個瑞士奶酪理論。奶酪的每一切片就像是一個風控措施,但是每一個切片都有眾多小孔,就像每一個措施都有其弱點。當把這些奶酪切片堆積在一起時,其他切片就可以覆蓋別的切片上的小孔,風險事件穿透所有切片的機率大幅降低。
Source: https://thedecisionlab.com/reference-guide/management/swiss-cheese-model/
就像 Build Finance,攻擊者的第一次治理攻擊成功被社區否決,第二次攻擊由於社區沒有注意到才導致了提案被通過。一个活跃的社区就是一道风险防线,让这类攻击无法成功。又比如发起治理攻击的成本过大,可能根本不会有人做出尝试。
點擊下載 TokenInsight APP