時間:2021-12-29|瀏覽:396
治理程序(Governance)是協(xié)議的最終擁有者。無論是獨裁還是富豪統(tǒng)治(plutocracy),治理程序控制著相關(guān)協(xié)議的每一個可變動的方面以及它們?nèi)绾巫兓?。不像傳統(tǒng)的公司,區(qū)塊鏈應(yīng)用的治理程序是透明的、由專門的智能合約來定義(因此是確定性的),而且改變了什么也對所有人可見。但有光的地方就有暗。治理程序也大可以犧牲整個系統(tǒng)來獲得利益,我們稱之為 “治理程序可抽取價值(GEV)”。同樣不像傳統(tǒng)公司的是,沒有司法框架來制約糟糕的治理。
什么是治理程序?
協(xié)議的治理可以用兩條軸來體現(xiàn):哪些東西受治理程序控制、有多少人參與治理。每種協(xié)議都有自己的目標,因此設(shè)計空間也很多樣。一些協(xié)議本身是不可變更的,另一些則有非常少的參數(shù)(比如費率切換和暫停功能),有一些甚至能把業(yè)務(wù)合約的功能整個替換掉(或曰 “可升級”)。最終,控制權(quán)可能無人可擁有,或會落在一人手上,一小群人手上(多簽名合約對應(yīng)的實體)或者一大群人掌中(治理代幣投票)。如果沒有機制來制衡權(quán)力,合約的復(fù)雜性和靈活性就會成為機會主義的溫床。
GEV 爆破
治理程序會把用戶的終極利益放在心上嗎?太滿的話好像都不對 : )GEV 爆破可以大體分為兩類:資本結(jié)構(gòu)爆破和短期主義。
資本結(jié)構(gòu)爆破
資本結(jié)構(gòu)爆破俗稱 “跑路(rug pull)”,包括治理程序從系統(tǒng)中偷取擔(dān)保品、或者直接把擔(dān)保品劃給自己帶走。跑路類似于銀行拿著儲戶的錢跑了,雖然資本結(jié)構(gòu)爆破可以做得更隱秘、更間接。大多數(shù)用戶都不會把錢放進一個帶有明顯可調(diào)用的跑路函數(shù)的合約。但開發(fā)者可以后面再加入跑路函數(shù),或者利用系統(tǒng)的結(jié)構(gòu)以間接(且讓人眼花繚亂)的辦法跑路。這里有一些例子:
惡意升級跑路。正常來說,在一個銀行里面,用戶只能存錢和取出屬于自己的錢,不應(yīng)該能取出別人的錢。Compounder 最初的設(shè)計中是沒有后門的。但是,開發(fā)者升級合約的時候就加入了一個跑路函數(shù),讓他們可以偷走總計 1080 萬美元的擔(dān)保資產(chǎn)。雖然升級生效之前有 24 小時的時間鎖,在此期間用戶可以取出自己的資產(chǎn),但很少用戶會真的密切監(jiān)控合約的情況。
無限鑄幣爆破。PAID network 的 erc20 代幣合約所有者賬戶只有一個,該賬戶可以鑄造新幣。在攻擊中,開發(fā)者鑄造了幾百萬個幣,吸干了 Uniswap 交易所中的 PAID-ETH 資金池,然后拿著 ETH 跑路,留下無數(shù)因為超級通脹而價值歸零的 PAID。
出賣少數(shù)股東。DigixDAO 投票通過把 ICO 集資退回給代幣持有者的決定,因為這些當(dāng)時收集的資本甚至比治理代幣還要更有價值。在幕后,是一個聯(lián)盟掌控著大部分的股份,大家并不清楚這些人都有誰,他們會怎么投票(Digix 團隊一直高聲反對解散)。在投票啟動之前,各方可以從少數(shù)股東處購買 DigixDAO 代幣,其市場價格與其對應(yīng)的 ETH 儲備之間差額高達 48%。到現(xiàn)在大家也不知道,這些買入者就是參與聯(lián)盟的成員、想出賣少數(shù)股東來獲利,還是說他們是無關(guān)人等,只是在賭投票結(jié)果。
投票跑路。MakerDAO 理論上有一個攻擊界面:治理程序可以投票把系統(tǒng)中的所有擔(dān)保品交給他們自己,而無需提醒終端用戶。不過風(fēng)險已經(jīng)被時間鎖減輕。
短期主義
雖然治理者和用戶都希望協(xié)議成長,但對于具體的辦法和步驟,他們可能有不同意見。用戶的目標是可持續(xù)的成長。相反,治理代幣的持有者可能不惜一切代價追求增長。所以下高風(fēng)險的重注來獲得眼前可見的好處(手續(xù)費 / 讓治理代幣升值)也不是不可以,雖說這會損害整個系統(tǒng),讓它變得更脆弱。短期主義可能在很多事情上出現(xiàn)。一個例子是運行系統(tǒng)使用風(fēng)險更高的資產(chǎn)和提高整個系統(tǒng)的債務(wù)上限。
Cream Finance 是 Compound 的一個復(fù)制品,它加入了許多低成長的 DeFi 代幣,而且不設(shè)債務(wù)上限,來吸引用戶和體量。但是,F(xiàn)TT 代幣存款最終構(gòu)成了 Cream 內(nèi)存款的 40%,大幅提高了這個協(xié)議的風(fēng)險。如果 FTT 價格暴跌,Cream 上的出借人可能會損失資產(chǎn)。
解決 GEV
在傳統(tǒng)公司里面,GEV 的預(yù)防機制有保守派勢力,還有監(jiān)管者和集體訴訟,作為遏止爆破行為的大棒。但這些可沒法翻譯成智能合約(其邏輯都是提前編程好的)。在一個鏈上世界,治理程序必須預(yù)先編程好,并且有遏制作惡的激勵機制,因為我們都 知道,沒有中心化的機構(gòu)能在爆破后為我們主持正義。
分散權(quán)力 —— 多簽名和代幣投票
在安排誰來治理協(xié)議這件事情上,有很多考量。僅安排一個所有權(quán)賬戶,對開發(fā)者來說是最方便的,升級這個協(xié)議只需要一把密鑰,而且也無需與其他時區(qū)的私鑰持有者或無動于衷的代幣持有者協(xié)調(diào)。開發(fā)過程只需單方面投入,可以很快,但用戶就必須信任這個私鑰的持有者。
多簽名控制和代幣投票制對于更成熟的協(xié)議來說是更好的選擇,可以獲得更廣泛的共識。雖然在現(xiàn)實中,如果開發(fā)團隊自己控制了對大部分投票代幣,系統(tǒng)還是會回到獨裁模式或者聯(lián)盟模式中。
不設(shè)或者有限的合約可升級性
早期的智能合約都嘗試取得字面意義的 “不可更改性”。對合約的改變和升級是不可能的。如果合約出現(xiàn)了 bug,或者是讓智能合約的開發(fā)變成像是在設(shè)計不可改進的硬件一樣,都是很可怕的,就像沒法修復(fù)的火星探測器一樣。在不可升級的合約里加入新功能能需要用戶自己遷移資金。從某個角度來看,這是一種特性(可以想象代碼是不會變的),但也可以看成是一種可怕的用戶體驗黑洞(YAM 的用戶不得不兩次遷移他們的 token)。
最直接的改進方法是設(shè)計一個最小化的升級空間,比如暫停功能,在 bug 被發(fā)現(xiàn)的時候是非常實用的,還有一些非常有限的參數(shù)。
最靈活的設(shè)計是使用可升級的合約(組合),一個核心(代理)合約存儲所有的數(shù)據(jù),并引用一個可替換的合約來裝載所有的業(yè)務(wù)邏輯。用戶甚至不知道底層的合約被升級過,因此用戶體驗很絲滑(當(dāng)然跑路也很絲滑)。