圍繞更廣泛利益相關者的網絡治理互動爭議纔剛剛開始,而開源協作、協議標準等其它治理層級則會繼續進步。

原文標題:《科普 | 以太坊治理的全景》
撰文:Boris Mann
翻譯:阿劍

在本文中,我嘗試歸納以太坊治理方法的不同層級。核心的概念曾在 Ethereum Magicians 論壇上發表過,也引發了一些討論。

如果你想了解一些我的背景,你可以看看我進入以太坊社區的經歷,就在本文的末尾。在以太坊社區我還是一個新手,不過我已經有很豐富的開源協作經歷了,包括幫助成立 Drupal 協會以支持 Drupal CMS。

「以太坊」 一詞有多個內涵:

  1. Ethereum 基金會,也就是 「Stiftung Ethereum」,它是一個設在瑞士的基金會,成立之初的使命是運營衆籌並啓動網絡。該基金會也持有以太坊的商標。他們也管理着社區的很多基礎設施,並 僱用 / 外包 了多個團隊來開發以太坊的主要軟件,從測試框架到 Geth 客戶端,等等。現在,基金會也僱用或者投資研究人員和團隊來從事重要的 密碼學 / 區塊鏈 研究,當前主要集中在 ETH2 的研究上 1。基金會也主辦一年一度的 「官方」 開發者大會(也就是 「DevCon」)。但以太坊基金會並不控制網絡的技術方向。(作者注 1:感謝 Tim Beiko 建議我把研究也作爲 EF 的一項基本活動。清楚地說明整個社區如何看待 EF 的性質和工作,是一項非常有意義的討論。但並不是本文的核心。)
  2. 指的是一組計算機協議,包括作爲智能合約系統及許多核心功能底層的以太坊虛擬機(EVM)、devp2p 對等節點通信協議、 獲取節點內外數據的 JSON-RPC 中間件。
  3. 以太坊主網也是一個全球公開的區塊鏈,由全球的幾千個節點共同運行,交易處理功能及安全性則由運行工作量證明算法的 「礦工」 來提供,礦工能夠得到區塊獎勵作爲回報。以太坊區塊鏈上流通的最核心密碼學貨幣常用 「ETH」 來代稱,該貨幣可用來支付交易及合約執行的手續費,也是網絡中公認的價值物。以太坊主網的鏈 ID 和網絡 ID 都爲 1 2。(作者注 2:想了解所有運行以太坊協議的區塊鏈及其相應的 ID 信息,請看 chainid.network。我也幫助維護這個網站。)
  4. 以太坊也是一個社區,指的是希望在以太坊協議、以太坊區塊鏈上的分佈式應用以及相關的去中心化網絡協議的基礎上做事情的團體。大家的開發主要集中在主網上,但隨着時間推移,也有越來越多人在開發側鏈、Layer-2 協議,等等。

現在我們算是有一些基本概念了,然後我們來看看治理的層級。下文列舉的順序有些粗糙,但更高層級確實會循環回更低的層級。

開源協作

「開源」 實際上是一個縮寫詞,它也有很多意思:它可以指稱使用許可的一種性質、也可以指稱一種工作方式、或者一種哲學理念;我在《區塊鏈與開源的定義》一文中討論了它的含義。我後面寫的《基於公開的同輩共同生產》使用了一個比較詳細的定義,用開源來指代允許開源使用的計算機代碼的管理方式:代碼庫管理員、未解決問題(issue)、代碼參與請求(pull request)、複製(fork),以及用戶和貢獻者的全球社區。

以太坊百科頁面上有一個 ETH1 客戶端列表 3 —— 如你所見,今天大部分都是由以太坊基金會來管理的,雖然在實踐上是各個團隊及其貢獻者自己來管理項目,都是相互獨立的,雖然大家都是由以太坊基金會(EF)來支付報酬的,不論是僱員還是外包。Parity Ethereum 客戶端(項目由 Parity Technologies 公司控制)以及 PegaSys Pantheon 客戶端(由 ConsesnSys 公司控制)是兩個例外。這兩個客戶端也被認爲是 「主要」 客戶端,因爲項目還是活躍的,軟件也被用來運行節點、連入主網。Status 的 Nimbus 客戶端也在開發中,我們可以看到代碼控制權的多樣性正在增加。一份 ETH2 信標鏈實現的早期名單也凸顯了這一點。(作者注 3:我在幫助維護這個頁面,但是所有東西都是開放編輯的,而代碼由 Virgil Griffith @virgilgr 維護,他在以太坊基金會的研究部門工作。)(譯者注:作者的文章寫於 2019 年 3 月。現在,Parity Technologies 公司已放棄了 Parity 客戶端項目,Parity Ethereum 已轉成 Open Ethereum 項目。)

所有以太坊客戶端軟件都是當成開源項目來管理的,都有數量不等的貢獻者在貢獻代碼。當我們說 「作爲開源項目來管理」 的時候,意思是說,由 issue 來表述的 bug 或功能請求可以由任何人來解決和滿足,任何人都能使用代碼參與請求來提交代碼修復和新功能,然後由一羣管理員來管理這些進程。管理員就是那些擁有代碼庫寫入權限 以及 / 或者 能幫助管理 issue 隊列的人。管理員可能是由某個組織支付報酬的,也可能是志願者。

軟件的使用許可很關鍵,今天大部分的以太坊技術棧都是嚴格 copy-left 的(譯者注:copy-left 與 copyright 「版權」 相對,指的是雖然可以自由分發及使用,但要遵守一些規定,而且據此產生的後續產品也必須遵守這些規定)。這就制約了許多商業組織直接參與的興趣 以及 / 或者 能力。另一方面,如果軟件的主要版權持有者向商業組織出售了許可,那就能獲得收入。這也是整個開源軟件生態系統當前要解決的問題 4。(作者注 4:如果你真想好好探究一番,請看專業的軟件許可律師 Kyle Mitchell 的文章,他自己就提出過許多新的許可類型。)

我在這方面的建議是遷移到 Apache2 許可,因爲它是非常寬容的,也能跟商業組織兼容,也包含專利保護。

在許多方面,我們這些長期參與開源協作的人已經 「贏了」 —— 微軟買下了 GitHub、致力於成爲世界上最開放的公司 —— 但與此同時,開源協作的許多核心規範不再被提及,甚至開發人員也不例外。我認爲我們可以做更多,我也確實希望能引導更多新的開發者變成以太坊核心技術棧的工程師,同時讓 ETH2 技術棧錘鍊出下一代的技術專家。

總結一下,如果你是個商人,不搞技術,那麼理解圍繞開源軟件開發的一系列規範和流程是很關鍵的。開源軟件不僅支撐了幾乎所有區塊鏈技術,也是今時今日運行在世界上的大部分軟件的基礎。

協議標準的治理

以太坊升級提案(Ethereum Improvement Proposal,EIP)流程是我們用來提議並對標準達成共識的流程。寬泛地說,這就是協議標準的治理。這些標準可能應用在以太坊軟件層面(即需要實現互操作軟件的客戶端作一些更改),也可能應用在網絡層面。這個網絡層,既是指以太坊主網,也包括其它運行以太坊協議的區塊鏈。其它網絡可能會跟隨以太坊主網來納入和接受 EIP (現在的大部分情況都是這種),也可能會經歷一遍自己的升級流程。

我們暫且把 EIP 流程想成是主要爲以太坊主網設計標準的過程。至於參與者是不是開發者,提議會不會部署到主網上,那另外再說。

你可以在 eips.ethereum.org 上看到所有已公開的 EIP。而 EIP-1 指明瞭核心層 EIP (會改變網絡共識規則、需要大家一致同意才能部署的變更)及其它類型的 EIP 的提交及審議流程。

EIP 庫中還有一種標準是針對應用層的,也叫 「Ethereum Request for Comment (ERC)」。這些 ERC 可能被分割成一個獨立的代碼庫和流程(我自己更喜歡這種形式)。

大概來說,創建和提交 EIP 的過程是向所有人開放的,而且也很簡單,當然你得知道一些 GitHub 的使用方法。也不需要你附上代碼。你可以使用模板,創建一個用 Markdown 格式寫成的文本,然後在 GitHub 上發起一個參與請求(pull request),然後你的文本就成了一個 EIP 草案。如果這個 EIP 的格式是正確的,那它就會被合併到 EIP 庫中,該 EIP 也會有一個專門的網頁,供大家討論。EIP 的編輯有一些自由裁量權,但迄今爲止,還沒有出現類似垃圾郵件攻擊的那種情況 —— 沒有人用顯然荒謬的 EIP 來堵塞這個流程。學習 GitHub 的使用以及保證格式正確已經是一個足夠高的門檻了。

……

我認爲 EIP 流程運作得非常好,而且還在進步。當然,教育(尤其是對那些可以爲網絡增加價值的技術專家的教育)是越多越好的。

……

EIP 流程的目的就是標準化 —— 即爲了確保同樣的軟件可以由多個團體開發出來,而且大家的軟件是可以相互操作的。而且以太坊有多個客戶端,這一點非常關鍵。實際上,這比軟件的使用許可重要得多。如果有一個好的標準,那任何人都能實現它,並且知道實現之間是可以互操作的。

有一項運動纔剛剛開始,就是爲以太坊技術棧的不同部分安排專門的管理員和代碼庫 —— EVM、devp2p、JSON-RPC 接口,等等。這就意味着,有更多協作者可以一起工作,甚至能跨過以太坊主網的邊界,來提升及保證以太坊的互操作性。

核心開發者協作

AllCoreDev 視頻會議,乃是主要客戶端實現的開發人員開展合作的方法。視頻會議每兩週舉行一次,由 Hudson Jamieson 主持,他是以太坊基金會的全職員工。

同樣,核心開發者會議的議程也是作爲一個 issue,公開在一個 GitHub 代碼庫 ethereum/PM 裏的。任何人都能在 issue 頁面中發表評論,表明自己有時間參會、能夠提出問題或與大家分享看法。

整體上來說,整個流程旨在以技術爲重點。核心開發者考慮的事情是一個特定 EIP 的技術合理性,還有更大範圍內的某些 「網絡健康」 屬性。當然,每一個技術決策都會產生一些技術之外的影響,而這種模糊性也是許多問題的根源。

核心開發者曾經表示他們不想做非技術性的決策。因爲,參與核心開發者會議的主要是沉浸在技術中的人員,他們感興趣的是圍繞全球區塊鏈網絡開發的挑戰。他們不是協調專家,也不是社區參與專家。即使是開源項目的管理員,我們也沒看過客戶端代碼變得非常活躍。

跟各客戶端團隊交流之後,我得到的反饋是:代碼實現真的不需要花多少時間;進一步的進展受到了非技術性決策和路線圖爭議的限制。

核心開發者的到底使用什麼流程來產生決策?嗯,有點像 EIP 流程的 「實時」 版本,只不過是每兩週作一次實時討論。我的意思是,IETF (互聯網工程任務管理)風格、粗糙的共識和可運行的代碼,纔是這個過程的核心。最近的討論指明需要增加一些形式 —— 要求共識和記錄討論 —— 也許是爲了消除不確定性。

理解 EIP 及核心開發者審議流程的有用工具是 Dan Finlay 畫的流程圖。我就直接拍在這裏了:

科普 | 以太坊治理的全景

網絡治理

我使用 「網絡治理」 一詞來指代整個以太坊生態中形成的治理決策。這比 「僅僅是技術決策」 要大得多。

上述所有方法 —— 從開源協作,到協議標準治理,再到核心開發者協作 —— 往往只跟技術有關。如果你不寫代碼、不籌集資金及僱用開發者,那你能做的事情是很少的。

那麼以太坊網絡對利益相關者的參與究竟有何責任?如果 「我們」 想要更廣泛的利益相關者參與,我們能怎麼辦呢?

注意,什麼是 「我們」?我自己會把 「我們」 定義成所有自認是以太坊生態一員的廣泛人羣,並關心這個人羣的機能和進一步演化。目前爲止,所有的互動方法都是在志願參與、自設目標自己完成的基礎上形成的(這在開源社區中是很自然的)。就我所知,整個生態爲社區組織作貢獻的人中,Hudson Jamieson 是唯一全職有報酬的。即使如此,他的大部分時間還是花在了核心開發者協作上。

最近的很多爭議都圍繞着如何理解網絡治理在治理流程中的位置、如何實現網絡治理、如何參與 / 如何讓聲音能夠被聽到,等問題。

一種觀點是 「利益相關者應該自我組織」。我相信這一點,但我也相信,我們應該歡迎大家使用已經存在的基礎設施和通道。

現在我們擁有的最小決策單元是核心 EIP:這些 EIP 會影響網絡的核心功能、如果要部署這些 EIP 則主要客戶端必須在技術上實現它們、這些 EIP 也必須經一個額外的提議納入一次硬分叉中以便在網絡上同步激活。這簡直就是最觸碰大家敏感神經的地方。……

我不認爲把網絡治理放在協議標準或核心開發者協作的前面是有意義的。他們更像是同步的過程。我們作爲一個技術社區,可以在指出這些即將實現的核心 EIP 的實質上做得更好,然後廣泛的利益相關者團體就可以自我通知。……就我看到的情況,網絡治理主要都是靠在覈心開發者意識中引發質疑來觸發的。因爲核心開發者關心網絡的健康 —— 包括不希望觸發一場有爭議的硬分叉 —— 他們可以大聲呼籲、打破共識。不過,這可能主要是因爲相關 EIP 還未實現:在這個時候說 「yes」 會更困難。

我認爲,圍繞更廣泛利益相關者網絡治理互動的爭議纔剛剛開始。目前來看,其它治理層級會繼續進步,而除非利益相關者以 EIP 爲基礎提高他們的聲音,這個進程還會繼續下去。我很樂於通過教育、組織活動以及將技術語言翻譯成非技術解讀來幫助網絡治理,但這不是我最感興趣的領域(只是爲了表明我的立場)。

節點運行客戶端軟件

最終,區塊鏈網絡的去中心化還是要靠大家都能運行節點,而且任何人都能選擇開源客戶端軟件的不同版本來運行,包括能複製客戶端代碼庫來開發自己的客戶端,或者運行一個跟大多數人不同的舊版本和補丁版本。 ……

以太坊路線圖

另一個在 EIP 之外的關鍵是以太坊的路線圖。這個問題最早是在以太坊魔術師的柏林大會上被提出來的,也有越來越多的活動、在線會議在討論長期路線圖。

沒有人在 「全盤控制」 以太坊那個的路線圖,因爲它是一再由此前所有項目共同組合而成的。

不過,有必要凸顯是所謂的 「ETH 1.x」 和 「ETH 2」。

以太坊那個網絡的下一個版本,縮寫爲 ETH2,希望完全建立在權益證明協議(而非運行工作量證明算法的礦工)上;還希望建構分片系統,就是讓多個分片鏈來共同組成一個網絡,提供大得多的網絡整體吞吐量。ETH2 主要仍然是由受以太坊基金會資助的研究者來推動的。初步的實現計劃分成三個階段,沒有寫進 EIP 裏面,現在主要是由實現者和研究員協作產生技術規範。

一開始大家說的是 ETH2 和權益證明近在眼前。現在,我認爲說可能要 3 年以後才能全面實現已經沒有爭議了,因爲在 Phase 1 和 2 階段還有多個開放性研究問題。

與此同時,很多人的注意力也不在我們當前的區塊鏈上了,但是,這是我們擁有的唯一一條鏈;在我們可以遷移、整合到另一個網絡上之前,它一直都是。因此,從 2018 年 11 月布拉格的 DevCon 上開始興起一場運動,現在是自主支撐的,要繼續開發我們當前的這條鏈,升級成 ETH1.x。我也支持現在就做這些升級 —— 當然也要學習怎麼做 —— 以便把這些知識運用到未來的鏈上去。

一個即將到來的根本討論是:我們應該計劃更多小的硬分叉,還是計劃更少但更大型的硬分叉。現在,大家似乎更傾向於頻繁但小型的分叉。想了解更多信息,請看以太坊百科的路線圖頁面。

如何參與?

如果你看完了上面所有內容,你可能會想參與以太坊社區。

我花了大量時間在以太坊魔術師論壇上,論壇的好處是有長文段和分帖子的討論。該論壇也變成了 EIP 討論的一箇中心 —— 因爲 GitHub 的 Issue 頁面不是那麼容易訪問,也不支持分帖子討論。

我也組織社區的線上會議、活動,也參與標準治理,包括升級 EIP 庫並讓以太坊協議棧能連接更廣泛的用戶。

作爲一個沒有技術背景的人,學會 GitHub 的用法真的非常有用。Issue 和項目工具非常像一個共享的任務表或者說項目管理系統,任何習慣使用 web 應用的人都能學會。我在嘗試使用 EthMagicians Issue 隊列與更多人開展協作,已組織志願者的線上會議及完成工作。

最後,有很多辦法能從 Twitter 或其他社交媒體的短篇幅中解放出來,參與更長的討論、協作並提出問題、要求問責並把事情辦好(這些纔是更重要的)!

來源鏈接:blog.bmannconsulting.com