Vitalik:探討擴展Rollups 的分步路線圖

對於以太坊而言,Rollups 是短中期,也可能是長期的唯一無須信任的可擴展性解決方案。

對於以太坊而言,Rollups 是短中期,也可能是長期的唯一無須信任的可擴展性解決方案。以太坊L1 上的交易費在幾個月以來一直很高,現在更迫切的是採取一切必要的行動,幫助推動整個生態系統轉移到Rollups。 Rollups 已經大大降低了許多以太坊用戶的費用:l2fees.info 網站時常顯示Optimism 和Arbitrum 網絡的費用要比以太坊基礎層本身低了約3-8 倍,而zk-Rollups 有著更好的數據壓縮,並且可以避免包含簽名,因此其費用要比以太坊基礎層低約40-100 倍。然而,對於許多用戶來說,即便是這些(Rollups中的) 費用也還是太過昂貴了。很長一段時間以來, 數據分片(data sharding) 被認為是解決當前形式的Rollups 的長期不足的解決方案,數據分片有望在以太坊鏈上為Rollups 增加大約1-2MB/s 的專用數據空間。本文描述了實現該解決方案的一條實用的路徑,能夠盡可能快地為Rollups 解鎖數據空間,並隨著時間的推移增加更多額外的空間和安全性。

Step 1: 擴展交易calldata

目前現有的Rollups 使用了交易calldata。因此,如果我們想要在無需讓各個Rollups 團隊做出任何額外工作的情況下,在短期內提升Rollups 的容量並降低成本,我們應該降低交易calldata 的Gas 成本。當前的平均區塊大小還遠沒有達到威脅以太坊網絡穩定性的大小,因此這樣做是有可能安全的,儘管可能需要一些額外的邏輯來預防非常不安全的邊緣情況。參見EIP-4488 提案,或者另一個(更簡單但效果更溫和的) EIP-4490 提案。

  • EIP-4488:https://github.com/ethereum/EIPs/pull/4488

  • EIP-4490:https://github.com/ethereum/EIPs/pull/4490

EIP 4488 應該能將每個slot 可用於Rollups 的數據空間增加至理論上最大約1 MB,並將Rollups 上的成本降低約5 倍。這可以比後面的步驟更快地實現。

Step 2: 幾條分片

與此同時,我們可以開始做一些工作來推出“適當的”分片。想要以完整(功能) 的形式實現分片還需要很長的時間,但我們能做的是可以一步步地實現它,並從每一步中獲益。首先自然是要實現分片規範的“業務邏輯”,但需要使最先上線的分片數量非常低(比如4 條分片),以此來避免圍繞分片網絡的大多數難點。每條分片將在其自己的子網絡中廣播。默認情況下,驗證者將信任委員會,但如果他們願意,他們可以選擇在每個子網絡中,但只有當他們看到了信標區塊確認的任何分片區塊的全部數據時,他們才會接收該信標區塊。分片規範本身並不是特別困難;它與最近發布的Altair 硬分叉有著類似規模的樣板代碼更改(Altair 的信標變更規範文件是728 行,分片的信標變更規範文件是888 行),因此可以合理地預計它可以在與Altair 的實現和部署類似的時間框架內實現。為了使分片數據(sharded data) 實際上可被Rollups 使用,Rollups 將需要能夠使其證明(proofs) 進入到分片數據中。有兩個選擇: 增加BEACONBLOCKROOT 操作碼;Rollups 將增加代碼來驗證根植於歷史信標鏈區塊根的默克爾證明(Merkle proofs);

  1. 增加面向未來的狀態和歷史訪問預編譯,這樣當承諾方案(commitment scheme) 在未來發生改變時,Rollups 就不需要更改它們的代碼。

  2. 這將使得每個slot 的Rollup 數據空間增加至約2 MB (每個分片250 kB * 4 個分片,再加上上文Step 1 中擴大的calldata)。

Step 3: N 條分片,由委員會保護

將活躍分片的數量從4 條增加到64 條。此時分片數據將進入子網絡,因此屆時的P2P 層必須已經足夠牢固,使得將其分割成更多數量的子網絡變得可行。數據可用性的安全性將基於大多數(驗證者) 誠實假設,依賴於委員會的安全性。這將使得每個slot 的Rollup 數據空間增加至約16 MB (每條分片250 kB * 64 條分片);我們假設此時Rollups 將已經從以太坊執行鏈中遷移出來。

Step 4: 數據可用性抽樣(DAS)

添加數據可用性抽樣(DAS) 以確保更高級別的安全性,使得即便是在大多數(驗證者) 不誠實的攻擊情況下,用戶也能夠得到保護。數據可用性抽樣可以分階段來進行:首先,以非約束性的方式來允許網絡對其進行測試,然後將其作為接收信標區塊的必要條件,甚至可能先在某些客戶端上進行。一旦完全引入了數據可用性抽樣,分片的鋪展就完成了。

基於分片的Optimistic Rollups 和ZK Rollups

當前的以太坊與實施分片之後的以太坊的一個主要區別就是,在分片的世界裡,Rollup 數據實際上不可能成為向智能合約提交Rollup 區塊的交易的一部分。相反,Rollup 數據的發布與Rollup 區塊的提交將必須是分開的:首先,數據發布將把數據放到鏈上(也就是放到分片鏈中),然后區塊提交將會提交區塊頭以及一個指向底層數據的證明。 Optimism 和Arbitrum 已經為Rollup 區塊的提交使用了一種兩步式設計,因此這對二者來說都將是一個很小的代碼更改。

對於ZK Rollups,事情有點棘手,因為提交交易需要提供一個直接對數據進行操作的證明。它們可以通過ZK-SNARK 來證明分片中的數據與信標鏈上的承諾相匹配,但這一操作是非常昂貴的。幸運的是,還有更便宜的替代方案。如果該ZK-SNARK 是一個基於BLS12-381 的PLONK 證明,那麼它們可以簡單地直接將分片數據承諾作為輸入來進行打包。 BLS12-381 分片數據承諾是一個KZG 承諾,與PLONK 中的承諾類型相同,因此可以作為公共輸入直接傳遞到證明中。如果ZK-SNARK 使用了一些不同的機制(或者即便是BLS12-381 PLONK 但有著一個更大的可信設置),那麼它可以包含自己的數據承諾,並使用一個等效性證明(proof of equivalence) 來驗證該證明中的承諾與信標鏈中的承諾是對相同數據的承諾。分片世界中,誰將存儲歷史數據?

增加數據空間的一個必要條件是移除以太坊核心協議負責永久性維護達成共識的所有數據的屬性。因為這些數據量太大了。例如:

  • EIP-4488 理論上帶來的最大鍊大小是每12 秒的slot 為大約1,262,861 字節,也即每年大約3.0 TB,但實際上每年更有可能是約250-1000 GB,尤其是在開始階段。

  • 4 條分片(每個slot 為1 MB) 每年會增加額外的約2.5 TB。

  • 64 條分片(每個slot 為16 MB) 每年將帶來總計為約40 TB 的存儲。

大多數用戶的硬盤驅動器的大小在256 GB 和2 TB 之間,1 TB 似乎是中間值。下圖是一項針對計算機硬盤空間有多大而在一組區塊鏈研究員中開展的內部調查的結果:

這意味著用戶當前可以運行一個節點,但如果此路線圖的任何一部分如果不進行修改就實施,那麼用戶將無法運行節點。當然還有更大的驅動器可用,但用戶將必須竭力去購買它們,這大大增加了運行節點的複雜性。當前主要的解決方案是EIP-4444,此提案消除了節點運營者存儲超過1 年的區塊或收據的這一責任。在分片的情況下,這個1 年的時長將很可能進一步縮短,而且節點將只需要負責他們積極參與的子網絡上的分片。這就提出了一個問題:如果以太坊核心協議不存儲這些數據,誰來存儲?首先,重要的是要記住,即使有了分片,數據量也不會那麼大。是的,每年40 TB 確實超出了運行“默認”消費硬件的個人的能力(事實上,即便每年1 TB 也還是如此)。然而,對於一個願意投入一些資源並想辦法來存儲這些數據的人來說,這是在其可接受的範圍內的。當前一台48 TB 的HDD (硬盤驅動器) 的售價是1729 美元,一台14 TB 的是約420 美元。出於可以獲得質押獎勵,某個運行了1 個32 ETH 驗證者插槽的人可能會願意支付並存儲分片實施之後的整條鏈。因此,實際上,「沒有人會存儲某個分片的一些歷史數據以至於這些數據完全丟失」的這種情況似乎是不可能出現的。那麼誰將存儲這些數據?我的一些想法:

  • 個人和機構志願者;

  • 區塊瀏覽器(etherchain.org、etherscan.io、amberdata.io 等等) 將肯定會存儲所有數據,因為向用戶提供數據是它們的業務模式。

  • Rollup DAOs 指定並付費給參與者來存儲並提供與他們的Rollup 相關的歷史數據。

  • 歷史數據可以通過種子(torrents) 進行上傳和共享。

  • 客戶端可以自願選擇隨機存儲區塊鏈的0.05% 的歷史數據(使用糾刪碼,這樣只有當許多客戶端在同一時間離線時才會丟失一小塊數據)。

  • Portal Network 中的客戶端可以隨機存儲一部分區塊鏈歷史數據,且Portal Network 會自動將數據請求導向存儲了該數據的節點。

  • 可以在協議中激勵歷史數據的存儲。

  • 像The Graph 這樣的協議可以創建激勵市場,其中的客戶端向服務器支付費用,從而獲取歷史數據和證明其正確性的默克爾證明。這就激勵了人們和機構來運行存儲歷史數據的服務器,並按需提供這些數據。

這些解決方案中的一些方案(個人和機構志願者、區塊瀏覽器) 已經是可用的了。而當前的P2P 種子場景更是一個主要由志願者驅動和存儲大量內容的生態系統的絕佳例子。其他基於協議的方案要更加強大,因為它們提供了激勵機制,但它們可能需要更長的時間來進行開發。從長期來看,通過這些L2 協議來訪問歷史數據,可能要比通過當前的以太坊協議更加有效。

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts