朝向簡單可驗證性演進:概述未來以太坊的三種主要節點類型

作者:2077 Research 來源:X,@2077Research 翻譯:善歐巴,金色財經

隨著以太坊網路不斷發展成熟,理解不同類型節點的概念變得愈發重要。然而,現實是大多數用戶並不願意運行節點,即使硬體需求對許多活躍用戶而言已經不再是問題。

在以太坊發展的「終局」中,使用者必須能夠在無需複雜技術知識或資源的情況下驗證狀態完整性和資料可用性。畢竟,如果區塊鏈無法實現驗證,它就只是一個效率低的資料庫。

本文將探討三種關鍵類型的節點,這些節點將塑造以太坊網路的未來:無狀態節點、狀態節點以及完整/存檔節點。我們將研究無狀態節點如何利用零知識證明實現新區塊的可信驗證,狀態節點如何提供快速且可信的以太坊當前狀態訪問,以及完整/存檔節點如何存儲從創世區塊開始的完整鏈歷史。透過理解每種節點類型的角色與權衡,我們可以邁向更去中心化、更安全、更具擴展性的以太坊生態系統。

終局:無狀態節點

目前,大多數用戶不願意花費精力運行任何類型的節點,儘管對於比特幣和以太坊來說,運行節點的硬體需求對許多鏈上活躍用戶而言完全可以負擔。 「活躍用戶」指的是那些鏈上資產規模較大的用戶,他們並不是因為硬體成本而不運行節點。

主要原因可能是以下幾點的綜合作用:絕大多數用戶並不關心運行節點,也不願花幾百美元購買硬件,或者缺乏運行節點的技術知識。儘管比特幣和以太坊在降低運行難度方面取得了很大進展,但對於普通非技術用戶來說,這仍然是一個複雜的任務。

無狀態以太坊的願景

我認為,在每條區塊鏈的「終局」中,用戶需要能夠驗證狀態完整性和資料可用性,而不需要理解這些概念是什麼。好消息是,這個願景透過足夠的工程能力是完全可行的(借助零知識技術和一些數據可用性採樣)。

在這種終局中,幾乎所有值得使用的錢包都將內建一個無狀態節點。當區塊鏈添加新區塊時,該節點可以透過P2P 網路向任何完整節點請求最新區塊頭及零知識證明,驗證狀態從前一區塊頭到新區塊頭的變更是正確的,同時透過向幾個節點請求隨機資料樣本,以接近100% 的信心確認所有資料(包括資料區塊和執行資料)已發布。此外,它還可以獲得一個零知識證明,證明網路已就該區塊達成共識並完成最終確認。

所需的頻寬和計算資源非常小,完全可以在手機甚至智慧手錶上完成(@drakefjustin 經常提到這一點)。這種節點被歸類為「無狀態」節點,因為它可以在不本地保存當前狀態的情況下,並依賴不同類型的證明來驗證新區塊。

這些證明不必是zk 證明。在我們能夠使用zk 證明執行上述內容之前,我們將進行無狀態執行驗證。事實上,無狀態執行今天可以實現,但對於當前的Merkle-Patricia-Tree 結構來說效率非常低,見證證明太大而無法實用。

這是無狀態執行在目前Merkle-Patricia 樹中遇到的主要問題,此螢幕截圖中的許多區塊都遠小於100kb,而無狀態驗證所需的證明通常比區塊本身大50 倍以上。

apygnkZuZJzdDy6zC3KqCBJv9VCj3p52iRLSGsJY.png

然而,以太坊將來會將其狀態樹結構升級為不同於目前的Merkle-Patricia-Tree 結構。你們中的許多人可能聽說過多年來一直在路線圖上的Verkle 樹,它們將允許創建實用的無狀態客戶端,因為Verkle 樹結構的性質允許非常小的見證/證明。

8flve54yTxYwIFl4PCcV38bDFCtgXUR7YVn6GyUU.png

Verkle 樹的一個主要問題是它們並不具有量子安全性。這意味著它們充其量只是狀態樹結構的臨時解決方案,直到有成熟且高效的永久性解決方案出現。最終的解決方案可能會是基於STARK 證明的二進位哈希樹(STARK-proven binary hash tree)。事實上,很可能Verkle 樹會被跳過,直接採用某種形式的STARK 證明的二進位哈希樹(相關梗圖見@VitalikButerin)。

nQkE3D6Lc21J2x0Gbueabg6nI7WoocfNGA8NDtPe.png

無狀態節點一個非常有趣的選項是,它可以選擇不完全無狀態。例如,節點可以根據使用者的需求,本地儲存與其用例相關的狀態資料(前提是客戶端支援該功能)。

假設你的資產分散在多個位址、資產種類和DeFi 協定中,那麼你可以將與自己用例相關的所有狀態資料本地寫入磁碟,而只需消耗極少的磁碟空間。即使追蹤多個大型DeFi 協定的完整狀態資料也只需幾GB,而考慮到幾乎所有新款手機都配備了128GB 或更多儲存空間,用戶在手機閃存中儲存自己所需的狀態資料不僅可行,而且可能相當實用。

(關於輕客戶端的簡短說明:在一個無狀態客戶端能夠輕鬆高效地驗證狀態轉換和共識的世界中,我認為傳統依賴誠實多數假設的輕客戶端將不再有實際用途。)

終局:狀態節點

狀態節點僅保存目前狀態和最近的狀態數據,刪除所有超過一定時間的數據(詳見EIP-4444 提案)。當前狀態對於本地建立區塊是必要的,而這是無狀態節點無法完成的功能。

有狀態節點不應與「完整」節點混淆,因為有狀態節點不會保存完整的鏈歷史,因為這在未來會變得非常資料密集。有狀態節點對於任何想要快速且無需信任地存取以太坊當前狀態的用戶都很有用,無論是從狀態查詢資料、建立區塊還是使用這種類型的節點進行質押。

保留在消費級硬體上運行有狀態節點的可能性是一個非常重要的目標,我認為,即使無狀態節點非常輕量且成熟,以太坊社群也必須保留這一目標。其中一個主要原因是,所有無狀態節點都依賴有狀態節點來創建新區塊無狀態驗證所需的見證。

還需要存取當前狀態才能知道記憶體池中的交易是否有效,因此,在網路上擁有一組非常分散的狀態節點非常重要,這些節點可以透過某種形式的包含清單設計確保非常強大的審查抵抗保證。

好消息是,有了狀態到期機制,我們可以大大簡化有狀態節點的運行,因為一段時間內無人交互的狀態可以從節點的磁碟中刪除,任何想要與已到期狀態交互的人必須提供見證(本質上是梅克爾證明)才能將已到期狀態恢復到當前狀態。任何有權訪問鏈歷史的人都可以以無需信任的方式構建這些類型的證明來恢復已到期狀態。截至撰寫本文時,以太坊狀態已接近300gb,在實施某種形式的狀態到期機制之前,狀態大小將繼續以或多或少的上升趨勢成長。

終局:完整/存檔節點

出於本文的目的,我將批量處理完整節點和存檔節點,因為普通完整節點可以使用其寫入磁碟的資訊在本地計算存檔節點寫入磁碟的所有資料。不同之處在於,完整節點會修剪不再是最新/近期狀態的狀態。例如,您無法從普通完整節點查詢“大約5 年前區塊Y 上帳戶X 的ETH 餘額是多少”,而存檔節點會在一毫秒內回答該查詢。

kcEj6hJfIjrGOtOcPYCCuZbROrc8kEySjA2ewBvI.png

也就是說,理論上可以從完整節點寫入磁碟的資料(整個鏈歷史)計算出此查詢的答案,但支援此功能的執行客戶端並不多。我認為,認為許多用戶(甚至是高級用戶)將在10 年內運行完整/存檔節點是不合理的,要使這成為一個合理的選擇,我們必須將L1 吞吐量限制在完全不合理的水平,因為我們可以在L1 上以最小的權衡獲得更高的吞吐量。當大多數用戶可以使用zk 證明輕鬆驗證新區塊時,我認為當收益如此巨大時,這是一個值得追求的權衡。

也許我們可以獲得能夠在HDD 上高效運行的執行客戶端,並且能夠以相對低廉的價格儲存數百TB 的存檔狀態。這可以讓出於任何原因想要存檔所有以太坊的用戶這樣做,我知道Erigons 的目標之一是允許在HDD 上運行完整存檔節點。

以太坊的新時代

未來,以太坊的形態將由其網路節點的組成決定。透過讓無狀態節點成為大多數用戶的現實選擇,同時認識到狀態節點和完整/存檔節點的重要性,以太坊可以在去中心化、安全性和擴展性之間找到完美的平衡,為所有用戶帶來福祉。

Total
0
Shares
Related Posts