來源| stonecoldpat.substack.com

作者| Patrick McCorry

翻譯| 0xFelix

校對| Franci, ECN

以太坊已經達到了其中一個期待已久的里程碑—— 合併!這是一個非常重要的時刻。經過長達7 年的努力,以太坊社區成功地將工作量證明機制替換為權益證明共識協議。直接的影響是將網絡的能源消耗減少了99.95%,僅佔全球電力消耗的0.02%。這是值得慶祝的成果!

除此之外,升級帶來的技術優勢還有很多,但大多數社區並不清楚。現在是時候撰寫更易於理解的材料來介紹權益證明機制工作原理、重要性以及即將推出的激動人心的功能了—— 尤其是現在權益證明正在保護數千億美元的資產。

為了支持這一努力,我們準備了一系列文章來解釋權益證明協議,面向對這項技術感興趣的研究人員、開發人員和最終用戶。在兩週的時間內,我們將發布以下文章並更新相關鏈接:


模塊化設計和兩條區塊鏈,

Epochs、Slots 和信標區塊,

驗證者見證和投票協議,

補償和懲罰,

以太坊的權益證明是否實現了其目標?


此外,還包括以下一些話題:


註冊和提款過程,

怠工懲罰,

聚合器和子委員會的角色,

搖擺攻擊(未發布),

同步委員會(未發布)。


我們希望這些文章能幫助您了解權益證明協議的工作原理,並作為您在開發過程中進行共識客戶端代碼之前的必備知識。

感謝Teku 團隊,特別是Ben Edington 和Mikhail Kalinin 耐心解答我的問題。


模塊化設計和兩條區塊鏈



區塊大小之戰最終是關於去中心化的爭鬥- 應該盡可能地經濟實惠?還是應該盡可能地可驗證?


對於區塊鏈可擴展性的追求讓社區在過去10 年中提出了幾個雄心勃勃的提案,問題的核心是一個基本的權衡:

可負擔性:可以負擔得起在網絡上進行交易的用戶人數規模。

可驗證性:具有硬件和帶寬等硬性要求以實時驗證交易完整性的用戶人數。

許多現代區塊鏈系統將可負擔性和最大用戶數量置於其他一切之上- 假定網絡運營者願意盡最大努力幫助實現這一目標。這種假設,運營者應該努力工作,會使區塊鏈系統向中心化方向發展,因為它減少了可以作為運營者參與的人數。特別是對於需要運營者從經過批准的製造商購買硬件的網絡。


並不是說現代區塊鏈設計是錯誤的,但迄今為止,它們都未能像比特幣或以太坊一樣獲得同樣的關注。在我們看來,其中一個突出原因是這種基本權衡。這是比特幣區塊大小之爭的核心,社區最終決定優先考慮誰可以驗證網絡的完整性,而不是長期的可負擔性。


希望就像以太坊一樣,可負擔性可以通過閃電網絡、側鍊或Rollup 推到另一個層級。以太坊社區、路線圖和價值觀都源於相同的背景。唯一的區別在於以太坊有一種根深蒂固的社會契約,使其社區能夠實際改變基礎平台以克服這個困境。


如果有一個與權益證明無關的唯一收穫,那就是在去中心化網絡的情況下,TPS 指標是毫無意義的。可擴展性不僅僅是以任何代價增加吞吐量,而應定義為以下內容:


“增加交易吞吐量,同時仍遵守運行完全驗證節點所需的相同的計算、帶寬和存儲要求。”


作為讀者,這個討論可能看起來很奇怪。為什麼我們要談論區塊鏈可擴展性?這與權益證明有什麼關係?更重要的是,由於升級不會立即以有意義的方式增加交易吞吐量,這討論似乎更加離題。原因在於該升級的功能被低估了,即可為未來的可擴展性解決方案奠定基礎。



單一型區塊鏈到模塊化區塊鏈



一個新的思維模型—— 共識參與者不需要做所有的艱苦工作,他們只需驗證並同意工作是正確的。


讓我們快進幾年,快進到區塊大小戰爭之後。現在,我們有更好的術語來說明這個困境如何影響區塊鏈系統的設計,即單一型區塊鍊或模塊化設計。


單一型區塊鏈。這是一種試圖尋找通用解決方案以解決所有硬件瓶頸的區塊鏈協議和實現機制,例如如何執行交易、如何廣播數據以及如何存儲數據庫。參與的網絡運營者必須執行所有繁重的工作並運行整個單一型的實現,這很大程度上限制了誰可以參與共識協議。



模塊化設計將資源按層級重新定義—— 使得團隊能夠構建軟件以解決每個層級的問題。


資源形成分層。以太坊權益證明設計及其長期路線圖背後的重要力量之一是將每種資源定義為一個新層級。通過成為一個層,可以將問題分離並獨立,從而允許團隊構建新的軟件客戶端來解決每個特定的問題。這就是所謂的模塊化區塊鏈設計。

關於模塊化方法最重要的理解可能是它如何改變共識參與者的看法。它不再是讓他們負擔最大的工作量。相反,它的重點是:

“區塊提議者最少需要做什麼工作?有沒有可能把所有不必要的困難工作給到別的地方?”

回答是肯定的

驗證者作為輕客戶端。區塊鏈協議的設計不再是圍繞最大化網絡運營者的工作。事實上正好相反,網絡運營者(驗證者)應該是輕客戶端,只需要檢查和驗證在別的地方已經完成了的工作。

這就是為什麼我個人喜歡“驗證者”這個名字。他們唯一的工作就是驗證、達成一致(共識),最終保護存儲在以太坊數據庫中的所有用戶資產。從長遠來看,參與其中應該只需要商業上可用的硬件和良好的互聯網連接。

此外,通過使驗證者成為輕量級客戶端,它可能最終解決了運行節點軟件的利他性天然癥結。用戶終於可以因驗證區塊鏈並實時檢查其完整性而獲得報酬。此外,我們也可以檢查他們是否在做這項工作。


兩條區塊鏈



合併是將以太坊規範邁向模塊化設計的第一個里程碑。

它將交易排序的全局共識和交易的最終執行分離。與此同時,它引入了兩個新的區塊鏈:

1)執行區塊鏈。處理用戶生成的交易和智能合約執行的原始以太坊區塊鏈。有時被稱為ETH1 區塊鏈。

2)共識區塊鏈。專用於共識層的區塊鏈。它負責決定執行區塊鏈的規範鏈,並記錄權益證明的轉錄。有時被稱為信標區塊鏈。


兩個軟件客戶端。工作量證明PoW 模塊以及通常處理決定規範鏈的任何代碼,都可以從原始以太坊節點軟件中刪除。整個執行環境保持完整,並且現在稱為執行客戶端。為了檢索規範的執行鏈,它會向處理共識層的軟件客戶端(“共識客戶端”)輪詢新塊。

由於執行區塊鍊和客戶端基本上保持不變,因此我們的文章將重點關注實現權益證明協議的共識層。


多客戶端生態系統。由於上述分離,出現了幾個獨立嘗試解決共識或執行問題的團隊。當然,在這兩種情況下,他們必須遵循通用規範,但可以自由地嘗試實現細節。目前存在一個蓬勃發展(且出乎意料地資金充裕)的多客戶端生態系統。例如,共識客戶端包括Teku 和Prysm,而執行客戶端如Geth、Erigon 和Nethermind。

鼓勵驗證者運行不同組合的共識和執行客戶端。這是防範共識級錯誤的第一道防線,希望相同的錯誤不會在多個獨立實現中復制。這種軟件工程實踐稱為“N 版本” 編程。

如果驗證者的絕大多數不遵循此建議,則可能導致末日情景。我們很快就會了解更多信息。


寫在最後


細心讀者可能已經註意到了這裡的數據可用性、執行和結算層的使用,但是權益證明以太坊是為了共識和執行層奠定了基礎。

長期的路線圖是朝著以下方向發展:

共識→ 數據可用性。所有驗證者都達成了對數據排序的一致意見,proto-danksharding 有助於鞏固這一角色。

Rollups → 執行層。 Rollups 承擔執行層的角色,

ETH1 → 結算層。原始的以太坊區塊鍊是保護所有用戶定義資產的信任基礎。


種命名可能會令人困惑,依賴於以太坊協議的未來迭代。我們現在只是簡單地稱之為共識和執行層—— 因為它已經被實現和部署了。