詳解波卡新版治理Gov2:實現去中心化治理需要做什麼?
原文標題:《Governance V2》
作者:Polkadot
編譯:PolkaWorld
文本是波卡官方文檔 Polkadot Wiki 中的 「治理 V2」 部分,描述了波卡的新版治理體系,以及其和原治理體系(治理 V1)的對比。
Polkadot 采用一種複雜精巧的治理機制,使其能夠根據利益相關者集合的最終要求優雅地進化。其目標是確保大多數權益始終可以控制網絡。
本文檔中的內容會有更改。該治理協議已經經歷了幾次迭代(v1 和 v2),並且有更多變化正在計劃中(v2.5)。
Polkadot 的第一個去中心化治理系統 (v1) 由三個主要組件組成。
- 技術委員會:管理升級時間表的技術委員會。
- 理事會:一個經過投票批准、選舉產生的執行 「政府」,負責管理參數、admin 和支出提案。
- 公投:對其他所有事物的普遍投票系統,該系統賦予長期利益相關者更大的影響力。該系統在運行的頭幾年運行良好,有助於確保適當使用國庫資金並能夠及時升級和修復。與大多數早期技術一樣,系統和協議必須隨著自身的成熟而不斷進化,以改進其缺點並跟上現有的進步。例如,在 「治理 v1」 中,所有公投都具有相同的權重,因為一次只能對一個公投進行投票,並且投票期可以持續數週。這導致系統傾向於仔細考慮極少數提案,而不是廣泛考慮許多提案。於是 「治理 v2」 應運而生了!
「治理 v2」 或者叫 「Gov2」 改變了日常決策的實際方法,使公投的影響範圍更廣、更敏捷,從而顯著增加系統能夠做出的集體決策的數量。
在對其代碼進行最終專業審核後,Gov2 將在 Kusama 上啟動。在 Kusama 上進行測試後,會提出將其部署在 Polkadot 上的提案。(PolkaWorld:Gov2 目前已經上線至 Kusama 網絡,詳見:又一里程碑!下一代去中心化治理系統 OpenGov 上線 Kusama 網絡!)
以下內容將首先介紹 Polkadot 網絡上的許多核心治理原則。了解治理 v1 的根源,對於更好地理解第二次迭代的方向很重要。這些差異和區別將在各個子主題中突出顯示。
話雖這麼說,但重要的是要記住,在其生命周期的這個階段,治理是不斷發展的協議。隨著治理 v2 的更新進入網絡,治理 v2.5 的計劃也已經在制定中。
前提
概括來講,該網絡匯集了各種新穎的機制,包括存儲在鏈上並以平台中立的中間語言(即 WebAssembly)定義的無定形狀態轉換函數,以及多種鏈上投票機制,例如具有自適應絕對多數閾值和批量批准投票機制的公投。
對協議的所有更改,都必須通過權益加權的公投來達成一致。
機制
在治理 v1 中,活躍的 token 持有者和理事會共同管理網絡升級決策。無論該提案是由公眾(token 持有者)提出還是由理事會提出,最終都必須經過所有持有者的全民公投,以質押額(stake)和信念值(conviction)為權重做出決定。
為更好地了解理事會的組成方式,請閱讀本章內容。[1]
治理 v2 有幾個變化。新治理模式反映其去中心化特徵的方式是:
- 透過民主投票將理事會的所有責任轉移給 token 持有者
- 解散現任理事會集體
- 允許用戶以更多方式將投票權委託給社區成員 Gov1 中的理事會履行了其作為被動 token 持有者的代表、國庫守護者和立法發起者的角色,但通常被視為一個中心化實體。為了進一步去中心化 Polkadot 和 Kusama 網絡,Gov2 提議將理事會的職責交還給社區。
公投
公投是簡單、包容性、基於質押的投票方案。每個公投都有一個與之相關的特定提案,該提案採用 runtime 特權函數調用的形式(其中包括最強大的調用:set_code,它可以切換 runtime 的整個代碼,實現本來需要需要「硬分叉」才能實現的功能)。
公投是具有固定投票期的離散事件。當投票期結束並統計選票時,如果投票獲得批准,將調用函數 (set_code )。公投總是二元的;你在投票中的選擇只能是「贊成」、「反對」或完全棄權。
在 治理 v1 中,公投可以通過以下幾種方式之一啟動:
- 公开提交的提案;
- 理事會以多數票或全票通過的提案;
- 作為先前公投執行的一部分提交的提案;
- 由技術委員會提交並通過理事會批准的緊急提案。所有公投都有相應的執行延遲期。這是從公投結束到提案實際執行(假設提案通過的話)之間的一段時間。
如果一項公投關閉和完成了統計,則該公投被視為已完成。同樣,假設該提案獲得批准,它將被安排執行。如果公投正在等待結果,即正在被投票,則該公投被認為是未完成的。
如果提案是由公眾或理事會提交的,則有 28 天的固定執行延遲期。作為先前公投執行的一部分提交的提案可以根據需要設置執行延遲期。緊急提案處理需要「快速跟進」的網絡重大問題,從而縮短了執行時間。
在 Gov2 中,任何人都可以隨時開始公投,而且想發起多少次公投都可以。Gov2 引入了幾個新功能,叫做 Origins(來源)和 Tracks(軌道),以幫助公投協議的流程和處理。
Origin 可以被認為是給定特權級別的豐富描述符。公投的提議者現在需要根據提案的要求,為他們的請求選擇一個合適的 Origin。
每個 Origin 都與一個公投類別相關聯,每個類別都與一個 Track 相關聯。Track 概述了提案的生命周期,並且獨立於其他類別的 Track。擁有不同的獨立軌道,允許網絡根據其隱含的特權級別來調整公投的動態。
例如,Runtime 升級(set_code 調用)對生態系統的影響,與國庫小費的批准(reportAwesome 調用)不同,因此需要不同的 Origins,其中不同的投票率、批准率、押金和最短執行周期將在 pallet 上預先確定。
提案公投
公眾公投
任何人都可以通過在一定時期(區塊數)內存入最低數量的 token 來提議一項公投。如果有人同意該提議,他們可以存入相同數量的代幣以表示支持。
- 此操作稱為「背書」。獲得最高綁定 token 支持的提案將被選為下一個投票周期的公投。請注意,這可能與背書的絕對數量不同;例如,三個賬戶每個綁定 20 DOT 將「超過」十個賬戶每個綁定 1 DOT 的效力。
一旦提案被提交(即進行投票),綁定的 token 將被釋放。
對於治理 v1,提案隊列中最多可以有 100 個公共提案。
在 Gov2 中,當一項公投被創建出來時,社區就可以立即對其進行投票。但是,該公投並沒有處於可以結束,或以其他方式計算其選票、獲得批准和最終執行的狀態。相反,公投必須滿足一些標準,然後才能進入稱為「決定(Deciding)」的狀態。在它們處於這種狀態之前,仍然是待定狀態。
進入 Decided 狀態的標準如下:
- 經歷了導入期(lead-in period),即在決定可以開始之前必須經過的時間量。這有助於減少「決定狙擊」的可能性,在這種情況下,控制大量投票權的攻擊者可能會在提議後立即通過提案,而不是讓全體投票者有足夠的時間來考慮和參與。
- 必須還有決定的剩餘空間。所有 Track 都對可以同時決定的公投數量進行了限制。具有更強大能力的軌道將具有更低的限制。例如,Root 級別 Origin 的限制為 1,這意味著一次只能決定 1 個超級危險的提案。
- 必須支付決定押金。創建公投的成本很低,因為押金價值僅包含跟踪它所需的鏈上存儲所需的價值。但是,對公投進行審查和決定,卻存在著耗尽公投隊列中有限位置的風險。要求提供一筆金額更大但可退還的押金,有助於減少垃圾信息。
理事會公投 (v1)
理事會全票通過 - 當理事會的所有成員都同意一項提案時,可以將其移至公投。該公投將產生負投票率偏差(即權益投票的數量越少,通過所需的數量就越少 ------ 參見自適應群體偏見 Adaptive Quorum Biasing[2])。
理事會多數通過 - 當只有簡單多數理事會成員同意時,也可以對公投進行投票,但它將是多數票制(獲得 51% 票的那方獲勝)。
在任何給定時間只能有一個有效公投,除非還有正在進行的緊急公投。
投票時間表
在 Governance v1 中,假設其中一個隊列中至少有一個提案,每 28 天就會進行一次新的公投。理事會批准的提案有一個隊列,公眾提交的提案也有一個隊列。將在兩個隊列中排名靠前的提案之間輪流進行公投。
排名最靠前的提案由其背後綁定的質押數量確定。如果當前隊列選擇嘗試創建沒有提案的公投(隊列為空),並且另一個隊列有排隊中的提案,則另一個隊列中的最靠前提案將進入公投。
不能在同一時期對多項公投進行表決,緊急公投除外。與常規公投(公開或理事會提議)同時發生的緊急公投是唯一一種能同時對多項公投進行投票的情況。
當提案獲得批准時,治理 v2 共享相同的 28 天資格期。如果在此階段結束時仍未獲得批准,則該提案將自動被拒絕。
公投投票(治理 v2)
在 Governance v2 中,如果提案滿足批准率和支持率的要求,則該提案將獲得批准,即刪除了自適應群體偏見系統。
批准率(Approval)被定義為批准投票權重(在 conviction 調整後)占總投票權重(包含批准和拒絕)的份額。
支持率(Support)是批准的總票數(忽略 conviction 調整)與系統中可能進行的總票數的比較。
它必須在確認期的最短時間內滿足此標準。不同的軌道有不同的確認期和批准和支持要求。現在可以配置通過所需的支持量和總體批准。對於使用較低特權來源的提案,與使用高特權類別(例如 Root)的提案相比,更早地將所需的投票率降低到更現實的數量更為合理。具有較大政治意義的課程可以儘早要求更高的批准,以避免爭議。
在 Gov2 中,28 天後未獲批准的提案將被視為默認拒絕,並退還 Decision Deposit。如果提案設法在確認期結束之前保持通過,則視為已獲批准,並計劃在制定期之後從提議的來源開始執行。制定期在全民投票提議時指定,但也受制於基於軌道的最小值。更強大的 Tracks 會強制執行更長的執行期,以確保網絡有足夠的時間為提案可能帶來的任何變化做準備。
自願鎖定
Polkadot 使用一種稱為「自願鎖定」的概念,它允許 token 持有者通過聲明他們願意鎖定 token 多長時間來增加他們的投票權,因此,每個 token 持有者的投票數將使用以下公式計算:
投票數 = token * conviction 乘數
鎖定期數每番一倍,conviction 乘數都會將投票乘數增加一。
鎖定期數投票乘數 00.111224384165326
鎖定期 「加倍」 的最大次數設置為 6(因此總共 32 個鎖定期),一個鎖定期等於 28 天。只允許加倍,例如,你不能鎖定 24 個周期並使你的 conviction 增加 5.5。有關治理事件時間表的更多信息,請查看 Polkadot 參數頁面[3]上的治理部分。
token 被鎖定後,你仍然可以使用它進行投票和質押;你只被禁止將這些 token 轉移到另一個賬戶。
選票總是在同一時間 「計算」,即在投票期結束時。這不受代幣鎖定期的影響。
自適應群體偏見
自適應群體偏差在 Governance v2 中使用的時間更長,並被 Approval/Support 系統所取代。
理事會
在治理 v1 中,波卡上的被動利益相關者由稱為「理事會」的管理機構代表。理事會是一個鏈上實體,由多個參與者組成,每個參與者代表一個鏈上賬戶。在 Polkadot 上,理事會目前由成員組成。
除了控制國庫外,理事會還主要負責三項治理任務:
- 提案明智的公投
- 取消危險或惡意的公投
- 選舉技術委員會
在治理 v2 中,需要一種替代策略來取代理事會以前作為選民委託機構的職責,以彌補許多人選擇不參與日常治理的事實。Gov2 建立在 v1 的投票委託功能之上,選民可以選擇將他們的投票權委託給系統中的另一個選民。它通過改進稱為多角色委派的功能來做到這一點,選民可以在該功能中為系統中的每一類公投指定不同的代表。因此,例如,選民可以委託某個實體來管理某個影響不重大的公投類別,而選擇另一個不同的代表來管理另一個具有更重大後果的不同類別,並且仍然保留對任何剩餘類別的完全投票權。
取消公投
在治理 v1 中,如果技術委員會一致同意取消提案,或者如果 Root 來源(例如 sudo)觸發此功能,則可以取消提案。已取消提案的押金將被銷毀。
此外,理事會三分之二多數可以取消公投。如果在公投提案中發現問題較晚(例如該提案將執行的 runtime 代碼中存在錯誤),這可能會作為最後的手段。
如果取消的爭議足夠大,以至於理事會無法獲得三分之二多數,那麼將由利益相關者共同決定提案的命運。
在治理 v2 中,有一個名為 Cancelation(撤銷)的特殊操作,用於干預已經投票的提案。該操作將立即拒絕正在進行的公投,無論其狀態如何。還有一項規定,如果提案是惡意的或垃圾信息,則確保提議者的押金被罰沒。
Cancelation 本身是一種治理操作,必須由網絡投票才能執行。撤銷伴隨著它自己的 Origin 和 Track,它具有一個很短的導入期和批准率 / 支持率曲線,它們的通過門檻下降得稍微迅速一些,因為它是在情況緊迫時才調用的。
技術委員會
在治理 v1 中,技術委員會 ( 以下簡稱 TC) 作為 Kusama 治理的三院之一(另外兩院是理事會和公投)在《Kusama 的上線和治理》https://polkadot.network/blog/kusama-rollout-and-governance/ 中引入。TC 由成功實施或定義 Polkadot runtime 或 Polkadot Host 的團隊組成。通過理事會的簡單多數投票,可以在 TC 中添加或刪除團隊。
TC 的目的是防止惡意公投、實施 bug 修復、逆轉錯誤的 runtime 更新或添加新的但經過實戰檢驗的功能。TC 有權使用 Democracy pallet 加速提案,並且是唯一能夠觸發提案加速功能的來源。我們可以將 TC 視為無法生成提案但能加速現有提案的「唯一來源」。
快速公投是唯一一種可以與另一場公投同時進行的公投。因此,通過快速公投,可以同時進行兩個活躍的公投。對其中一個投票不會阻止用戶對另一個投票。
在治理 v2 中,引入了一個新的繼任委員會,稱為「Polkadot Fellowship」,以取代技術委員會。它將服務於 Polkadot 和 Kusama 網絡。請參閱下面的其他詳細信息。
Polkadot Fellowship
該 Fellowship 是一個基本自治的專家機構,其主要目標是代表具有 Polkadot 網絡和協議的技術知識庫的人類。Fellowship 通過「等級」將成員進行分類,來代表其觀點的明智程度、技術基礎的良好程度,以及符合 Polkadot 利益的程度。
與當前的 Technical Collective 不同,它旨在擴大成員範圍(即可以容納數以萬計的成員)並且進入門檻低得多(在管理流程和專業知識期望方面)。成為 Fellowship 的候選成員很簡單,只需存入一筆小額押金。
Fellowship 成員可以對任何給定的 Fellowship 提案進行投票,並且成員的綜合意見(按等級加權)構成 Fellowship 的考慮意見。
Fellowship 投票的機制與 Polkadot 利益相關者對已提案公投的投票機制相同。
等級系統
那麼這個等級系統究竟是如何運作的呢?
為了防止一小部分參與者獲得對網絡的有效控制,該系統將堅持三個主要原則:
- Fellowship 絕不能對網絡擁有硬權力:它不能更改參數、進行修復或移動資產。他們在治理方面的唯一權力在於能夠縮短公投發生的時間表。
- Fellowship 在總體意見中對等級較高的人給予更多的權重,但是與來自較低級別成員的一致意見相比,權重不應高到使少數較高成員的意見無法超越。
- Fellowship 應旨在增長和發展其成員及其專業知識的總體水平,並在此過程中確保其整體決策能力隨著時間的推移而變得更強大。為了支持這些條件,Fellowship 將制定章程,其中概述了個人獲得和保持某等級的要求和期望。較高等級的人员可以根據本章程投票和提拔較低級別的人员。
在給定的時間段過去,並且某成員無法向其他成員證明自己的地位時,降級會自動發生。
停職只能通過公投才能發生,這確保了 Fellowship 的偏見本身不一定會導致開除。
為了防止 Fellowship 成為一個陰謀集團(僅靠 Fellowship 的聲望不足以獲得最高等級),獲得最高等級將需要進行公投。
如果想申請加入 Fellowship 或詳細了解其運作,請閱讀《波卡 Fellowship 詳細文檔》。
白名單
Whitelist pallet 做一件事:它允許一個 Origin 為某個操作提升另一個 Origin 的特權級別。
在 Gov2 中,它允許 Fellowship 授權一個新的來源(稱為 Whitelisted-Root)以 Root 級別的權限執行,並且只會與 Fellowship 授權的某些特定命令一起使用。Whitelist pallet 驗證兩件事:
- 來源確實是 Whitelisted-Root(即該公投在這條 Track 上通過了)
- 該提案確實已被 Fellowship 列入白名單如果兩個條件都符合,則操作以 Root 級權限執行。
該系統允許擁有一個新的平行的 Track(Whitelisted-Root Origin),其參數允許更短的投票周期。通過公開透明的流程,Polkadot 協議的全球專家團體已確定該操作既安全又時間緊迫。
黑名單
一項提案可以通過 Root 來源(例如 sudo)列入黑名單。列入黑名單的提案及其相關的公投(如果有)將立即取消。此外,列入黑名單的提案的哈希不能重新出現在提案隊列中。黑名單在刪除可能使用相同哈希提交的錯誤提案時很有用,例如在第二號提案中,提交者使用純文本提出建議。
在看到自己的提案被刪除後,對 Polkadot 民主系統不甚了解的提交者可能會試圖重新提交相同的提案。也就是說,這遠不是防止提交無效提案的萬無一失的方法------提案文本中的單個更改字符也會更改提案的哈希值,從而使由哈希值產生的黑名單無效。
更多資料
- 最初治理系統介紹[4]
- Democracy Pallet[5]
- 治理 Demo[6] - Gavin Wood 博士講解波卡的最初治理結構(視頻)
- 波卡的治理[7] - 解釋波卡和 Kusama 治理如何運作的在線研討會
- 治理 v2[8]
- Polkadot Direction[9] 討論群
- Kusama Direction[10] 討論群
- PolkAssembly[11] 治理網站
參考資料
[1] 本章內容。: https://wiki.polkadot.network/docs/learn-gov2#council
[2] 自適應群體偏見 Adaptive Quorum Biasing: https://wiki.polkadot.network/docs/learn-gov2#adaptive-quorum-biasing
[3] Polkadot 參數頁面: https://wiki.polkadot.network/docs/maintain-polkadot-parameters#governance
[4] 最初治理系統介紹: https://github.com/paritytech/polkadot/wiki/Governance
[5] Democracy Pallet: https://github.com/paritytech/substrate/tree/master/frame/democracy/src
[6] 治理 Demo: https://www.youtube.com/watch?v=VsZuDJMmVPY\&feature=youtu.be\&t=24734
[7] 波卡的治理: https://www.crowdcast.io/e/governance-on-polkadot--
[8] 治理 v2: https://medium.com/polkadot-network/gov2-polkadots-next-generation-of-decentralised-governance-4d9ef657d11b
[9] Polkadot Direction: https://matrix.to/#/#polkadot-direction:matrix.parity.io
[10] Kusama Direction: https://matrix.to/#/#kusama:matrix.parity.io
[11] PolkAssembly: https://polkadot.polkassembly.io/
[12] https://wiki.polkadot.network/docs/learn-gov2: https://wiki.polkadot.network/docs/learn-gov2