區塊鏈治理注意事項
作者:Vitalik Buterin
原标题:《Notes on Blockchain Governance》
發表時間:2017 年 12 月 17 日
在區塊鏈治理方面,最近比較有趣的一個趨勢是鏈上代幣持有者投票制再度作為多目標決策機制興起。代幣持有者的投票有時會用來決定運行網絡的超級節點(如 EOS、NEO、Lisk 等系統中的委任權益證明(DPOS)機制)由誰操作,有時用來對協議參數(如以太坊的 Gas 上限)進行表決,有時用來進行表決或直接實行批量協議升級(如 Tezos)。在上述所有情況下,投票都是自動進行的------協議本身包含了更改驗證程序集或更新其自身規則所需的一切邏輯,而且是根據投票結果自動進行的。
明確的鏈上治理通常被認為具有以下幾大主要優勢。首先,與比特幣所倡導的高度保守的理念不同,它可以迅速發展並接受必要的技術改進。其次,通過建立一個明確的去中心化框架,可以避免非正式治理上的已知缺陷,人們覺得非正式治理太不穩定,又容易出現鏈分裂,或是變得在事實上過於中心化------後者與1972年那篇著名的文章《無結構的暴政》中論證的一樣。
引自Tezos文檔:
雖然所有區塊鏈都會通過提供經濟激勵來維護賬目的一致性,但是沒有區塊鏈具備強健的鏈上機制,能夠無縫修改協議規則並獎勵協議開發。因此,第一代區塊鏈事實上給予了中心化的核心開發團隊或礦工制定設計選擇的權力。
以及:
沒錯,但是你為什麼想降低 [少數鏈分裂 ] 的難度?分裂會破壞網絡效應。
用於選擇驗證者的鏈上治理還有一個好處是允許網絡對驗證者提出高計算性能的要求,同時又不會引入經濟中心化風險和公共區塊鏈中的其他缺陷(例如驗證者困境)。
總而言之,鏈上治理目前看來似乎非常實惠……那麼它的問題出在哪裡呢?
何為區塊鏈治理?
首先,我們需要更清楚地描述"區塊鏈治理"這一過程是什麼。一般而言,有兩種非正式的治理模式,我分別稱之為治理的"決策"觀和治理的"協調"觀。決策函數觀將治理視為一個函數 f(x1,x2 … xn) -> y,其中輸入的是各合法利益相關者(參議員、總統、財產所有人、股東、選民等)的願望,輸出的是決策。
決策函數觀通常可以用作一種近似值,但是它顯然很容易走向失效並失敗:人們時常可以違反規定,並且僥倖免受懲罰,有時規則本身是模稜兩可的,有時會引發……------至少在某些時候,這三種可能性是好事。而且在通常情況下,即使是系統內的行為也是由系統外行事的可能性產生的激勵所造就的,這至少在某些時候又是一件好事。
相比之下,治理的協調模式將治理視為以多層的形式存在的。在現實世界中,底層是物理定律本身(換作一位地緣**實在論者可能會說是槍和炸彈),在區塊鏈領域中,我們可以進一步抽象化,將其視作每個人具備的一種能力,能夠以用戶、礦工、利益相關者、驗證者或其他任何經區塊鏈協議許可的代理人身份運行任何自己想運行的軟件。底層往往是最終決定層;例如,如果所有比特幣用戶某天開始覺醒,決定編輯其客戶端源代碼,並使用跟進特定 ERC20 代幣合約餘額的以太坊客戶端來替換整個代碼,那麼這就表示該 ERC20 代幣就是比特幣。雖然底層的最終治理權力是無法阻擋的,但是人們在這一層所採取的行動可能會受其上層的影響。
第二層(也是至關重要的一層)是協調機制。協調機制旨在圍繞個人應如何以及何時採取行動創建焦點,以便更好地協調行為。在區塊鏈治理和現實生活中都存在很多情況,如果你只是按一定方式行事,那麼你很可能會一事無成(或者更糟),但是如果每個人都一起行動,就可以實現預期結果。
上圖是一個抽象的協調博弈。與其他人採取一致行動也會使你受益
在這些情況下,你與其他人利益相關。當其他人都在行動之時,你也要行動;當其他人都停止之時,你也要停下來。你可以將協調機制想像成是在天空中掛起的綠旗或紅旗,用來指揮"行"或"停",這就形成了一種文化,即所有人都會關注這些旗幟,而且(通常會)聽從指揮。為什麼人們會有動力跟隨這些旗幟行事?因為其他人已經對旗幟惟命是從了,你也會有動力跟大家做一樣的事情。
上圖是一位拜占庭將軍在號令部隊前進。此舉的目的不僅僅是為了調動起士兵的勇氣和士氣,也是為了安撫他們,讓他們在同樣的集體氛圍中勇於衝鋒陷陣,因此士兵個人不會因為孤軍奮戰而絕望自殺。
強烈聲明:協調旗幟的概念涵蓋了我們所說的"治理"的全部內容;在協調博弈(或者更普遍的說法,多重均衡博弈)不存在的情況下,治理的概念是毫無意義的。
在現實世界中,軍事命令具備旗幟的通用功能,而在區塊鏈世界中,關於這類旗幟最簡單的一個例子是告訴人們是否"正在進行"硬分叉的機制。協調機制可以是非常正式的,也可以是非正式的,經常會給出模稜兩可的意見。在理想情況下,旗幟總是非紅即綠。然而有時候,旗幟可能是黃色的,甚至是全息的,即對於某些參與者來說是綠色的,對其他人來說是黃色或紅色的。有時也會存在多種旗幟互相衝突的情況。
因此治理的關鍵問題變成了:
第一層應該是什麼?換言之,初始協議本身應該建立起什麼樣的功能?這會如何影響改變公式化(即類似決策函數的)協議的能力,以及不同類型的代理人以不同方式行事的權力水平?
第二層應該是什麼?換言之,應該鼓勵人們關心哪些協調機制?
代幣投票的作用
以太坊也有代幣投票的歷史,包括:
- 對DAO提案的投票: https://daostats.github.io/proposals.html
- DAO Carbonvote:http://v1.carbonvote.com/
- EIP 186/649/669 Carbonvote:http://carbonvote.com/
上述三例講的都是松耦合型代幣投票,或是作為第二層協調機制的代幣投票。以太坊確實沒有任何緊耦合型代幣投票(即作為第一層協議內特徵的代幣投票)的例子,不過以太坊確實有一則緊耦合型礦工投票的例子:礦工對 Gas 上限進行投票的權利。顯然,緊耦合型投票和松耦合型投票在治理機制領域內是競爭關係,因此值得剖析的一點是:它們各自的優缺點是什麼?
假定交易成本為零,又是作為唯一的治理機制的話,二者顯然是等效的。如果一場松耦合投票下來要求做出某個改變,就等於揚起了"綠色旗幟",鼓勵每個人下載更新;如果少數人想要反抗,他們要做的僅僅是不下載更新;如果換作是緊耦合型投票要求做出這個改變的話,改變就會自動進行,如果少數人想要反抗,他們可能會安裝一個硬分叉更新來取消這一改變。然而,製作一個硬分叉顯然需要一定的交易成本,這就導致了一些重要的差異。
其中一個非常簡單又重要的差異是,緊耦合型投票會默認支持區塊鏈採取多數人的意見,這就要求少數人花費很多努力去調整一個硬分叉,從而保持區塊鏈的現有屬性,而松耦合型投票僅是作為一個協調工具,仍然要求用戶實際下載並運行會執行任何給定分叉的軟件。不過,這二者之間還有很多其他差異。現在,讓我們通過一些反對投票的論點,並剖析每個論點是如何應用於第一層投票和第二層投票的。
投票者參與度較低
迄今為止,令代幣投票機制飽受詬病的一點是,無論這些機制在何處嘗試,其投票者參與度會往往很低。DAO Carbonvote 的投票者參與率只有4.5%:
另外,財富分配非常不平等,這兩個因素共同產生的結果如下圖所示,該圖由一名DAO分叉的批評者繪製:
- Total Ether Supply:以太幣總供給量 | One voter:一名投票者 | No Fork:不分叉 -
EIP 186 Carbonvote 大約有 270 萬份以太幣投票。DAO 提議的投票也不比前者更好,其參與率從未達到 10%。在以太坊領域之外,情況也不容樂觀;即使是在其核心社區契約正是圍繞投票進行設計的比特股中,支持率最高的候選代表也不過只得到了 17% 的票數,在 Lisk 系統中則高達 30%,不過我們稍後會討論這些系統本身的其他問題。
投票者參與度低意味著兩點。首先,投票要取得合法性認可比較困難,因為它只反映了少部分人的意見。其次,僅持有一小部分代幣的攻擊者就能夠左右投票。無論是緊耦合型還是松耦合型投票都存在這些問題。
博弈論攻擊
除了媒體關注度高的"重大攻擊"之外,DAO 還存在一些小得多的博弈論漏洞;HackingDistributed 上的一篇文章對此做了很好的總結。然而,這只是冰山一角。即使所有細枝末節都正確地執行了,投票機制通常也存在一個很大的缺陷:在任何投票中,任意特定投票者影響投票結果的可能性都很小,因此每個投票者必須正確投票的個人動機也微不足道。而且,如果每個人的利益相關性都很小,他們正確投票的動機也就更加微不足道。因此,在參與者之中散布相對較少的賄賂或許就足以影響他們的決定,很可能是讓他們做出在集體決策的情況下不會同意的決定。
現在你可能會說,人們並非謀求利益最大化的邪惡自私之徒,他們不會只因為上述計算結果表明他們的個人影響力很小就接受 0.5 美元的賄賂,並投票贊成向 Josh arza 提供 2000 萬美元;相反,他們會無私地拒絕為惡。下文對這一批評做出了兩則回應。
第一點,要行看似合理的"賄賂"不乏其道;例如,交易所可以為存款提供利率(或者說得再含糊一點,交易所自己出資打造良好的界面和功能),交易所運營商可以隨心所欲地使用大量存款進行投票。交易所從一片亂象之中牟利,因此其動機顯然與用戶和代幣持有人相差很大。
第二點,也更令人沮喪的一點是,在實踐中看來,人們(至少從加密代幣持有者的身份來看)是利潤最大化者,而且貌似不認為收受一兩個賄賂是邪惡自私之舉。由"圖A"所示,我們可以研究一下 Lisk 的情況,其候選代表池似乎已經被兩大主要團體成功控制,它們明確地賄賂了代幣持有者為其投票,並要求池裡的每位成員為其他人投票。
這是 LiskElite 內 55 位會員(共 101 位)的投票:
對圖中內容的翻譯
會員規則:
除中國代表以外的每位 Elite 會員每週必須將他/她生產的 LISK 的 25% 分享給他/她的投票者;
除中國代表以外的每位 Elite 會員必須將其成產的 LISK 的 5% 捐給 Elite Lisk 基金,用作支持 Lisk 生態系統之途;
每位 Elite 會員必須給其他會員投票;
Elite 的會員註冊系統現已關閉,目前暫不接受新會員。
投票者規則:
1.你必須為所有 Elite Group 的會員投票才能獲得獎勵;
2. Elite每週會發放一次獎勵,並自動進入投票者的賬戶。
Elite Group保留所有權力。
這是 LiskGDT 內 33 位成員的投票:
對圖中內容的翻譯:
資金池
10%用作 GDT Lisk 發展之途,90% 作為獎勵返還給投票者
GDT 成員
不在支付名單之列,並返還其獎勵,用作銀級及以上級別的 GDT 獎勵
由"圖表B"可見,Ark 中的一些投票者因賄賂受益:
此處,要注意緊耦合型和松耦合型投票之間還有一個關鍵性區別。在松耦合型投票中,直接或間接的投票賄賂都有可能發生,不過如果社區一致認為某個特定提議或某組投票構成博弈論攻擊,他們可以通過社交方式同意忽略它。事實上,這種情況已經發生過了------ Carbonvote 有一個對應已知交易所地址的地址黑名單,來自這些地址的投票一律作廢。在緊耦合型投票中,無法在協議層面創建這樣的黑名單,因為同意將誰列入黑名單本身就是一種區塊鏈治理決策。然而,因為黑名單是由社區創建的投票工具的一部分,只會間接影響協議的變化,包含不良黑名單的投票工具可能會遭社區拒絕。
值得注意的是,這部分並非是在預測所有緊耦合型投票系統很快都會屈服於賄賂攻擊。許多(緊耦合型)系統完全有可能可以倖存下來,其背後有一個很簡單的原因:所有這些項目都有進行過大型預挖礦的創始人或基金會,他們都充當重要的中心化角色,立志於使其平台的成功不易受賄賂影響,並擁有足夠多的代幣能夠抵禦大部分賄賂攻擊。不過,雖然在項目早期的時候,這種中心化信任模式在某些環境中可能有用,但它從長遠來看是不可持續的。
非代表性
反對投票的一個重要原因是代幣持有者只是一類用戶,而且其利益可能與其他用戶類型相衝突。在像比特幣這樣的純加密貨幣案例中,價值存儲用途("持有(hodling)")和交換媒介用途("購買咖啡")就本質上來說衝突的,因為價值存儲比交換媒介用例更加重視安全性,而後者則更強調可用性。對於以太坊,該衝突則更糟糕,因為許多人使用以太坊的原因與以太幣完全無關(參見:以太貓),甚至與一般而言承載價值的數字資產無關(參見:以太坊域名服務)。
此外,即使代幣持有者是唯一相關的一類用戶(可以想像成一個有成型社會契約,且其目的僅僅是成為下一代數字黃金的加密貨幣),我們還是要面對這個挑戰:富有的代幣持有者會比普通的持有者具有更大的發聲權,為持有代幣集中化大開方便之門,通往無阻礙的決策集中化。或者,換言之…
如果你想了解一個同時集這些缺點於一身的項目,請參閱:https://btcgeek.com/bitshares-trying-memorycoin-year-ago-disastrous-ends/。
該弊病對於緊耦合型和松耦合型投票來說是相同的;不過,松耦合型投票更適合達成折中方案,由此減輕了上述問題,我們將於後文討論這一點。
中心化
讓我們來看看我們目前在以太坊進行的緊耦合型投票現場實驗------ Gas 上限。以下是過去兩年來 Gas 上限的演變:
-以太坊 Gas 上限均值圖表-
你可能會注意到這條曲線的整體感覺有點像另一張你可能很熟悉的圖表:
-收入稅的邊際最高稅率:1913 ~ 2003 -
從根本上來說,它們看起來都像是具有魔力的數字,由一個相當中心化的團隊坐在一個房間裡創造並不斷調試出來的。圖一中(Gas 上限投票)發生了什麼?礦工大體都會遵循社區喜歡的方向,也就是通過類似於推動硬分叉的社會共識的幫助下進行的(核心開發者支持、Reddit 點讚等等;而在以太坊,Gas 上限從來沒有像代幣投票一樣引起如此嚴重的爭議)。
因此,如果投票者不具備技術知識,只能服從某個專家組的支配,那麼投票實際上是否能提供真正的去中心化結果就不得而知了。這又是個同時存在於緊耦合型和松耦合型投票的弊病。
更新:自從撰寫這篇文章以來,以太坊礦工似乎已經設法將 Gas 上限從 670 萬提高到了800萬,他們甚至都沒有與核心開發者或以太坊基金會討論過。因此我們還是有希望的;不過需要要想達到這一步,需要在社區建設和其他非技術工作方面攻堅克難。
數字化章程
有人建議採用"數字化章程"來降低失控的不良治理算法的風險。數字化章程通過數學方法指明了協議應該具備的期望屬性,並要求任何新的代碼變化都帶有可由計算機驗證的證明,以示它們滿足這些屬性。乍看之下,這似乎是一個好主意,但我認為我們也應該審慎對待。
總的來說,制定協議屬性的規範並使這些規範服務於某個協調旗幟的函數是一個非常好的想法。對於一個協議中我們認為既重要又有價值的核心屬性來說,這使我們能夠將其銘記,使其更難改變。然而,這種做法恰恰應該在松耦合(即第二層)模式中實行,而非緊耦合(即第一層)模式。
從根本上來說,任何有意義的規範實際上都很難完整表達出來;這是價值複雜性問題的一部分。即便是像 2100 萬代幣總量限制那樣看似明確的東西也是如此。當然,我們可以添加一行代碼,聲明 total_supply(總供給量)\<= 21000000 ,並在一旁附上評論說:"無論如何都不能刪除",不過在這件事上還有許多迂回之法。例如,我們可以設想有一個增加強制性交易費用的軟分叉,自上次將代幣發出之後,強制性交易費用與代幣的價值×時間值成正比,這相當於滯期費,也就相當於通貨緊縮。人們還可以創造另一種叫作 Bjtcoin 的貨幣,擁有 2100 萬個新單位,並且增加了一個特徵------如果有人發起了一個比特幣交易,礦工可以攔截該交易並強佔其比特幣,轉而將等量 bjtcoin 發送給接收方;這很快就會迫使比特幣和 bjtcoins 成為彼此的替代物,不用添加代碼就能將"總供給量"增加到 4200 萬。不干涉應用程序狀態之類的"軟性"規範執行起來更難。
我們希望如果有協議變更違反了某條保證條例,即使經投票通過也應被視為不合法的------應該有一個揮動紅色旗幟的協調機制。我們也希望如果有協議變更雖然遵循了規範的字面義,但公然違背其精神,仍應被視為不合法的。存在於第二層(即在社區成員的觀念中,而非協議的代碼中)的規範最能達成這一目標。
趨向平衡
然而,我也不願反過來說代幣投票或其他顯式的鏈上投票方案在治理方面沒有立足之地。主要的替代方案似乎是核心開發者共識,不過我認為一個由"象牙塔內知識分子"控制的系統的失敗模式也是一個不容小覷的真正威脅。這些"知識分子"更注重抽象的概念和解決方案,他們對技術進步的興趣遠比對改進用戶體驗和交易費等日常現實問題的興趣要高得多。
那麼我們該如何解決這一難題呢?首先,我們在傳統**的語境中會注意到 slatestarcodex 中的幾段話:
低級錯誤是:你發現某個系統有些 Moloch 化 [即屈服於偏離正道的特殊利益 ],於是你說:"好吧,我們會把它置於另一個系統的控制之下,從而解決這個問題。我們還會寫上 '不要 MOLOCH 化 '的鮮紅色標記,以此控制該系統。
( "我看到資本**有時會偏離正道。讓我們把它置於政府的控制之下,從而解決這一問題。我們只會讓正直之人擔任要職,以此來控制政府 "。)
我不會宣稱有一個很好的替代之法,但是新自由**能夠提供在某些情況下合適的替代之法------找到幾個良好的系統,根據大致符合人類福祉的不同標準對它們進行優化,讓它們在形成制衡的結構中相互競爭,期望它們在不同的地方出問題,就像是瑞士奶酪那樣,賦予人們一定的選擇自由,好讓他們隨時脫離任何糟糕的系統,然後把剩下的一切都交給文化演進。
在區塊鏈治理中,這似乎是唯一一條出路。我所倡導的區塊鏈治理方法是"多因素共識",對不同的協調旗幟、機構和團體進行投票,其最終決定取決於所有這些機制共同得出的結果。這些協調旗幟可能包括:
- 路線圖(即項目歷史上發布的一系列有關項目發展方向的早期思路)
- 占主要地位的核心開發團隊之間達成的共識
- 代幣持有者投票
- 通過某種防女巫攻擊的投票系統進行的用戶投票
- 既定規範(例如,無應用干涉、2100 萬代幣限制)
我認為讓代幣投票成為決定是否實行某個變革的協調機制之一是非常有用的。雖然這是一個有缺陷又不具代表性的信號,但是它能夠抵禦女巫攻擊------如果你看到有 1000 萬枚以太幣投給某個提議,你不能只是輕描淡寫地說一句:"哦,這不過是買了擁有虛假社交媒體帳戶的俄羅斯水軍。" 這也是一個與核心開發團隊完全脫節的信號,如果有需要的話,它可以作為一個。但是,如上文所述,有充足的理由可以解釋代幣投票為何不應該成為唯一的協調機制。
支撐這一切的是其與傳統系統的關鍵區別,這也是區塊鏈的有趣之處:支撐整個系統的"第一層"要求每個用戶同意一切協議變更、以及他們的自由和可信的威脅,並在有人試圖將他們認為惡意的改變強加給他們之時創建分叉。
在一些有限的情況之下,緊耦合型投票也是可行的------例如,儘管存在缺陷,但是礦工能夠對 Gas 上限進行投票表決,這一特徵已經在多個場合被證明非常有利。比起由協議在第一天進行硬編碼的任意特定 Gas 上限或區塊大小限制出現嚴重問題的風險,礦工試圖濫用權力的風險可能更低。在這種情況下,允許礦工對 Gas 上限進行投票是一件好事。然而,"允許礦工或驗證者對時刻需要改變的幾個特定參數進行投票"與賦予他們對協議規則的任意控制權,或是允許投票控制驗證權大為不同。而且,從理論和實踐上來看,這些關於鏈上治理的廣闊願景有著更加朦朧的潛力。