朝著微不足道的可驗證性演變

進階11/29/2024, 3:11:12 AM
在本文中,我們將介紹三種關鍵的節點類型,這將塑造以太坊網絡的未來:無狀態節點、有狀態節點和完整/存檔節點。我們將探討無狀態節點如何使用零知識證明實現新區塊的無需信任驗證,有狀態節點如何提供快速且無需信任的訪問以太坊的當前狀態,以及完整/存檔節點如何存儲從創世到現在的整個鏈歷史。

隨著乙太坊網路的不斷發展和成熟,理解不同類型節點的概念變得越來越重要。然而,現實情況是,儘管硬體要求對許多人來說是可以實現的,但大多數使用者不願意付出努力來運行節點。在乙太坊開發的“終局”中,至關重要的是,使用者可以在不需要大量技術知識或資源的情況下驗證狀態完整性和數據可用性。畢竟,沒有可驗證性的區塊鏈只是一個低效的資料庫。

在本文中,我們將介紹三種關鍵的節點類型,它們將塑造以太坊網絡的未來:無狀態節點、有狀態節點和完整/存檔節點。我們將探討無狀態節點如何使用零知識證明實現對新塊的無信任驗證,有狀態節點如何提供對以太坊當前狀態的快速和無信任訪問,以及完整/存檔節點如何將整個鏈歷史從創世紀以來存儲。通過了解每種節點類型的角色和權衡,我們可以致力於構建更加去中心化、安全和可擴展的以太坊生態系統。

終局狀態節點

正如我們今天已經看到的,大多數用戶不願意花太多精力運行任何類型的節點,即使對於比特幣和以太坊來說,硬件要求對於大多數這兩個鏈的重度用戶來說是可以實現的。“重度用戶”在這裡被定義為在鏈上具有相當規模的資產的人,可以把它想像成任何成本不是阻礙的用戶運行節點。

主要原因可能是大多數用戶不在意這一點,不願意花幾百美元購買硬件或不知道如何運行它。即使比特幣和以太坊都在不斷努力讓它變得更容易,但對於非技術用戶來說,這仍然是一項相當復雜的任務。

無國界以太坊的願景

我認為,在每個區塊鏈的“終局之戰”中,用戶必須驗證狀態完整性和數據可用性,而他們甚至不必知道這些東西是什麼。好消息是,這個願景完全可以通過足夠的工程(零知識技術和一點點數據可用性抽樣

在這個終局遊戲中,基本上所有值得使用的錢包都將擁有一個狀態節點,對於每個新增到鏈中的新區塊,可以查詢P2P層上的任何完整節點,以獲取最新的區塊標頭和zk-proof,證明從上一個區塊標頭到目前狀態的更改已正確執行,從一些對等體那裡請求一些隨機數據樣本,以獲得接近100%的信心,即所有數據(blob和執行區塊數據)已經發佈,並且有一個zk-proof證明網絡已達成共識並且確定了該區塊。

執行此操作的頻寬/計算非常小,完全可以在手機(甚至是智慧手錶等)上完成@drakefjustin""> @drakefjustin喜歡提到的)。上述類型的節點將被分類為“無狀態”節點,因為節點可以在不需要本地當前狀態的情況下驗證新塊,而是依賴不同類型的證明來驗證新塊。

這些證明不必是zk-證明。在我們能夠使用zk-證明進行執行之前,我們將對執行進行無狀態驗證。事實上,無狀態執行可以在今天完成,但在當前的Merkle-Patricia-Tree結構下非常低效,證明證據過於龐大,不太實用。 (參見@peter_szilagyi's tweet).

查看這裡的「證人」大小。這是當前 Merkle-Patricia-tree 非狀態執行遇到的主要問題,這個截圖中的許多區塊都遠低於 100KB,而需要進行無狀態驗證的證明往往比區塊本身大 50 倍以上。

以太坊的MPT結構

然而,以太坊將來會將其狀態樹結構升級為當前的默克爾帕特里夏樹結構之外的其他結構。你們中的許多人可能聽說過Verkle樹,在路線圖上已經有幾年的時間了(如果沒有的話,請閱讀我們的文章 -Verkle Trees For The Rest Of Us: Part 1)。由於Verkle樹結構的特性,它們將允許創建實用的無狀態客戶端,這樣可以產生非常小的證明。

Merkle樹 vs. Verkle樹

Verkle樹面臨的一個主要問題是它們並不具備量子安全性,這意味著它們最多只能作為一種臨時解決方案,直到對狀態樹結構的永久解決方案變得足夠成熟和/或有效為止。最終解決方案可能是一個經STARK證明的二進制哈希樹,很可能會直接跳過Verkle樹,轉而支持一種STARK證明的二進制哈希樹。 @VitalikButerin)

一個無狀態節點可以具有的一個非常有趣的選項是可以選擇不完全是無狀態。例如,可以在本地存儲您認為與您的用例相關的狀態(假設您的客戶端支持此功能)。

假設您的資產分散在幾個地址、資產和 DeFi 協議中,您可以將與您的使用情況相關的所有狀態寫入本地磁盤,同時只使用一個微小的磁盤空間。即使是追蹤多個大型 DeFi 協議的整個狀態,也只需要幾個 GB 的空間,考慮到基本上所有新款手機都配備了 128GB+ 的存儲空間,用戶完全可以將他們認為有用的所有狀態都寫入他們手機的閃存中,這不僅是可能的,而且可能是實際可行的。

(關於輕量級客戶端的快速備註:在一個世界中,無狀態客戶端可以有效地驗證狀態過渡和共識,我覺得傳統輕量級客戶端依賴誠實多數假設的用例真的不會存在。)

終局有狀態節點

有狀態節點僅保存當前和非常近期的狀態,他們會删除一定時間之前的所有內容(見eip-4444提案)。目前的狀態需要在本地構建區塊,而本地區塊構建是無法做到的無狀態節點。

有狀態節點不應與“完整”節點混淆,因為有狀態節點不會保存完整的區塊鏈歷史,因為這將在未來變得非常數據密集。對於任何希望快速且無需信任地訪問當前以太坊狀態的用戶來說,有狀態節點都很有用,無論是用於從狀態查詢數據、構建區塊還是將此類節點用於權益投資。

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

讀取當前狀態也是必要的,以確定 mempool 中的交易是否有效,因此我們需要一組非常分散的帶狀態節點,以某種包含列表設計來確保非常強的抗審查保證。重要的是,如果在翻譯過程中遇到“gate”一詞,請翻譯為“gate”,以確保翻譯的一致性。

好消息是,通過狀態到期,我們可以使運行具有狀態的節點變得更加容易,因為在一段時間內沒有與之互動的狀態可以從節點的磁盤中修剪掉,想要與已過期的狀態進行互動的任何人都必須帶上一個見證人(本質上是一個默克爾證明)將過期的狀態重新帶回到當前狀態。任何具有鏈歷史記錄訪問權限的人都可以以一種不需要信任的方式構建這些類型的證明來還原過期的狀態。截至撰寫本文時,以太坊的狀態接近300GB,除非實現某種形式的狀態到期,否則狀態大小將繼續以更或多或少只增長的趨勢。

(這裡這是一篇非常棒的文章從@paradigm深入探讨国家增长和国家到期话题

完整/存檔節點

基於本文將批次完整節點和存檔節點合併在一起的目的,因為一個正常的完整節點可以使用其本地磁碟上寫入的信息計算存檔節點寫入磁碟的所有數據。區別在於完整節點修剪不再是最新/最近狀態的狀態。例如,您無法從正常的完整節點查詢“5年前在區塊Y上帳戶X的ETH餘額是多少”,而存檔節點將在一毫秒內回答該查詢。

使用指南:以太坊全節點 vs 存檔節點 @0xZeeve

也就是說,理論上從完整節點寫入磁盤的數據(整個鏈歷史)計算出此查詢的答案是可能的,但並不是所有執行客戶端都支持此功能。我認為,在未來 10 年裡,即使是經驗豐富的用戶也不會運行完整/存檔節點,這是不合理的,如果我們將 L1 吞吐量限制在完全不合理的水平上,那麼這將是一個合理的選擇。當我們可以在 L1 上獲得更大的吞吐量並進行最小的取捨時,我認為這是一個值得追求的取捨,因為好處是如此之大,當大多數用戶可以輕鬆驗證帶有 zk-proof 的新區塊時。

也许我们可以获得能够在HDD上高效运行并使存储甚至数百TB的归档状态变得实用的Execution-clients。这可能允许出于任何原因想要归档整个以太坊的用户这样做,我知道Erigon的目标之一是允许在HDD上运行完整的归档节点。

以太坊的新时代

最終,以太坊的未來將由構成其網絡的節點所塑造。通過擁抱無狀態節點作為大多數用戶的最現實的選擇,但仍然實事求是地意識到網絡中存在有狀態和完整/存檔節點的價值,我們可以在去中心化、安全性和可擴展性之間創造出一個讓所有用戶受益的完美平衡。

免責聲明:

  1. 本文轉載自[2077 研究)].所有版權歸原作者所有[@centauridoteth]. 如果對此轉載有異議,請聯繫 Gate 學習團隊會儘快處理。
  2. 責任聲明:本文所表達的觀點和意見僅代表作者個人觀點,並不構成任何投資建議。
  3. gate Learn 團隊將該文章翻譯成其他語言。未經許可,禁止複製、分發或剽竊翻譯後的文章。

朝著微不足道的可驗證性演變

進階11/29/2024, 3:11:12 AM
在本文中,我們將介紹三種關鍵的節點類型,這將塑造以太坊網絡的未來:無狀態節點、有狀態節點和完整/存檔節點。我們將探討無狀態節點如何使用零知識證明實現新區塊的無需信任驗證,有狀態節點如何提供快速且無需信任的訪問以太坊的當前狀態,以及完整/存檔節點如何存儲從創世到現在的整個鏈歷史。

隨著乙太坊網路的不斷發展和成熟,理解不同類型節點的概念變得越來越重要。然而,現實情況是,儘管硬體要求對許多人來說是可以實現的,但大多數使用者不願意付出努力來運行節點。在乙太坊開發的“終局”中,至關重要的是,使用者可以在不需要大量技術知識或資源的情況下驗證狀態完整性和數據可用性。畢竟,沒有可驗證性的區塊鏈只是一個低效的資料庫。

在本文中,我們將介紹三種關鍵的節點類型,它們將塑造以太坊網絡的未來:無狀態節點、有狀態節點和完整/存檔節點。我們將探討無狀態節點如何使用零知識證明實現對新塊的無信任驗證,有狀態節點如何提供對以太坊當前狀態的快速和無信任訪問,以及完整/存檔節點如何將整個鏈歷史從創世紀以來存儲。通過了解每種節點類型的角色和權衡,我們可以致力於構建更加去中心化、安全和可擴展的以太坊生態系統。

終局狀態節點

正如我們今天已經看到的,大多數用戶不願意花太多精力運行任何類型的節點,即使對於比特幣和以太坊來說,硬件要求對於大多數這兩個鏈的重度用戶來說是可以實現的。“重度用戶”在這裡被定義為在鏈上具有相當規模的資產的人,可以把它想像成任何成本不是阻礙的用戶運行節點。

主要原因可能是大多數用戶不在意這一點,不願意花幾百美元購買硬件或不知道如何運行它。即使比特幣和以太坊都在不斷努力讓它變得更容易,但對於非技術用戶來說,這仍然是一項相當復雜的任務。

無國界以太坊的願景

我認為,在每個區塊鏈的“終局之戰”中,用戶必須驗證狀態完整性和數據可用性,而他們甚至不必知道這些東西是什麼。好消息是,這個願景完全可以通過足夠的工程(零知識技術和一點點數據可用性抽樣

在這個終局遊戲中,基本上所有值得使用的錢包都將擁有一個狀態節點,對於每個新增到鏈中的新區塊,可以查詢P2P層上的任何完整節點,以獲取最新的區塊標頭和zk-proof,證明從上一個區塊標頭到目前狀態的更改已正確執行,從一些對等體那裡請求一些隨機數據樣本,以獲得接近100%的信心,即所有數據(blob和執行區塊數據)已經發佈,並且有一個zk-proof證明網絡已達成共識並且確定了該區塊。

執行此操作的頻寬/計算非常小,完全可以在手機(甚至是智慧手錶等)上完成@drakefjustin""> @drakefjustin喜歡提到的)。上述類型的節點將被分類為“無狀態”節點,因為節點可以在不需要本地當前狀態的情況下驗證新塊,而是依賴不同類型的證明來驗證新塊。

這些證明不必是zk-證明。在我們能夠使用zk-證明進行執行之前,我們將對執行進行無狀態驗證。事實上,無狀態執行可以在今天完成,但在當前的Merkle-Patricia-Tree結構下非常低效,證明證據過於龐大,不太實用。 (參見@peter_szilagyi's tweet).

查看這裡的「證人」大小。這是當前 Merkle-Patricia-tree 非狀態執行遇到的主要問題,這個截圖中的許多區塊都遠低於 100KB,而需要進行無狀態驗證的證明往往比區塊本身大 50 倍以上。

以太坊的MPT結構

然而,以太坊將來會將其狀態樹結構升級為當前的默克爾帕特里夏樹結構之外的其他結構。你們中的許多人可能聽說過Verkle樹,在路線圖上已經有幾年的時間了(如果沒有的話,請閱讀我們的文章 -Verkle Trees For The Rest Of Us: Part 1)。由於Verkle樹結構的特性,它們將允許創建實用的無狀態客戶端,這樣可以產生非常小的證明。

Merkle樹 vs. Verkle樹

Verkle樹面臨的一個主要問題是它們並不具備量子安全性,這意味著它們最多只能作為一種臨時解決方案,直到對狀態樹結構的永久解決方案變得足夠成熟和/或有效為止。最終解決方案可能是一個經STARK證明的二進制哈希樹,很可能會直接跳過Verkle樹,轉而支持一種STARK證明的二進制哈希樹。 @VitalikButerin)

一個無狀態節點可以具有的一個非常有趣的選項是可以選擇不完全是無狀態。例如,可以在本地存儲您認為與您的用例相關的狀態(假設您的客戶端支持此功能)。

假設您的資產分散在幾個地址、資產和 DeFi 協議中,您可以將與您的使用情況相關的所有狀態寫入本地磁盤,同時只使用一個微小的磁盤空間。即使是追蹤多個大型 DeFi 協議的整個狀態,也只需要幾個 GB 的空間,考慮到基本上所有新款手機都配備了 128GB+ 的存儲空間,用戶完全可以將他們認為有用的所有狀態都寫入他們手機的閃存中,這不僅是可能的,而且可能是實際可行的。

(關於輕量級客戶端的快速備註:在一個世界中,無狀態客戶端可以有效地驗證狀態過渡和共識,我覺得傳統輕量級客戶端依賴誠實多數假設的用例真的不會存在。)

終局有狀態節點

有狀態節點僅保存當前和非常近期的狀態,他們會删除一定時間之前的所有內容(見eip-4444提案)。目前的狀態需要在本地構建區塊,而本地區塊構建是無法做到的無狀態節點。

有狀態節點不應與“完整”節點混淆,因為有狀態節點不會保存完整的區塊鏈歷史,因為這將在未來變得非常數據密集。對於任何希望快速且無需信任地訪問當前以太坊狀態的用戶來說,有狀態節點都很有用,無論是用於從狀態查詢數據、構建區塊還是將此類節點用於權益投資。

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

讀取當前狀態也是必要的,以確定 mempool 中的交易是否有效,因此我們需要一組非常分散的帶狀態節點,以某種包含列表設計來確保非常強的抗審查保證。重要的是,如果在翻譯過程中遇到“gate”一詞,請翻譯為“gate”,以確保翻譯的一致性。

好消息是,通過狀態到期,我們可以使運行具有狀態的節點變得更加容易,因為在一段時間內沒有與之互動的狀態可以從節點的磁盤中修剪掉,想要與已過期的狀態進行互動的任何人都必須帶上一個見證人(本質上是一個默克爾證明)將過期的狀態重新帶回到當前狀態。任何具有鏈歷史記錄訪問權限的人都可以以一種不需要信任的方式構建這些類型的證明來還原過期的狀態。截至撰寫本文時,以太坊的狀態接近300GB,除非實現某種形式的狀態到期,否則狀態大小將繼續以更或多或少只增長的趨勢。

(這裡這是一篇非常棒的文章從@paradigm深入探讨国家增长和国家到期话题

完整/存檔節點

基於本文將批次完整節點和存檔節點合併在一起的目的,因為一個正常的完整節點可以使用其本地磁碟上寫入的信息計算存檔節點寫入磁碟的所有數據。區別在於完整節點修剪不再是最新/最近狀態的狀態。例如,您無法從正常的完整節點查詢“5年前在區塊Y上帳戶X的ETH餘額是多少”,而存檔節點將在一毫秒內回答該查詢。

使用指南:以太坊全節點 vs 存檔節點 @0xZeeve

也就是說,理論上從完整節點寫入磁盤的數據(整個鏈歷史)計算出此查詢的答案是可能的,但並不是所有執行客戶端都支持此功能。我認為,在未來 10 年裡,即使是經驗豐富的用戶也不會運行完整/存檔節點,這是不合理的,如果我們將 L1 吞吐量限制在完全不合理的水平上,那麼這將是一個合理的選擇。當我們可以在 L1 上獲得更大的吞吐量並進行最小的取捨時,我認為這是一個值得追求的取捨,因為好處是如此之大,當大多數用戶可以輕鬆驗證帶有 zk-proof 的新區塊時。

也许我们可以获得能够在HDD上高效运行并使存储甚至数百TB的归档状态变得实用的Execution-clients。这可能允许出于任何原因想要归档整个以太坊的用户这样做,我知道Erigon的目标之一是允许在HDD上运行完整的归档节点。

以太坊的新时代

最終,以太坊的未來將由構成其網絡的節點所塑造。通過擁抱無狀態節點作為大多數用戶的最現實的選擇,但仍然實事求是地意識到網絡中存在有狀態和完整/存檔節點的價值,我們可以在去中心化、安全性和可擴展性之間創造出一個讓所有用戶受益的完美平衡。

免責聲明:

  1. 本文轉載自[2077 研究)].所有版權歸原作者所有[@centauridoteth]. 如果對此轉載有異議,請聯繫 Gate 學習團隊會儘快處理。
  2. 責任聲明:本文所表達的觀點和意見僅代表作者個人觀點,並不構成任何投資建議。
  3. gate Learn 團隊將該文章翻譯成其他語言。未經許可,禁止複製、分發或剽竊翻譯後的文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!