一文詳解波卡治理機制

買賣虛擬貨幣

我們常說 “波卡網路的發展由 DOT 持有人決定”,怎麼決定?就是透過波卡精妙的治理機制。

雖然 “精妙” 在某種程度上意味著 “複雜”,但如果你是 DOT 持有人,並且想透過你的投票,對波卡網路的程序產生影響的話,那麼你絕對應該花時間認真瞭解一下波卡的治理機制。而這篇文章就是很好的資料。

這篇文章屬於 Polkadot Wiki(波卡百科)的 “治理” 部分,詳細地介紹了波卡的治理機制、治理機構和投票計數方式。Polkadot Wiki 是由波卡官方撰寫的波卡介紹文件,PolkaWorld 正在逐步翻譯和連載該文件。

Polkadot 使用了一種複雜的治理機制,可以在所有利益相關者的最終要求下隨時間優雅地進化。最終目標是確保大多數利益相關者始終能夠控制網路。

為此,我們將各種新穎的機制結合在一起,包括儲存在鏈上,並用平臺中立的媒介語言(即WebAssembly)定義的無定形狀態轉移函式,以及一些鏈上投票機制,如自適應絕對多數閾值的公投和batchapproval投票。對協議的所有變更必須經過利益相關者的公投表決。

機制

為了對網路進行更改,方法是將活躍的代幣持有者和理事會組成一個管理組,對網路升級進行決策。不管提案是由公眾( DOT 持有人)還是理事會提出的,最終都要經過全民公投,讓所有 DOT 持有者(按 stake 比例決定權重)做出決定。

以下步驟是 Polkadot 網路中的治理過程:

發起公投

對提案進行投票

統計[1]

為了更好地瞭解理事會是如何組成的,可以繼續閱讀下文 “理事會“ 部分的內容。

公投

公投是簡單的、包容的、基於 stake 的投票方案。每一次公投都有一個與之相關的具體的提議,它在 runtime 中以特權函式呼叫的形式出現(這包括最強大的呼叫:set_code,它能夠切換出 runtime 的整個程式碼,實現一般需要“硬分叉”才能做到的功能)。它們是離散事件,有一個固定的時間段來進行投票,然後進行計數,如果投票被批准,則進行函式呼叫。公投總是二元的,你投票時唯一的選擇是“同意”、“反對”或完全棄權。

可以透過以下幾種方式來啟動公投:

公開提交的提案;

理事會以多數票或一致透過的方式提出的提案;

作為前序公投執行的一部分而提交的提案;

技術委員會提交併經理事會核准的緊急提案。

所有的公投都有一個與之相關的執行延遲期。這是從公投結束到(假定提案獲得批准)實施更改之間的一段時間。對於啟動公投的前兩種方式,這是一個固定的時間。對於 Kusama 來說,這是 8 天的時間,在波卡中,計劃是 28 天。對於第三種型別,可以根據需要進行設定。

緊急提案涉及需要“快速跟進”的網路重大問題。這類提案會有一個較短的執行時間。提出公投公眾公投

任何人都可以透過在一定時期內(區塊數量)存入最低金額的 DOT 來發起一項公投。如果有人同意這個提議,他們可以存入相同數量的代幣來支援它。獲得最高繫結支援的提案將被選為公投議案。請注意,這可能與附議的絕對數不同,例如,三個帳戶每個賬戶繫結 20 個 DOT 將超過 10 個帳戶每個賬戶繫結一個 DOT。繫結的代幣將在提案提交(即,提交表決)後釋放。理事會公投

理事會全員同意——當所有的成員都同意一個提議,它就可以轉移到公投。這個公投將有一個負的投票率偏差。也就是說,stake 投票的數量越小,透過該提案所需的數量就越小。(見下文的”自適應投票人數偏見”)。

多數理事會成員同意 ——當只有簡單多數的理事會成員同意時,公投也可以投票,但此時要多數同意才能透過。

任何時候都只能進行一個公投,除非有緊急公投。投票時間線

每隔 28 天,將對一個新的公投進行投票(假設其中一個佇列中至少有一個提案的話)。有一個議會批准的提案列隊,和一個公眾提交的提案佇列。將要投票表決的公投在兩個佇列中的最高票投票的提案之間交替進行。

“最高票”提案是由其背後所繫結的 stake 數額決定的。如果輪到建立公投的給定佇列中沒有提案(為空),而另一個佇列中有等待的提案,則另一個佇列中最高票的提案將成為公投議案。

同一時間段內不能進行多個公投,緊急公投除外。緊急公投與定期公投(無論是公開的還是理事會提議的)同時舉行,是唯一一次可以同時進行多次公投的時候。對公投議案進行投票

為了投票,投票者通常必須把他們的代幣鎖起來,至少要在公投結束後的執行延遲期內鎖定。這是為了確保投票結果需要一些最低限度的經濟投入,並避免賣票行為。你可以完全不加鎖定地投票,但你的投票價值只是普通投票的一小部分。同時,由於可以投入時間來鎖定,持有少量 DOT 代幣並不意味著持有人不能影響公投結果。你可以在自願鎖定(Voluntary Locking[2])中瞭解更多。

示例:Peter: 用 10 個 DOT 投票 `No` ,鎖定了 128 周,那他的實際投票權重是 10 * 6 = 60 VotesLogan: 用 20 DOT投票 `Yes` ,鎖定了 4 周,他的實際投票權重是 20 * 1 = 20 VotesKevin: 用 15 DOT投票 `Yes` ,鎖定了 8 周,他的實際投票權重是 15 * 2 = 30 Votes

儘管 Logan 和 Kevin 的選票都比 Peter 多,但兩人的鎖定期都比 Peter 少,導致他們的投票權重也少。統計 Tallying

根據不同的實體提出的議案,以及是否所有理事會成員都投票贊成,有三種不同的方案。我們可以參考下表。

實體計數機制公開提案正投票率偏差(絕對多數贊成)理事會(全票贊成)負投票率偏差(絕對多數反對)理事會(多數贊成)簡單多數制

另外,我們需要以下資訊,並使用下面列出的公式之一來計算投票結果。例如,讓我們以公共提案為例,應用絕對多數贊成公式。沒有嚴格的法定投票人數,但隨著投票率的降低,所需的絕對多數席位會增加。

approve(贊成) - 贊成票數against(反對) - 反對票數turnout(投票率) - 投票的代幣總數 (不包含 conviction)electorate(總選票) - 網路中 DOT 發行的總量

絕對多數贊成制

正投票率偏差,要求在投票率低的情況下獲得大量絕對多數贊成票,但當投票率增加至100%時,它其實就變成了最後一種簡單多數的情況。

絕對多數反對制

負投票率偏差,即需要在投票率低的情況下獲得大量絕對多數反對投票,但是當投票率增加到100%時,它就變成了最後一種簡單多數的情況。

簡單多數制

多數票透過,票數的簡單比較;如果贊成票多於反對票,那麼該提案將獲得透過,無論提案中有多少票。

要詳細瞭解上述公式的來源,請閱讀民主機板塊[3]。

例:假設:- 總量僅 1,500 DOT- 公開提案John  - 500 DOTPeter - 100 DOTLilly - 150 DOTJJ    - 150 DOTKen   - 600 DOTJohn: 投 `贊成` 且鎖定 DOT 4 周  => 500 * 1 = 500 票Peter: 投 `贊成` 且鎖定 DOT 4 周 => 100 * 1 = 100 票JJ: 投 `反對` 且鎖定 DOT 16 周 => 150 * 3 = 450 票贊成 = 600反對 = 450投票率 = 750總選票 = 1500

由於上述示例是公眾公投,因此將使用絕對多數贊成制來計算結果。在投票率低的情況下,絕對多數贊成需要更多贊成票才能透過此公投,因此,根據上述結果,公投將被拒絕。此外,只有獲勝選民的代幣會被鎖定。如果公投失敗的選民認為投票結果將產生負面影響,則他們的代幣可以轉讓,因此他們持有的投票代幣不會進入鎖定期。而且,優勝提案會在一定的執行期之後才自主執行。自願鎖定 Voluntary Locking

波卡設計了一種稱為自願鎖定的方式,允許代幣持有者宣告願意鎖定自己的 DOT 多長時間來增加其投票權,因此,每個代幣持有者的最大投票數將透過以下公式計算:

最大投票數 = 代幣總量 * 投票乘數

鎖定期每翻倍一次,信念值乘數(conviction multiplier )會將投票乘數增加1。

鎖定期(天)投票乘數(倍)00.111224384165326

根據創世 runtime,由鎖定期帶來的最大乘數設定為 6,並且在 Polkadot 上鎖定期為 30 天,在 Kusama 上鎖定期為 8 天。自適應投票偏見

Polkadot 引入了“自適應投票偏見(Adaptive Quorum Biasing)” 概念,它作為一種調節的槓桿,在一項議案的投票率沒有達到明顯的支援或反對時,理事會可以使用它來改變有效的絕對多數,來讓一項提案更容易或更難透過。

讓我們以上面的圖片為例。

如果一項公開提交的公投只有25%的投票率,那麼我們採用“正投票率偏差”來統計,“贊成”票總數必須達到66%才能透過。

相反,當投票率達到75%時,“贊成”票總數必須達到54%,這意味著所需的絕對多數人數會隨著投票率的增加而減少。

當理事會透過一致同意提出一項新議案時,將使用“負投票率偏差”對公投進行表決。在這種情況下,會比較容易以較低的投票率透過此議案,並且需要絕對多數投票才能拒絕該議案。隨著越來越多的代幣持有人參與投票,這種偏見就會接近普通的簡單多數制。

參考上圖,當全民投票的投票率只有25%時,“贊成”票的票數必須達到34%才能透過。

簡而言之,當投票率低時,需要絕對多數才能拒絕該提案,這意味著必須達到較低的“贊成”票數閾值,但是當投票率增加到100%時,它就變成了簡單多數制。

這三種計數機制——多數透過,絕對多數透過和絕對多數反對——只要投票率是100%那麼就等同於簡單多數計數機制。

理事會

為了代表被動的利益相關者,Polkadot 引入了 “理事會(Council)” 的概念。理事會是一個由多個參與者組成的鏈上實體,每個參與者代表一個鏈上賬戶。目前在 Polkadot 上,理事會由 13 名成員組成。預計在接下來的幾個月中,將增加到 24 個席位。通常,理事會最終將擁有固定數量的席位。在 Polkadot 中是 24 個席位,而在 Kusama 中是 17 個席位。

理事會主要被要求執行三項治理任務:提出明智的公投、取消毫無爭議的危險或惡意的公投以及選舉技術委員會。

如果要由理事會提議舉行公投,必須有絕大多數成員贊成,並且沒有成員行使否決權。成員對任何單個提案只能行使一次否決權;如果在冷靜期之後重新提交了提案,則他們可能不會第二次否決該提案。對於理事會以絕對多數票透過,但未獲得一致支援的動議(Motion),將以中立、多數票透過的投票方案進行公眾公投。如果理事會的所有成員都投票贊成某項動議,則該投票被認為是一致透過的,併成為具有負自適應群體偏見(negative adaptive quorum biasing)的公投。

經理事會三分之二多數同意,可以取消公投。如果在全民投票的提議中發現一個問題,例如議案將執行的 runtime 程式碼中有 bug,則這可能是最後手段。

如果取消公投的爭議很大,使得理事會無法獲得三分之二多數同意,那麼將由全體利益相關者來決定提案的命運。如何成為理事會成員?

目前,理事會有 13 個席位。所有利益相關者可以自由表示對任何註冊候選人的認可。

理事會的選舉由同一 Phragmén 選舉流程處理,該流程根據提名從可用池中選擇驗證人。但是,代幣持有人對議員的投票,與他們對驗證人的任何提名是分開的。理事會任期為一日。每一期的末尾,將執行 Phragmen 選舉演算法,結果將根據所有選民的投票配置選擇新的議員。選舉還選擇了一定數量的備選議員(runners up),目前在 Kusama 上為 7 名,在 Polkadot 上為 15 名,這些候選人將在投票中保持原樣。

與“先行任職”(選民必須從名單中選出僅一名候選人)相反,Phragmén 選舉是表達選民觀點的一種更具表達力的方式。代幣持有者可以將其視為 “是或否” 投票,可以支援你想支援的儘可能多的候選人。選舉演算法將找出一個與選民整體表達的指示緊密匹配的候選人的子集。

讓我們看下面的例子。

第一輪代幣持有者候選人ABCDEPeterXXXXAliceXBobXXXKelvinXX總計21322

上面的例子顯示了候選人 C 在第一輪選舉中獲勝,而候選人 A、B、D 和 E 仍保留在下一輪候選人名單上。

第二輪代幣持有者候選人ABDEPeterXXAliceXXBobXXXXKelvinXXTotal4411

對於前 N 名(例如上面例子中為 4 名)的備選議員,他們可以保留並繼續投票直到下一次選舉。在第 2 輪之後,即使候選人 A 和 B 在本輪中獲得相同的票數,候選人 A 也會被選上,因為在加上之前的未使用贊成票後,它的得票比 B 高。

這是 Polkadot 初始階段的臨時治理配置。如果在第三方稽覈之後發現任何安全漏洞,它將被更改。進一步的更改可以透過鏈上治理進行。主要成員

理事會作為 Substrate Collective pallet 的一個例項,實現了所謂的主要成員,該成員的投票將作為其他在超時之前未投票的成員的預設投票。

主要成員根據Borda count[4]選出。

擁有理事會主要成員的目的,是即使在數名成員棄票時,也能確保投票人數。理事會成員可能會透過不投票而讓其他成員投票,來表決 “軟拒絕” 或 “軟贊成”。有了主要成員,它迫使理事會成員要麼在投票中表現得很明確,要麼讓自己的選票計入主要成員所投的選項。

技術委員會

《Kusama的推出和治理》這篇文章中引入了技術委員會,作為 Kusama 治理的三個部門之一(另外兩個是理事會和公投議院)。技術委員會由成功實現或指定了 Polkadot / Kusama runtime 或 Polkadot 主機的團隊組成。透過理事會的簡單多數表決,可以從技術委員會中新增或刪除團隊。

技術委員會可以和波卡理事會一起提出 “緊急公投(emergency referenda)”,可以快速進行投票和實施。這些緊急公投僅在緊急情況下使用。

快速公投(fast-tracked referenda)是唯一可以與其他有效公投同時進行的公投型別。因此,透過快速公投,可以同時進行兩個有效的公投。對一個進行投票不會阻止使用者對另一個進行投票。

DOT 的用途

請參考:https://wiki.polkadot.network/docs/en/learn-DOT#DOT-for-governance

常見問題我如何可以要求理事會代表我進行更改?

在某些情況下,你可能希望向鏈上理事會提出要求,以代表您進行更改。這種情況的一個例子是由於人為介面錯誤資金丟失或鎖定,例如輸入另一個網路的地址而導致資金丟失時。另一個示例是,如果你使用多簽名地址參加了 2017 年的 Polkadot ICO,導致現在你不能輕鬆地簽名訊息了。如果能夠以一定的可信度證明這個錯誤確實發生了,則理事會可以考慮透過一項治理動議來糾正該錯誤。

向理事會提出申訴的第一步是與議員保持聯絡。沒有一個地方可以保證每個議員都能注意到你的聲音。但是,這裡有一些不錯的起點,你可以在其中吸引一些議員的注意力。Polkadot Direction[5]Matrix 聊天室就是這樣的一個地方。建立帳戶並加入此聊天室後,你可以在此處釋出一個經過深思熟慮的訊息,以闡明你的情況,並提供理由,說明你認為理事會應該考慮代表你對協議進行更改的原因。

在某些情況下,你可能需要一個地方進行較長時間的討論。為此,建議在Polkassembly[6]上釋出帖子。當你在 Polkassembly 上發表文章時,請確保提供你所處情況的所有證據,並清楚說明你將建議議員採取何種改變。請記住:需要進行更改的人不是議員,你有責任對為什麼要進行更改持有充分的理由。

參考資源

初始治理描述[7]

Democracy Pallet[8]

治理 Demo[9]- Gavin Wood 博士講解波卡初始治理架構(影片)

波卡的治理[10]- 解釋波卡和 Kusama 的治理如何執行的線上分享

波卡的治理[11]- 跟著 Bill Lagoon 瞭解波卡和 Kusama 的治理如何執行

原文連結:https://wiki.polkadot.network/docs/en/learn-governance[12]

翻譯:PolkaWorld參考資料

[1]

統計: https://wiki.polkadot.network/docs/en/learn-governance#tallying[2]

Voluntary Locking: https://wiki.polkadot.network/docs/en/learn-governance#voluntary-locking[3]

民主機板塊: https://github.com/paritytech/substrate/blob/master/frame/democracy/src/vote_threshold.rs[4]

Borda count: https://en.wikipedia.org/wiki/Borda_count[5]

Polkadot Direction: https://matrix.to/#/!OwgojQyBzTlUQGGLhq:matrix.parity.io[6]

Polkassembly: https://polkadot.polkassembly.io/[7]

初始治理描述: https://github.com/paritytech/polkadot/wiki/Governance[8]

Democracy Pallet: https://github.com/paritytech/substrate/tree/master/frame/democracy/src[9]

治理 Demo: https://www.youtube.com/watch?v=VsZuDJMmVPY&feature=youtu.be&t=24734[10]

波卡的治理: https://www.crowdcast.io/e/governance-on-polkadot--[11]

波卡的治理: https://www.crowdcast.io/e/governance-on-polkadot--[12]

https://wiki.polkadot.network/docs/en/learn-governance: https://wiki.polkadot.network/docs/en/learn-governance

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;