自EIP-4844之後,以太坊網路資料吞吐量與儲存壓力成長,為節點帶來挑戰。為降低儲存壓力,部分客戶端刪減歷史資料已成標準。 EIP-4444和EIP-4844確保所有客戶端一致性。若要重播歷史數據,需依賴中心化服務,促使探索更去中心化解決方案。以太坊入口網站網路提供P2P連接,適用於歷史資料等所有以太坊資料。 EthStorage是激勵儲存網絡,儲存BLOB需支付費用。未來計劃包括發展去中心化以太坊狀態網路。探討儲存成本、存取擴展,Portal網路與EthStorage整合等問題。致謝:以太坊基金會、Polychain等貢獻者。
摘要:
· 自EIP-4844之後,以太坊網路的資料吞吐量與儲存壓力日益增長,且不斷增長的儲存需求為以太坊節點帶來了巨大的挑戰。為了降低儲存壓力,部分以太坊客戶端對本地倉儲的以太坊歷史資料進行了刪減,不同的全節點在儲存行為上的一致性被逐漸瓦解。
· 為確保所有以太坊用戶端功能在行為上達成一致,EIP-4444和EIP-4844將歷史資料刪減行為進行了標準化,將在未來成為以太坊節點的標配。
· 因此,如果要重播歷史資料來最新的Layer1或Layer2狀態,要依賴中心化的、以太坊協議外部的服務設施,這促使人們探索去更中心化的、與以太坊一致的架構解決方案
· 以太坊門戶網路是一個輕量級、去中心化的P2P網絡,適用於包括歷史資料在內的所有類型的以太坊資料。它專門為資源配置的設備而設計,並提供以太坊JSON- RPC服務。歷史網路和信標鍊網路幾乎已經準備就緒。
· EthStorage是一個針對EIP-4844 BLOBs資料的激勵儲存網路。為了儲存BLOB,使用者可以呼叫L1上的儲存合約,以ETH作為儲存手續費,在鏈上記錄下BLOB的雜湊值。時間的推移,儲存費用將逐漸分配給提供鏈下BLOB 儲存證明的儲存服務商。
·目前EthStorage測試網正在以太坊Sepolia測試網路上運行,多個社區參與者已成功證明了他們的本地儲存狀況。未來的計畫包括開發一個去中心化的以太坊狀態網路、實現動態大小資料的儲存證明,並可以直接從瀏覽器以去中心化的方式存取EthStorage網路。
致謝:感謝以太坊基金會的Piper Merriam、Polychain 的Karthik Raju、EthStorage 的朱強對本文提供的回饋。
背景
背景:
2023年10月22日,著名的Go-Ethereum(Geth)開發負責人Péter Szilágyi在Twitter上表達了他對以太坊資料儲存方案的擔憂。他指出,雖然Geth客戶端保留了所有歷史數據,但Nethermind和Besu 等其他類型的以太坊客戶端,可以配置刪除某些以太坊歷史數據(例如歷史區塊)。這會導致部分客戶端節點的行為與其他客戶端不一致,對Geth 用戶端運行者來說很不公平。上述話題隨即引發了關於以太坊路線儲存方案的鍛鍊討論。
儲存挑戰
儲存的挑戰
Nethermind 和Besu 允許客戶端運行者刪除本地的歷史資料?這決定了重點的問題是什麼?從我們的角度來看,有兩個關鍵:
以太坊客戶端的儲存要求越來越高。儲存以太坊歷史資料沒有任何協議內的激勵或處罰。
第一個原因源自於以太坊客戶端不斷上漲的儲存需求。下面的圓餅圖展示了接近2023年12月13日時,區塊高度為18,779,761下,一個新的Geth節點的儲存分配情況。
如圖所示:
總儲存大小:925.39 GB 歷史資料(區塊/交易收據):約628.69 GB Merkle Patricia Trie (MPT) 中的狀態資料:約269.74 GB
第二個原因是,以太坊節點缺乏儲存歷史區塊的協定內或懲罰。雖然該節點節點儲存所有歷史數據,未能提供任何來鼓勵儲存或懲罰違規的行為。並對外提供歷史資料的提取權限,更多出於利他主義,而不是因為有激勵措施。
當然,客戶端運行者可以自由地刪除或修改所有歷史數據,而不會受到任何懲罰。相較之下,驗證節點必須在本地維護並更新完整的狀態,以防止因提議/投票支持無效區塊因此,當存儲成本成為節點的主要負載時,一些節點運營商選擇刪除歷史數據就不足為奇。在沒有歷史資料的情況下,節點客戶端可以顯著降低儲存成本,將佔用的儲存空間從大約1TB 減少到300GB 左右。
圖示:Nethermined 配置運行沒有歷史區塊的節點– 目前可節省約460GB 的成本存儲
隨著即將到來的以太坊數據可用性(DA)升級,儲存挑戰即將加劇。全面擴容以太坊DA的道路始於DenCun升級中的EIP-4844,它引入了一個固定大小的二進制大對象(BLOB) ,和一個被稱為blobGasPrice 的獨立費用模型。每個BLOB 設定為128KB,EIP-4844 實施後,每個區塊最多包含6 個BLOB。為了對數據吞吐量進行擴容,以太坊計劃採用1D Reed-所羅門允許糾錯碼,最初每個區塊有32 個BLOB,並在完全擴容時達到區塊每個256 個BLOB 的量級。
如果以太坊DA 以全容量運作(每個區塊256 個BLOB),以太坊DA 網路預計今年將接收約80 TB 的DA,該數字超出了大多數節點的儲存能力。
以太坊儲存路線圖及其後果
Vitalik 發布的以太坊路線圖推文,提到了Purge 主要涉及儲存方面的內容。
不斷上漲的儲存成本引起了以太坊生態研究人員的。為了解決這個問題並確保所有客戶端的一致性,研究人員正在製定一些提議來明確消除以太坊客戶端的資料歷史關注。兩個主要提議是:
· EIP-4444:限制滿足客戶端中的歷史資料:該提案允許客戶端刪除超過一年的過往區塊。假設平均區塊大小為100K,歷史區塊資料上限約為250 GB(100K * (3600 * 24 * 365) / 12,假設區塊時間= 12 秒)。
· EIP-4844:分片BLOB 交易:丟棄超過18 天的BLOB 資料。與EIP-4444 相比,這是一種更激進的方法,將歷史BLOB 大小限制在100 GB 左右((18 * 3600 * 24) ) * 128K * 6 / 12,假設出塊時間= 12 秒)。
刪除所有客戶端的歷史資料會產生什麼後果?主要的一個問題是,新節點無法透過「全同步」模式來同步到最新狀態,「全同步」是一種將歷史資料重播,從創世區塊同步到最新區塊的資料同步方案。相應地,我們必須採取「snapsync」或「statesync」來直接同步以太坊節點的最新狀態。這種方法已在Geth 中實現,並作為預設的同步運作方式。
節點刪除掉以太坊主網歷史數據,同時導致以太坊L2出現問題,即新加入的Layer2節點,無法透過重播Layer2全部歷史數據的方法,同步至當前的最新狀態。另外,由於L1節點不維護L2狀態,L2的「snapsync」方法無法根據Layer1區塊直接衍生出最新的Layer2狀態,這違反了Layer2繼承以太坊安全所需的重要假設。
預計的解決方案將依賴Infura / Etherscan / L2專案本身的第三方服務來儲存Layer2 歷史資料或狀態副本,這是透過協議外、間接實現的中心化解決方案。
我們要探討的核心問題是:
我們在儲存和存取方面的擴充找到了更好的去中心化解決方案?是否有可能找到給予節點直接啟發、得到以太坊網路本身保障(例如,靠L1合約實現)的解決方案?在這一切的基礎上,我們是否可以為以太坊儲存路線提供一個完全去中心化的、協議內部直接指導的解決方案?
解決方案1:以太坊Portal Network
以太坊Portal 網路是一個輕量級、去中心化的網絡,用於連接到以太坊協議。它提供eth_call,eth_getBlockByNumber 等以太坊JSON-RPC 接口,將JSON-RPC 請求轉換為到以太坊表(DHT)的P2P請求,類似於IPFS網路。與允許儲存任何數據類型且容易受到垃圾數據影響的IPFS不同,Portal P2P網路專門託管坊以太數據,如歷史區塊頭和交易數據,是透過Portal網路內建的輕客戶端驗證技術即將實現。
Portal網路的一個重要特性是。其輕量級的設計以及與資源配置設備運作的兼容性。它可以運行在具有幾MB儲存空間和低記憶體的節點之上,從而促進中心化。手機或Raspberry Pi設備也有可能加入該網絡,為解決以太坊DA問題做出貢獻。
Portal網路的開發與以太坊客戶端多樣性的概念一致,客戶端採用Rust、JavaScript和Nim編寫。信標網路和歷史網路已正在使用,而狀態網路積極開發中。意義在於,門戶網路並不會為資料儲存提供直接的啟發。
圖示:具有100MB 儲存限制的Portal 網路Rust客戶端(Trin)在運作中
解決方案2:EthStorage網絡
EthStorage網路是一個去中心化的激勵儲存網絡,專門用於儲存EIP-4844 BLOB,並獲得ESP專案的資助。
· 最小信任:與需要中心化資料橋的現有解決方案不同,EthStorage依賴以太坊的共識和消耗許可的EthStorage儲存節點的1/m信任模型。儲存BLOB的過程是這樣的:使用者簽署一個說明BLOB 的交易,呼叫儲存合約的put(key, blob_idx) 方法。 ,儲存合約將記錄BLOB 哈希在鏈上。之後儲存將直接從以太坊DA 網路下載並儲存BLOB,從而繞過資料橋問題。
· 儲存成本與激勵一致:當呼叫put() 方法時,交易必須傳送儲存費用(透過msg.value)並存入競爭中。在鏈下儲存節點成功並驗證儲存證明後,該儲存費用將隨著時間的過去逐步分配給儲存節點。與現有的向出塊者(提議者)支付瞬時存儲費的以太坊存儲費模型相比,隨著時間的流逝,支付的存儲費遵循貼現清算模型——假設隨著時間的推移,存儲成本將相對於ETH 價格而降低。 EthStorage 引入的這項重大創新使得費用和儲存節點的儲存貢獻保持一致。
· 儲存證明:儲存證明是受到資料可用性的啟發,而EthStorage 中的取樣是針對一段時間的保存的BLOB。為了有效驗證鏈上採樣,EthStorage 充分利用了智慧和最新的SNARK 技術發展。
· 無授權操作:EthStorage中的任何儲存倉儲資料並定期在鏈上儲存儲存證明,都可獲得收益。
從區塊鏈的角度來看,EthStorage相當於以太坊儲存L2,但它收取的是以太坊儲存費而不是交易費。透過在鏈上索引BLOB存儲,EthStorage是一個以太坊模式存儲層,提升存儲可擴展性及成本降低(目標約1000倍)。
在開發方面,EthStorage已經與以太坊Sepolia測試網路上的EIP-4844整合。我們已對EthStorage和以太坊Sepolia測試網進行壓力測試,包括將大約數百GB的BLOB寫入EthStorage。超過100名社區參與者加入網路並成功證明了他們的本地儲存。
EthStorage網路的主要優勢在於在以太坊之上提供中心化的直接——就我們目前的知識而言,這是一個前置性的功能。然而,該網路的限制是專門為固定約束而存在的。 BLOB 大小而設計的。
EthStorage 上以太坊Sepolia 測試網的看板
展望未來
儘管以太坊儲存已受到主要關注,但其在以太坊生態系統中具有重要意義。隨著以太坊網路的快速發展,以太坊資料的儲存和可存取性成為關鍵挑戰。 Portal網路和EthStorage網路還在早期階段,還有很多重要的長期的發展方向需要關注:
去中心化低延遲存取的以太坊狀態資料網路:以去中心化且可驗證的方式存取以太坊狀態是關鍵但又具有挑戰性的任務。使用傳統的DHT網路模型,查詢帳戶資訊通常需要對儲存在不同的P2P 節點中的內部trie 節點進行多次查詢。這往往會導致相當長的延遲。如何利用狀態樹的結構來加速存取是關鍵所在。以太坊Portal 網路推出的狀態網絡,就是旨在解決這個問題
Portal網路與EthStorage網路的整合:Portal網路可以無縫擴展,支援BLOB資料。 EthStorage團隊部分已經實現了這個功能。下一步的進展,將使這些網絡統一起來,提供一個去中心化的JSON-RPC網絡,能夠透過合約來對BLOB 進行即時存取。透過將合約中的應用邏輯與EthStorage 提供的規模化BLOB 儲存結合,我們可以在以太坊上啟用新的dApp,例如動態的去中心化網站(例如去中心化) Twitter/YouTube/Wikipedia 等)。
瀏覽器的中心化存取:與存取IPFS網路中的資料的ipfs://協定類似,web3產業去以太坊存取協定的來支援瀏覽器直接訪問,以釋放以太坊豐富資料的巨大潛力。這些數據涵蓋了廣泛的領域,從代幣發票和帳戶餘額到NFT圖像和動態去中心化網站,所有這些都得益於智能合約和未來以太坊存儲的功能所實現。在這個領域,ERC-4804 /6860定義的web3://協議目前正在積極開發和推廣,以實現這一目標。
動態大小資料的高階儲存證明:除了固定的BLOB 之外,探索解決動態大小資料的高階儲存證明(例如歷史區塊甚至狀態物件等)也勢在必行。開發複雜的演算法增強儲存解決方案的適應性。
在我們的追求中,我們希望透過這些努力,共同為以太坊路線圖做出貢獻,為未來以太坊生態系統的去中心化儲存解決方案奠定基礎。
資訊來源:0x資訊編譯自網際網路。版權歸作者EthStorage所有,未經許可,不得轉載