原文文章,作者:Storm Slivkoff 和 Georgios Konstantopoulos
原文翻譯:魯夫、前瞻新聞
歷史成長是目前以太坊擴容的最大瓶頸。令人驚訝的是,歷史成長已成為比國家成長更大的問題。幾年之內,歷史資料將超過許多以太坊節點的儲存容量。
好消息是:
-
歷史成長是一個比國家成長更容易解決的問題。
-
解決方案已經在積極開發中。
-
解決歷史成長將緩解狀態成長問題。
在這篇文章中,我們繼續對第 1 部分的以太坊擴容進行調查,現在將我們的重點從狀態成長轉向歷史成長。使用精煉的資料集,我們的目標是 1)從技術上了解以太坊的擴展瓶頸,2)幫助為圍繞以太坊 Gas 限制的最佳解決方案的討論提供資訊。
什麼是歷史成長?
歷史記錄是以太坊在其生命週期中執行的所有區塊和交易的集合。它是從創世塊到當前區塊的所有資料。歷史成長是隨著時間的推移新區塊和新交易的累積。
圖 1 顯示了歷史成長與各種協定指標和以太坊節點硬體限制之間的關係。歷史成長受到與狀態成長不同的一組硬體約束的限制。歷史成長給網路 IO 帶來壓力,因為新的區塊和交易必須在整個網路中傳輸。歷史記錄的成長也給節點儲存空間帶來壓力,因為每個以太坊節點都儲存歷史記錄的完整副本。如果歷史成長速度快到足以超過這些硬體限制,則該節點將不再能夠與其他節點達成穩定的共識。有關狀態增長和其他擴展瓶頸的概述,請參閱 第1部分 這個系列的。
圖 1:以太坊擴容瓶頸
直到最近,每個節點的大部分網路吞吐量都用於傳輸歷史記錄(例如新區塊和交易)。隨著 Dencun 硬分叉中 blob 的引入,這種情況發生了變化。 Blob 現在佔節點網路活動的很大一部分。然而,blob 不被視為歷史的一部分,因為 1)它們僅由節點儲存 2 週,然後被丟棄,2)它們不需要重複以太坊創世中的資料。由於(1),blob 不會顯著增加每個以太坊節點的儲存負擔。我們將在本文後面討論 blob。
在這篇文章中,我們將關注歷史的成長,討論歷史與國家的關係。由於狀態增長和歷史增長有一些重疊的硬體約束,因此它們是相關的問題,解決一個問題可以幫助解決另一個問題。
歷史成長有多快?
圖 2 顯示了以太坊誕生以來的歷史成長率。每條垂直線代表一個月的成長。 Y 軸代表該月歷史成長的 GB 數。交易依其「目標位址」分類,並使用 RLP (https://ethereum.org/en/developers/docs/data-structs-and-encoding/rlp/) 位元組調整大小。無法輕易辨識的合約被歸類為「未知」。 「其他」類別包括一系列小類別,例如基礎設施和遊戲。
圖 2:以太坊歷史成長率隨時間變化
從上表可以得出一些關鍵結論:
-
歷史成長速度比狀態快 6 到 8 倍:歷史成長最近達到高峰 36.0 GiB/月,目前為 19.3 GiB/月。狀態成長高峰約 6.0 GiB/月,目前為 2.5 GiB/月。本文稍後將描述歷史和狀態在成長和累積規模上的比較。
-
在 Decun 之前,歷史成長率一直在加速:雖然國家多年來一直大致線性成長(見第 1 部分),但歷史是超線性的。鑑於線性成長率將導致整體規模呈現二次方成長,超線性成長率將導致整體規模超過二次方成長。這種加速在鄧存之後戛然而止。這是以太坊首次出現歷史成長率大幅下滑。
-
最近的歷史成長大部分來自 Rollups:每個 L2 將其交易的副本發布回主網。這會產生大量的歷史記錄,並使 Rollups 成為過去一年歷史成長的最重要貢獻者。然而,Dencun 允許 L2 使用 blob 而不是歷史記錄來發布其交易數據,因此 Rollups 不再產生大部分以太坊歷史記錄。我們將在本文後面更詳細地介紹 Rollup。
誰是以太坊歷史成長的最大貢獻者?
不同合約類別產生的合約的歷史數量揭示了以太坊使用模式如何隨著時間的推移而演變。圖 3 顯示了各種合約類別的相對貢獻。此數據與圖 2 相同,已標準化。
圖3:不同合約類型對歷史成長的貢獻
數據揭示了以太坊使用模式的四個不同時期:
-
早期(紫色):以太坊最初幾年幾乎沒有鏈上活動。大多數早期合約現在都很難識別,並在圖表中標記為「未知」。
-
ERC-20時代(綠色):ERC-20標準於2015年底最終確定,但直到2017年和2018年才獲得顯著勢頭。
-
DEX/DeFi 時代(棕色):DEX 和 DeFi 合約早在 2016 年就出現在鏈上,並在 2017 年開始受到關注。 2021 年和 2022 年部分時間,DeFi 和 DEX 合約佔歷史增長量超過 50%。
-
Rollup 時代(灰色):L2 Rollups 在 2023 年初開始執行比主網更多的交易。
每個時代都代表了以太坊比之前更複雜的使用模式。複雜性可以被視為以太坊隨時間擴展的一種形式,它不能透過每秒交易量等簡單指標來衡量。
在最近的資料月(2024 年 4 月),Rollups 不再產生大部分歷史記錄。目前尚不清楚未來的歷史是否會來自 DEX 和 DeFi,或者是否會出現一些新的使用模式。
那麼斑點呢?
Dencun 硬分叉引入了 blob,透過允許 Rollups 使用廉價的 blob 而不是歷史記錄來發布數據,顯著改變了歷史成長動態。圖 4 放大了 Dencun 升級前後的歷史成長率。此圖表與圖 2 類似,不同之處在於每條垂直線代表一天而不是一個月。
圖4:Dencun對歷史成長的影響
我們可以從這張圖表中得出幾個關鍵結論:
-
自 Dencun 以來,rollups 的歷史成長下降了約 2/3:大多數 rollups 已從呼叫資料轉換為 blob,這大大減少了它們產生的歷史記錄量。但是,截至 2024 年 4 月,仍有一些匯總尚未從呼叫資料轉換為 Blob。
-
自Dencun以來,總歷史成長下降了約1/3:Dencun僅減少了匯總的歷史成長。其他合約類別的歷史成長略有增加。即使在 Dencun 之後,歷史增長仍然是州增長的 8 倍(詳情請參閱下一節)。
雖然 blob 降低了歷史成長率,但它們仍然是以太坊的一個新功能,目前尚不清楚 blob 到位後歷史成長率將穩定在什麼水平。
歷史成長速度有多快是可以接受的?
增加Gas限制將提高歷史成長率。因此,增加Gas限制的建議(例如 泵送氣體 )必須考慮歷史成長與各節點硬體瓶頸的關係。
為了確定可接受的歷史成長率,我們首先需要了解目前節點硬體在網路和儲存方面可以維持多長時間。網路硬體可能會無限期地維持現狀,因為在 Gas 限制增加之前,歷史成長率不太可能恢復到 Dencun 之前的峰值。然而,歷史記錄的儲存負擔將隨著時間的推移而不斷增加。在目前的儲存策略下,每個節點的儲存硬碟最終都不可避免地會被歷史記錄填滿。
圖 5 顯示了以太坊節點隨時間變化的儲存負擔,並預測了未來 3 年儲存負擔的成長。該預測指的是 2024 年 4 月的成長率。
圖 5:歷史規模, 狀態和全節點儲存負擔
從這張圖我們可以得到幾個關鍵結論:
-
歷史佔用的儲存空間大約是狀態的 3 倍。隨著時間的推移,這種差異越來越大,歷史的成長速度大約是國家的 8 倍。
-
1.8 TiB是臨界閾值,許多節點將被迫升級儲存硬碟。 2 TB 是常見的儲存硬碟大小,僅提供 1.8 TiB 的可用空間。請注意,TB(1 兆位元組)與 TiB(= 1024^4 位元組)是不同的單位。對於許多節點營運商來說,真正的臨界門檻更低,因為合併後,驗證者必須與執行客戶端一起運行共識用戶端。
-
2-3年內將達到臨界閾值。增加任何數量的氣體限制都會相應地加速這個時間。達到此閾值將給節點運營商帶來巨大的維護負擔,並需要購買額外的硬體(例如 $300 NVME 驅動器)。
與狀態資料不同,歷史資料是僅追加的並且存取頻率要低得多。因此,理論上,歷史資料可以與狀態資料分開儲存在更便宜的儲存媒體上。這可以透過一些客戶端(例如 Geth)來實現。
除了儲存容量之外,網路IO是歷史成長的另一個主要限制。與儲存容量不同,網路 IO 限制在短期內不會為節點帶來問題,但隨著未來 Gas 限制的增加,這些限制將變得重要。
要了解典型以太坊節點的網路容量可以支援多少歷史成長,必須了解歷史成長與各種網路健康指標之間的關係,例如重組率、時隙缺失、最終性缺失、證明缺失、同步委員會缺失等。區塊提交延遲。對這些指標的分析超出了本文的範圍,但可以在先前的共識層健康狀況調查中找到更多資訊。此外,以太坊基金會 Xatu 計畫一直在建立公共數據集以加速此類分析。
如何解決歷史成長問題?
歷史成長是一個比國家成長更容易解決的問題。候選提案EIP-4444幾乎可以完全解決這個問題。這個EIP將每個節點從保存整個以太坊歷史記錄更改為僅保存一年的歷史記錄。實施EIP-4444後,資料儲存將不再成為以太坊擴容的瓶頸,長期來看,gas limit的增加將不再成為限制因素。 EIP -4444對於網路的長期永續發展是必要的,否則歷史成長速度會非常快,網路節點的硬體需要定期更新。
圖6顯示了EIP-4444在未來3年對每個節點儲存負擔的影響。這與圖 4 相同,但增加了一條較細的線,表示實施 EIP-4444 後的儲存負擔。
圖6 :EIP-4444對以太坊節點儲存負擔的影響
從該圖中可以得出一些關鍵結論:
-
EIP-4444 將使目前的儲存負擔減半。儲存負擔將從 1.2 TiB 降至 633 GiB。
-
EIP-4444 將穩定歷史儲存負擔。假設歷史成長率恆定,歷史數據將按照其產生的速率被丟棄。
-
EIP-4444 之後,節點儲存負擔需要很多年才能達到今天的水平。這是因為狀態成長將是增加儲存負擔的唯一因素,且狀態成長慢於歷史成長。
EIP-4444實施後,歷史成長仍會帶來一定程度的儲存負擔,因為節點會儲存一年的歷史。然而,即使以太坊達到全球規模,這個負擔也不難解決。一旦歷史保存方法被證明可靠,EIP-4444的一年有效期可能會縮短至幾個月、幾週甚至更短。
如何保存以太坊歷史?
EIP-4444 提出了一個問題:如果歷史記錄不是由以太坊節點本身保存,那麼應該如何保存它?歷史在以太坊的驗證、記帳和分析中發揮核心作用,因此保存歷史至關重要。幸運的是,歷史保存是一個簡單的問題,只需要 1/n 誠實的資料提供者。這與國家共識問題形成鮮明對比,國家共識問題需要1/3到2/3的參與者誠實。節點營運商可以透過以下方式驗證歷史資料集的真實性:1)重播自創世區塊以來的所有交易;2)檢查這些交易是否重現與當前區塊鏈端相同的狀態根。
保存歷史的方法有很多。
-
Torrents/P2P:Torrents 是最簡單、最可靠的方法。以太坊節點可以定期打包部分歷史記錄並將其作為公共 torrent 檔案共用。例如,節點可能每 100,000 個區塊建立一個新的歷史 torrent 檔案。像 Erigon 這樣的節點客戶端已經以某種非標準化的方式執行此程序。為了標準化這個過程,所有節點客戶端必須使用相同的資料格式、相同的參數和相同的P2P網路。節點將能夠根據其儲存和頻寬能力選擇是否參與該網路。 Torrent 的優點是使用高度林迪的開放標準,該標準已得到大量資料工具的支援。
-
門戶網路: 門戶網 是一個專門為託管以太坊資料而設計的新網路。它是一種類似 Torrent 的方法,同時也提供一些附加功能以使資料驗證更容易。 Portal Network 的優勢在於,這些額外的驗證層為輕客戶端提供了有效驗證和查詢共用資料集的實用程式。
-
雲端託管:AWS 的 S3 或 Cloudflare 的 R2 等雲端儲存服務為保存歷史記錄提供了廉價且高效能的選項。然而,這種方法帶來了更多的法律和業務營運風險,因為無法保證這些雲端服務始終願意並且能夠託管加密資料。
剩下的實施挑戰更多是社會性的而不是技術性的。以太坊社群需要協調具體的實現細節,以便它們可以直接整合到每個節點用戶端中。特別是,從創世區塊執行完全同步(而不是快照同步)將需要從歷史記錄提供者而不是以太坊節點檢索歷史記錄。這些變化在技術上不需要硬分叉,因此它們可以比以太坊的下一個硬分叉 Pectra 更早實施。
L2 也可以使用所有這些歷史保存方法來保存它們發佈到主網的 blob 資料。與歷史保存相比,blob 保存1)更困難,因為資料總量要大得多; 2) 不太重要,因為 blob 不是重播主網歷史所必需的。然而,對於每個 L2 重播自己的歷史,blob 保存仍然是必要的。因此,某種形式的 blob 保存對於整個以太坊生態系統非常重要。此外,如果L2開發出強大的blob儲存基礎設施,他們或許也能夠輕鬆儲存L1歷史資料。
直接比較 EIP-4444 前後各種節點配置儲存的資料集會很有幫助。圖 7 顯示了不同以太坊節點類型的儲存負擔。狀態資料是帳戶和合約,歷史資料是區塊和交易,歸檔資料是一組可選的資料索引。該表中的位元組計數是基於最近的 reth 快照,但其他節點客戶端的數字應該大致可比。
圖 7:不同以太坊節點類型的儲存負擔
換句話說,
-
歸檔節點儲存狀態資料和歷史資料以及歸檔資料。當有人希望能夠輕鬆查詢歷史鏈狀態時,可以使用存檔節點。
-
全節點僅儲存歷史資料和狀態資料。現今大多數節點都是完整節點。全節點的儲存負擔大約是歸檔節點的一半。
-
EIP-4444之後,全節點只儲存最近一年的狀態資料和歷史資料。這將節點儲存負擔從 1.2 TiB 減少到 633 GiB,並使歷史資料的儲存空間達到穩定狀態值。
-
無狀態節點,也稱為“輕節點”,不儲存任何資料集,能夠在鏈的末端立即進行驗證。一旦 Verkle 嘗試或其他狀態承諾方案被添加到以太坊中,這種類型的節點將成為可能。
最後,還有一些額外的 EIP 限制了歷史成長率,而不僅僅是適應當前的成長率。這有助於在短期內保持在網路 IO 限制內,並在長期內保持在儲存限制內。雖然 EIP-4444 對於網路的長期可持續性仍然是必要的,但這些其他 EIP 將幫助以太坊在未來更有效地擴展:
-
EIP-7623:對通話資料重新定價,使某些通話資料過多的交易變得更加昂貴。使這些使用模式變得更加昂貴將迫使其中一些從呼叫資料轉換為 blob。這將降低歷史成長率。
-
EIP-4488:對每個區塊中可以包含的呼叫資料總量施加限制。這將對歷史成長的速度施加更嚴格的限制。
這些EIP比EIP-4444更容易實施,因此它們可以作為EIP-4444投入生產之前的短期權宜措施。
結論
本文的目的是利用數據來理解 1) 歷史成長如何運作以及 2) 如何解決問題。本文中的許多數據很難透過傳統手段取得,因此我們希望將這些數據公開可以為歷史成長問題提供一些新的見解。
歷史成長作為以太坊擴張的瓶頸尚未受到足夠的重視。即使不增加 Gas 限制,以太坊目前保存歷史的做法也將迫使許多節點在幾年內升級其硬體。幸運的是,這並不是一個很難解決的問題。 EIP-4444 中已經有明確的解決方案。我們認為應該加快此EIP的實施,為未來Gas限額上調留出空間。
本文源自網路:範式:詳解以太坊歷史成長問題及解決方案
摘要 今年比特幣減半,挖礦獎勵降至 3.125 BTC,對礦工的獲利能力構成挑戰。 CryptoQuant 報告稱,自上次減半以來,礦機哈希價格下跌了 30%,預計還會進一步下跌。競爭和成本上升,比特幣網路算力達到 600 EH/s,影響了收益。大約10天后,比特幣社群將見證一個重大事件,即比特幣減半。這種現象將使開採一個比特幣區塊的獎勵從 6.25 個比特幣減半至 3.125 個比特幣,給礦工的獲利能力帶來壓力。礦工們現在正在與時間賽跑,需要更高的比特幣價格來維持他們的收入。為什麼比特幣礦工將面臨挑戰根據 CryptoQuant 與 BeInCrypto 分享的報告,自 2020 年 5 月上次減半以來,礦工哈希價格已下跌 30%。