特別感謝Micah Zoltu、Toni Wahrstätter、Justin Traglia和pcaversaccio的討論
增加L1 gas限制最常見的批評,除了對網路安全的擔憂外,是它使執行完整節點變得更加困難。
尤其是在一個專注於解耦完整節點的路線圖背景下,解決這個問題需要理解完整節點的目的。
歷史上,人們認為完整節點是用於驗證鏈;請參見這裡瞭解如果普通使用者無法驗證可能發生的情況。如果這是唯一的問題,那麼L1擴容就可以透過ZK-EVMs解鎖:唯一的限制是保持區塊構建和證明成本足夠低,以便兩者都能保持1-of-n抗審查並保持競爭性市場。
然而,現實中這並不是唯一的考慮。另一個主要的擔憂是:擁有一個完整節點很有價值,因為你可以有一個本地RPC伺服器,可以以無信任、抗審查和隱私友好的方式讀取鏈。本文件將討論對當前L1擴容路線圖的調整,以實現這一目標。
為什麼不以ZK-EVM + PIR實現無信任和隱私?
我上個月釋出的隱私路線圖專注於TEEs + ORAM作為短期補丁,以及PIR作為長期解決方案。這,加上Helios和ZK-EVM驗證,將使任何使用者連線到外部RPC並完全相信(i)他們獲得的鏈是正確的,(ii)他們的資料隱私得到保護。因此,值得問這個問題:為什麼要止步於此?這些先進的密碼學解決方案是否不會使自託管節點成為過時的遺物?
對此,我可以給出幾個回覆:
- 完全無信任的密碼學解決方案(即1伺服器PIR)將會很昂貴。目前開銷高得不切實際,即使經過許多效率改進,可能仍會保持高成本。
- 元資料隱私。哪個IP地址在什麼時候發出請求,以及請求的模式本身就足以揭示關於使用者的大量資訊。
- 審查脆弱性:由少數RPC提供商主導的市場結構將面臨強大的壓力來取消平臺或審查使用者。許多RPC提供商已經排除了整個國家。
基於這些原因,繼續確保更容易執行個人節點是有價值的。
短期重點
- 提高EIP-4444的全面推廣,直到最終狀態,每個節點僅儲存約36天的資料。這大大減少了磁碟空間需求,這是阻止更多人執行節點的主要問題。之後,節點的磁碟空間需求將是(i)狀態大小,(ii)狀態Merkle分支,(iii)36天的歷史。
- 構建分散式歷史儲存解決方案,每個節點可以儲存超過截止日期的少量歷史資料。使用擦除編碼以最大化魯棒性。這確保了"區塊鏈永遠存在"的特性,而不依賴於中心化提供商或給節點運營者帶來沉重負擔
- 調整gas定價,使儲存更昂貴,執行更便宜。特別高優先順序的是提高建立新狀態的gas成本:(i) SSTORE用於新儲存槽,(ii)合約程式碼建立,(iii)向尚未有餘額或隨機數的賬戶傳送ETH。
中期重點:無狀態驗證
一旦我們啟用無狀態驗證,就可以執行一個具有RPC功能的節點(即儲存狀態),而無需儲存狀態Merkle分支。這進一步將儲存需求減少約2倍。
一種新型節點:部分無狀態節點
這是一個新想法,對於在L1 gas限制增加10-100倍的情況下允許個人節點執行至關重要。
我們新增一種節點型別,它無狀態地驗證區塊,並透過無狀態驗證或ZK-EVM驗證整個鏈,並保持狀態的一部分是最新的。只要所需資料在該狀態子集內,節點就能響應RPC請求;其他請求將失敗(或必須回退到外部託管的密碼學解決方案;是否這樣做應由使用者選擇)。
要儲存的狀態部分將取決於使用者選擇的配置。一些示例可能是:
- 除了已知為垃圾的合約外的所有狀態
- 與所有外部擁有賬戶(EOA)和安全錢包(SCW)相關的狀態,以及所有常用的ERC20和ERC721代幣和應用
- 與過去兩年內被訪問的所有外部擁有賬戶和安全錢包相關的狀態,一些常用的ERC20代幣,以及有限的精選交換、DeFi和隱私應用
配置可以由鏈上合約管理:使用者將使用--save_state_by_config 0x12345...67890執行他們的節點,該地址將以某種語言指定地址列表、儲存槽或其他過濾的狀態區域,節點將儲存並保持最新。請注意,使用者不需要儲存Merkle分支;他們只需要儲存原始值。
這種型別的節點將提供直接本地訪問使用者關心的狀態的好處,以及對該狀態訪問的最大全隱私。




