跳到正文

Verkle 樹

Verkle 樹結合高分支樹結構與向量承諾,以產生精簡的狀態見證,並伴隨證明、遷移和密碼學方面的權衡。

更新於

僅供教育參考,不構成投資建議;投資可能產生損失。

直接答案

Verkle 樹是一種內部節點使用向量承諾的驗證式鍵值樹,名稱由「向量承諾」和「Merkle 樹」組合而來。它把許多值承諾到一個根,但與一般的雜湊 Merkle 樹不同,可以證明承諾位置上的子節點而無須列出所有同層值。

這項性質支援高分支樹和多開啟證明聚合,使狀態見證比等價的 Merkle-Patricia Trie 見證更小。見證仍須包含執行所需的值及其連結到已驗證狀態根的密碼學證據。

精簡見證可讓節點用區塊附帶的見證重新執行區塊,而無須在本機保存全部目前狀態。「無狀態」不表示無人保存狀態或不再需要共識;資料必須可用,驗證者也必須取得規範且足夠最終的根。截至 2026-08-22,以太坊路線圖仍稱 Verkle 測試網在運行且客戶端工作尚未完成,EIP-6800 的狀態為 Stagnant。

運作原理

協議先確定鍵值編碼、向量承諾方案和空節點規則。每個內部節點對有序的子節點向量作出承諾,逐層向上形成約束狀態位置與內容的根承諾。

證明者在每層開啟相關位置;對多個鍵,多重證明可以聚合開啟證明並重用共享路徑。驗證者取得鍵、值、路徑承諾和證明,先對可信根驗證,再執行或核驗狀態轉換。

EIP-6800 的以太坊設計使用 32-byte 鍵:31-byte stem 加 1-byte suffix,內部節點寬度為 256。stem 相同的值可共享更多證明材料。這是該提案的配置,不是所有 Verkle 樹的定義。更寬的樹路徑更短,但承諾、更新和驗證需要專門的橢圓曲線運算及預先計算。

範例

假設一個 31-byte stem 包含 256 個可能的 suffix 位置。若區塊讀取同一 stem 下的 2 個值,見證可重用共享路徑並聚合開啟證明,而不用攜帶 2 套獨立的 Merkle 同層雜湊;驗證者仍須檢查兩個鍵、兩個值、證明和協議選定的根。

值改變後,其 suffix 組承諾和直到根的所有受影響祖先都要更新。舊根證明即使對舊狀態仍有效,也不能證明新根下的值。節省程度取決於存取模式;精簡證明不等於零頻寬、零證明成本或資料可用性保證。

風險

實作錯誤可能破壞綁定性或拒絕誠實證明。鍵衍生、位元組序、位置綁定、域分離、曲線點驗證、純量轉換,以及空位置與已儲存零的區別都必須一致,並用測試向量和跨客戶端測試核驗。

小證明不能解決資料可用性和活性。提議者扣留值或見證時,無狀態驗證者無法執行區塊;錯誤的根驗證或最終性邏輯也會接受錯誤歷史。證明產生本身還可能成為資源瓶頸或審查點。

遷移運行中的鏈會改變狀態配置、同步、證明格式、資料庫、Gas 計量和歷史狀態證明假設。提案、開發網或基準並不等於生產就緒。相關橢圓曲線承諾也通常不被視為後量子安全;精簡性不代表所有威脅模型下都更安全。

常見誤解

誤解 1: Verkle 樹只是子節點更多的 Merkle 樹

高分支會縮短路徑,但關鍵差異是向量承諾能開啟選定子節點而不列出全部同層值。

誤解 2: 任何工作負載的 Verkle 證明總大小都是常數

開啟證明可以精簡和聚合,但狀態見證仍隨存取值、不同路徑和協議中繼資料增長。

誤解 3: 無狀態驗證表示沒有參與者保存狀態

它只表示驗證者可用見證取代完整本機狀態;仍須有人保存或重建並交付資料。

誤解 4: 以太坊主網已經使用 Verkle 樹保存執行狀態

引用資料描述研究、規範和測試網;截至核查日,路線圖仍列有大量客戶端工作,EIP-6800 仍是 Stagnant。

相關主題

資料來源

導覽

搜尋知識庫...