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