所有語言
分享
作者:Eli Barbieri,以太坊開發者 來源:medium 翻譯:善歐巴,金色財經
過去兩年,以太坊 rollup 領域取得了重大發展。有效性Rollup(也稱為 ZK Rollup)近幾個月已成為極具競爭力、實用且廉價的第 2 層解決方案。此外,隨着即將到來的 Dencun 硬分叉和數據 blob ( EIP-4844 )的實施,了解與在以太坊主網上驗證有效性證明相關的流程和成本至關重要。
尤其是 Starknet 和 zkSync Era 已成為突出的競爭對手,通常與以太坊主網上執行的用戶操作數量相當甚至超過。我們的目標是在交易量、相對計算和壓縮效率方面準確比較他們的系統,深入研究第 1 層驗證成本、第 2 層交易和第 2 層資源消耗等方面。他們被選為最大的 Layer 1 個Gas支出者,擁有現成的分析基礎設施;Linea 和 Scroll 留待以後研究。
以下部分將詳細分析與提交鏈上證明和狀態數據相關的成本。我們將剖析負責此過程的第 1 層智能合約,並評估每筆交易的平均鏈上驗證成本。
此外,我們將預測 EIP-4844 對這些成本的影響,突出显示哪條鏈可能會從這次升級中受益更多。最後,我們將討論用於比較兩個網絡的真實可擴展性的各種技術,旨在平衡和細緻地比較它們的效率。
Starknet 處理交易的方式與主流 EVM 兼容鏈不同。在後面的分析中,我們將重點關注bartek.eth定義的用戶操作,而不是分析 Starknet 的交易量。用戶操作代表用戶想要執行的“標準”操作,包括代幣轉移、代幣交換、鑄幣或投票。
尤其是 Starknet 和 zkSync Era 已成為突出的競爭對手,通常與以太坊主網上執行的用戶操作數量相當甚至超過。我們的目標是在交易量、相對計算和壓縮效率方面準確比較他們的系統,深入研究第 1 層驗證成本、第 2 層交易和第 2 層資源消耗等方面。他們被選為最大的 Layer 1 個Gas支出者,擁有現成的分析基礎設施;Linea 和 Scroll 留待以後研究。
以下部分將詳細分析與提交鏈上證明和狀態數據相關的成本。我們將剖析負責此過程的第 1 層智能合約,並評估每筆交易的平均鏈上驗證成本。
此外,我們將預測 EIP-4844 對這些成本的影響,突出显示哪條鏈可能會從這次升級中受益更多。最後,我們將討論用於比較兩個網絡的真實可擴展性的各種技術,旨在平衡和細緻地比較它們的效率。
Starknet 處理交易的方式與主流 EVM 兼容鏈不同。在後面的分析中,我們將重點關注bartek.eth定義的用戶操作,而不是分析 Starknet 的交易量。用戶操作代表用戶想要執行的“標準”操作,包括代幣轉移、代幣交換、鑄幣或投票。
在大多數 EVM 兼容鏈上,每個操作都作為單個交易發送。當帳戶抽象可用時,用戶將操作捆綁到單個事務中。在 Starknet 上,這稱為多重調用。由於這種差異,直接的“以交易計價”的比較,例如每秒交易數 (TPS) 的比較,不足以代表具有本機帳戶抽象的Rollup的性能。
例如,zkSync Era 上的所有交易中大約 20% 是 ERC20 Approve 交易,而 Starknet 上幾乎所有 Approve 交易都捆綁在一起。實際上,Starknet 上的同一組用戶和操作的 TPS 減少了 20%。
在比較 Starknet 和其他鏈之間的交易負載時,我們使用“UserOperation”指標(縮寫為 UOP 或 UOPS)。
目前,ZK Rollup功能齊全,並在多個方面與以太坊主網競爭。以太坊平均每日約 550,000 筆合約調用交易(不包括原生 ETH 轉賬)。Starknet 的交易量變化較大,但其日均用戶操作量略高。zkSync Era 描繪了類似的景象,其特點是高度可變性,其交易量經常超過以太坊主網。
在上圖中,由於大量 BRC-20 銘文的鑄造,zkSync Era 的日交易量在 12 月 16 日達到歷史新高。
我們利用 zkSync Era zks_getL1BatchDetails
RPC 方法來檢索提交、證明和執行交易的主網交易哈希值。使用zks_getL1BatchBlockRange
我們獲取每個批次中包含的 L2 塊的範圍。
在第 330,981 批中,zkSync Era 進行了證明者升級,重新部署了 L1 驗證合約,並從基於 Plonk 的證明系統轉移到更新的 Boojum 系統。zkSync Era 數據分為兩個數據集:過渡前批次的 Plonky 數據和升級后批次的 Boojum 數據。
為了追蹤 Starknet 的證明批次,我們追蹤verifyProofAndRegister
以太坊上的交易。從這些跟蹤中,我們可以檢查isValid(fact)
調用併為每個證明生成事實列表。生成列表后,我們可以直接將組件交易與其所屬的批次進行匹配。對於數據可用性(DA)交易,可通過日誌獲得驗證事實。在後續步驟中,我們利用狀態差異來檢測每個事務記錄了哪些事實。最後一步是將狀態轉換事實與updateState
事件相匹配,事件提供 L1 消息傳遞成本和每個批次的 L2 塊列表。
最早的 Starknet 批次使用不同的數據格式。為簡單起見,我們的 Starknet 數據省略了前 300 個批次。同樣,zkSync Era 的前幾個月使用了單獨的驗證架構;為了簡單起見,我們省略了前 100,000 個批次。對於Starknet,批次368和3,966之間的數據被回填,而對於zkSync Era,數據存在於批次100,000和401,345之間。下錶列出了回填證明批次的日期範圍,以及該數據集中涵蓋的 L2 區塊編號。
在本節中,我們將詳細介紹驗證 zkSync 和 Starknet 證明所需的鏈上步驟。我們剖析了相關成本,其中包括證明的鏈上提交、證明驗證算法中的主要操作以及提交Rollup數據以實現數據可用性。作為參考,其中包含鏈上合約的鏈接。
zkSync Lite 和 zkSync Era 的早期版本使用了 PLONK 證明器系統。我們期望這些基於 SNARK 的系統具有恆定的證明驗證成本和可變的數據可用性成本。2023 年 12 月,Era 升級為使用其 Boojum Proof 系統,該系統使用包裹在 SNARK 內的 STARK 證明。該證明仍預計具有固定的驗證成本和可變的數據可用性成本,但更有效的證明可以降低中心化基礎設施成本。不幸的是,沒有可供分析的集中數據。
首先建立基線,圖 1.1 显示了 zkSync Lite 產生的每日 L1 驗證成本的細目。對於 zkSync Lite PLONK 證明者,塊首先被提交,然後被證明,最後被執行。最有趣的是,commitBlocks
使用的gas最多,總共占驗證成本的60%,而proveBlocks
和executeBlocks
各占約20%。zkSync Lite 的 L2 交易數據和分析的質量並不是最佳的。然而,基於區塊平均值的估計表明,zkSync Lite 交易量很少超過每天 100K 第 2 層 UOPS。要更深入地了解 zkSync Lite 數據,請參閱Marcov的儀錶板。
1 — L1 ↔ L2 消息傳遞操作從executeBlocks 移至commitBlocks,降低了executeBlocks 成本並增加了commitBlocks。(這使得 Era 能夠創建大約 20 小時的執行延遲,在此期間,塊被提交和證明,然後在最終確定之前保持掛起狀態。此延遲會在發生安全事件時創建回滾緩衝區。此延遲是在 BRC-20 代幣銘文的創紀錄數量對網絡進行壓力測試后,於 12 月使用。)
2 — zkSync Era 轉向存儲狀態差異而不是完整交易。鑒於消息傳遞的變化,我們預計 commitBlocks 的比例會增加;然而,它保持不變,這表明狀態差異需要比完整事務更少的 DA 字節。
負責為兩個 zkSync 系統提交交易的 EOA/代理如下:
zkSync 批處理由三個獨立的操作組成:提交交易/狀態差異、驗證證明和執行,其中包括更新鏈頭和消息傳遞等。每個步驟的 L1 交易都可以在 zkSync Era Block Explorer中找到,並將用於將驗證成本分解為單獨的操作。下面列出了處理這些交易的以太坊主網合約。
所有 zkSync 證明系統都首先通過交易發送批次的 DA 承諾commitBatches
。在 zkSync Lite 中,區塊由其交易來表示,而在 zkSync Era 中,則由執行交易所產生的狀態差異來表示。commitBatches
可能包含多個批次並消耗/發出 L1 ↔ L2 消息。一旦 DA 承諾被散列並保存,proveBatches
就會發送一個帶有證明的交易。每一批都有一份證明。證明的驗證檢查 DA 承諾是否已保存以及 zkProof 是否正確。幾個小時后,批次被“執行”,最終確定 L2 的狀態。每個executeBatches
事務同時執行多個批次。
對圖 1.3 中 Era Plonk 和 Boojum 證明者之間的成本細分進行的分析表明,儘管百分比圖並未表明發生巨大變化,但 L1 總 Gas 消耗量表明 Boojum 升級是一個顯着的改進。
Plonk 驗證每批次的驗證成本約為 760,000 L1 Gas,而驗證 Boojum 證明每批次僅為約 460,000 Gas,這表明有相當大的改進。與直覺相反,花費的成本比例proveBatches
並沒有出現顯着下降。然而,對頂部子圖中的每日總支出進行審查后發現,總費用明顯下降。考慮到 Boojum 升級后第 2 層 UOP 數量的增加,看來 zkSync 在此次升級期間也對其 DA 發布進行了實質性優化。
進一步分析 zkSync 如何在處理更多交易的同時減少 DA 費用將很有價值。
Starknet 使用基於 STARK 的證明系統,我們預計該系統具有多對數驗證成本。
所有證明驗證交易均源自兩個 EOA 之一。這些 EOA 為批量驗證的每個步驟調用五個入口點合約之一。
下錶展示了五個入口點合約,以及显示所執行操作的示例交易。在證明驗證期間,這些合約處理證明驗證的各個步驟。請注意,批次由通過數十個區塊發送的數百筆交易組成。
Starknet 塊被分批在一起。該registerContinuousMemory
交易提交塊的狀態差異作為數據可用性(DA),每個塊涉及兩個交易:一個捕獲狀態差異,另一個捕獲塊輸出。一旦提交了一批狀態差異,就會驗證相應的執行證明。最後,處理 L1 ↔ L2 消息傳遞,並推進鏈頭。
為了分解驗證,我們將其分為以下幾部分:
驗證默克爾
驗證 FRI
寄存器內存
驗證並登記證明
更新狀態
通過使用最多的gas來獲取數據registerContinuousMemory
,約佔驗證成本的80%。updateState
佔10%,verifyProofAndRegister
佔5%,其餘佔5%。
zkSync Era 和 Starknet 每天使用的 Gas 量大致相似,在 2 到 40 億之間。雖然與 Era 和 Boojum 相比,Starknet 在證明驗證中使用的 Gas 明顯減少,但它消耗更多的 Gas 來提供數據。儘管由於網絡使用情況不同,這可能不是一個公平的比較,但這些見解很有價值。為了進行更精確的比較,在第 2 節中,我們詳細介紹了每個用戶操作的驗證成本。
上述數據表明,Starknet 可以從對其鏈上數據表示的最小改進或 EIP-4844 的實施中獲益匪淺,這可能會導致它變得比 zkSync Era 更便宜。
之前的分析比較了網絡之間的每日總驗證成本及其內部支出的明細。雖然這可以深入了解Rollup的運營成本,但它不能幫助我們了解最終用戶的網絡性能或成本。在本節中,我們比較每個用戶操作的系統驗證成本,如方法部分所述。
為了實現這一目標,我們將測量每批 L2 區塊中的用戶操作數量,並將其與 Starknet 和 zkSync Era 的 L1 批次驗證成本進行比較。
一旦我們有了每筆交易成本如何變化的公式,我們就可以根據批量大小繪製兩個網絡的性能,並比較它們每個用戶操作的平均成本。
我們userOperaptionCost
根據 L2 操作的數量和每批次消耗的 L1 驗證Gas量來定義批次的 。
在以下部分中,我們將繪製使用的 L1 Gas與批次中用戶操作數量的關係圖,並旨在為上述公式找到最佳擬合回歸。然後我們對 Starknet 和 zkSync 進行比較。
在圖 2.1 中,我們繪製了 L2 批次用戶操作計數與在 L1 上驗證批次所需的 Gas 的關係,涵蓋 zkSync Era (Plonky) 和 zkSync Era (Boojum)。
我們注意到以下幾點:
無論批量大小如何,Era 和 Boojum 的證明驗證都保持不變,Plonk 的證明驗證成本為 76 萬Gas,Boojum 的證明驗證成本為 46 萬Gas。
在 Boojum 之前的時代,成本commitBlocks
似乎與交易數量保持不變。這不是我們所期望的,因為我們假設較大的交易計數會導致較大的狀態差異。然而,這種差異可以通過 Era 的批處理算法來解釋。批處理程序嘗試包含盡可能多的交易,最多可達 750 筆交易 (Plonk) 和 1,000 筆交易 (Boojum) 的 Gas 限制或硬限制。基於此假設,事務計數較低的批次可能會按比例使用更多的存儲空間。為了解決批量大小和批量成本的選擇偏差,我們將消除提供 DA 的成本,以確保網絡的公平比較。
— 每筆交易的負成本回歸是由 zkSync 批量大小和密封標準產生的。如果滿足以下任何條件,則對批次進行密封和證明:
— 每批達到 120kb 的 MAX_PUBDATA
— 達到 750 (Plonk) 或 1000 (Boojum) 的交易限額
— Gas 上限達到 8000 萬
— zkEVM Prover 電路達到極限
值得注意的是,對於 L2 批次 x 用戶操作,我們對 L1 Gas 進行了以下回歸分析結果:
從Era數據的趨勢推斷,驗證批次的成本隨着用戶操作數量的增加而降低。這個結果是令人驚訝的、違反直覺的,並且可能是批量大小選擇偏差的結果。當x
無窮大時,每筆交易的 Gas 量為 -299.18。這是不可能的,所以我們必須得出結論,我們的模型缺少數據,這會將每筆交易的成本限製為 0 Gas。對於 Boojum 來說,情況更加荒謬。
在 Starknet 上,Merkle、FRI 和 Proof 驗證與批量大小的關係幾乎是恆定的。寄存器內存和更新狀態操作都需要調用數據發布,因此隨着批處理中的操作數量線性增長。
得注意的是,對於 L2 批次 x 用戶操作,我們對 L1 Gas 進行了以下分析:
在 Starknet 上,驗證批次的總成本隨着 UOPS 數量的增加而增加。根據當前數據集,每個用戶操作的平均 L1 成本為 2,425 個 Gas,每批固定成本約為 5100 萬個 Gas。在中位批量大小為 30,700 個操作的情況下,評估上述回歸結果會導致每個 L2 用戶操作的每個操作成本約為 4,120 L1 Gas。
就背景而言,以太坊平均每天花費 1080 億個 Gas,平均每天記錄 100 萬筆交易。這意味着每筆交易平均需要 108,000 Gas。因此,Starknet 使交易成本平均降低了 44 倍。
關於 Starknet,首先需要注意的是,它的批量大小明顯大於 zkSync Era。zkSync Era 的交易限製為每批次 750 或 1,000,而 Starknet 則沒有交易限制;相反,它填充了資源限制的證明。Starknet 批次差異很大,從包含超過 50,000 個操作的簡單操作到包含少於 15,000 個操作的資源密集型操作。
?️ 從上面的觀察來看,Starknet 在壓縮海量簡單操作方面表現出了優勢。雖然 zkSync Era 批次將在 1000 個交易時填充,但 Starknet 批次將繼續填充,直到滿足資源限制。
考慮到每個網絡的批量大小,zkSync Era 和 Starknet 花費非常相似的 Gas 量來驗證相似數量的 L2 操作。下面的圖 2.3 繪製了每次 L2 操作的每日 L1 成本,該成本是通過將 L1 驗證Gas除以 L2 操作的數量來計算的。
從上圖可以清楚地看出,zkSync Era 的 Plonky 證明器的每次操作成本與 Starknet 非常相似。不過,最近的Boojum升級帶來了實質性的改進,將每次操作的成本降低了大約一半,從而使zkSync Era在用戶操作壓縮方面擁有了目前的優勢。
由於 EIP-4844 預計會影響Rollup的動態,因此在沒有 DA 的情況下分析證明驗證的成本很有價值。就 zkSync Era 而言,proveBatches
成本保持不變。另一方面,對於 Starknet,verifyMerkle
每批操作的成本是固定的,而verifyFRI
和verifyProofAndRegister
操作的成本是多對數的。
— 雖然VerifyFRI具有多對數驗證成本,但當前的證明者僅將證明填充到128個恭弘=叶 恭弘子,需要八次verifyFRI操作。如果填充了 256 個恭弘=叶 恭弘子,則需要九次 verifyFRI 操作。Starknet 的兩層成本來自早期的證明,僅填充了 64 個恭弘=叶 恭弘子,只需要 7 個 verifyFRI 操作。
圖 2.4 的底部子圖以對數標度繪製了每次操作的固定成本,並評估了最小、中值和最大批量大小下的操作壓縮。對於 zkSync Era,Boojum 后批次的中值包含 807 次操作,導致每個 UOP 的固定成本為 568.15 Gas。相比之下,Starknet 上的中位批量大小要高得多,為 30,700 個用戶操作,導致每個用戶操作的驗證成本為 432.35 個 Gas。
從該圖中可以看出,zkSync Era 具有壓縮優勢,因為與 Starknet 相比,每個 UOP 的成本向左移動了大約兩個數量級。然而,在實踐中,zkSync Era 批次要小得多,並且在考慮每個批次大小的每個 UOP 的有效成本時,如果忽略 DA 和消息傳遞成本,Starknet 目前仍保持壓縮優勢。
有效性Rollup的具體執行成本很難比較和對比。例如,在開羅重寫某些內容意味着什麼?與 Solidity 實施相比,在鏈上運行的成本有多高?對於一組操作碼,兩個 EVM 會消耗相同數量的 Gas 嗎?這些問題引發了計算機科學中古老的爭論:哪種編程語言最快?
儘管這個問題缺乏明確的答案,但通常有兩種方法可以回答它。首先,可以對不同語言和運行時的各種算法及其實現進行基準測試,並編譯數據以比較一類算法的性能,如基準遊戲所示。或者,第二種方法涉及在各種環境中實現相關程序並直接測量這些實現的性能。
在本節中,我們不關注哪個網絡“最快”。相反,我們的目標是根據網絡跟蹤的計算單位(gas)來比較程序。
以下分析圍繞以下觀察展開:儘管每個網絡都具有新穎的程序、相同程序的不同實現以及不同的使用級別,但用戶操作概況的整體模式仍然相當一致。
這使我們能夠將它們的使用情況結合在一起並計算函數,平均將一個網絡上的Gas單位轉換為另一個網絡上的Gas單位。我們將嘗試近似一個公式,將每個網絡上的 Gas 消耗量與以太坊的 Gas 指標進行比較。
我們的結果不太可能是一個好的公式,特別是當網絡在用戶行為上存在差異時。然而,我們相信它提供了一種比較網絡計算能力的新穎方法,為開發人員提供了“風中指”技術來評估其下一次部署的潛在位置。我們希望這項技術能夠激勵其他人構建更好、更細緻的方法。
為了比較每個網絡之間的交易構成,我們回填了以太坊、zkSync Era 和 Starknet 一周的交易。收集的所有數據均在 9 月 16 日至 9 月 23 日之間,Unix 時間戳介於1694847600
和之間1695452400
。下面列出了每個網絡的塊範圍。
下錶显示了該期間交易的資源消耗數據。gas_used
在所有三個網絡之間進行分析。重要的是要記住,不同網絡之間的 Gas 構造方式根本不同,不能直接比較。
為了創建更準確的交易分配基準,我們排除了原生主網 ETH 轉賬(占交易量的 32.26%),因為 Starknet 和 zkSync Era 沒有原生 ETH 轉賬,而此類轉賬僅占以太坊上智能合約流量的一小部分。大多數應用程序專門使用 ERC20 代幣,並且 WETH 傳輸仍然記錄在該數據中。
下錶显示了未經過濾的以太坊 Gas 使用數據。但是,在後續部分中,我們將從所有以太坊發行版中排除本機傳輸。
Starknet 分佈更加“尖刻”,因為在相同操作的所有執行中,gas 使用量保持一致。在 zkSync 時代,相同交易的 Gas 使用量根據 L1 Gas 價格而變化,從而導致分配更加平滑。對於以太坊來說,這種平滑可能是由於協議種類繁多以及每個 UOP 的實現不同而造成的。
每個網絡的分佈最集中於低端,這符合大多數交易涉及基本轉賬、ERC 操作和 DeFi 交易的預期。通過分析每個網絡上的交易構成證實了這一點。
跨網絡的交易類型的構成非常相似,主要涉及 DEX 上的轉賬和互換。儘管這些Rollup促進了新型應用程序的經濟高效的鏈上部署,但觀察到的大部分活動都是由於以太坊上現有應用程序的更經濟實惠的部署而產生的。
這些圖表並不表明應用程序使用比以前更多的計算的趨勢。
我們假設這些分佈源自相同的“全局”用戶意圖分佈。如果這個假設成立,我們預計柯爾莫哥洛夫-斯米爾諾夫 (KS) 檢驗為零。然而,網絡的資源是以不同的單位來衡量的。我們通過定義資源使用直方圖的函數並最小化 KS 測試的輸出,使用 KS 應為 0 的期望來標準化單位。實際上,我們將 KS 檢驗視為要最小化的目標函數。附錄 B 詳細介紹了我們的方法。
結果是從 zkSync Gas 到以太坊 Gas 以及從 Starknet Gas 到以太坊 Gas 的近似映射。這使我們能夠比較網絡之間的交易成本,併為處理每秒計算量的比較奠定基礎。
在最小化兩個直方圖之間的方差后,我們獲得轉換函數的係數輸出。在以太坊 KDE 旁邊繪製轉換后的密度不僅揭示了分佈之間的相似性,而且還突出了可以改進擬合的潛在領域。這是數據科學中非常有趣的練習,我們鼓勵每個人探索這項研究的存儲庫併為改進我們的方法做出貢獻。
現在我們已經對第 1 層驗證成本進行了分類和了解,計算盈利能力的下一步是檢查Rollup收入。與 EIP-1559 之前的以太坊類似,rollups 通過交易費用來支付運營成本,交易費用通常以 ETH 計價。
以太坊上的 Gas 是阻止 DoS 攻擊的主要機制。它通過根據操作碼對網絡的負載按比例分配操作碼的成本來實現這一點。像這樣的基本操作ADD()
很便宜,僅消耗 3 個 Gas,而數據庫查找等昂貴的操作可能會消耗 20,000 個 Gas。精心設計的 Gas Schedule 還可以減少最大執行時間的變化。這是因為每個區塊都有一個gas limit,並且消耗與執行複雜度密切相關。
這一原則也適用於第 2 層網絡,其中證明者和排序者的資源有限。為交易支付的費用必須與執行交易、發送數據可用性承諾、生成證明、驗證證明以及 L1 Gas 的未來價格的複雜性成正比。這導致了一個複雜的方程式,確保Rollup用戶支付的費用能夠覆蓋基礎設施成本,同時保持較低的費用以改善用戶體驗。
樂觀Rollup通常採用與以太坊主網密切相關的 EVM 實現,從而產生幾乎相同的Gas機制。這包括準確複製操作碼價格,如Optimism和 Base所示。另一方面,ZK-rollups 必須調整額外的操作,因為所有指令都必須通過 zkProver 運行。特別是在ZK環境下計算常用的哈希算法是計算密集型的,操作碼價格也會相應調整。
這些變化具有有趣的設計含義。一個值得注意的例子是映射,它使用哈希從鍵中檢索值。ERC 代幣廣泛利用映射;然而,與樂觀Rollup相比,散列成本的增加使得標準 ERC 令牌在 ZK Rollup上的實現效率較低。Starknet 還使用 ~252 位字(felts)代替 EVM 兼容鏈中的 256 位字,進一步降低了標準實現的效率。因此,ZK-rollups 和 Optimistic rollups/以太坊主網之間標準和協議的優化實現可能會有很大差異。
Starknet 使用一種與 EVM 不兼容的新型虛擬機。然而,Gas的概念保持不變,費用與消耗的資源成比例分配。每個 Starknet 交易都利用不同的執行資源,例如“步驟”、“內置程序”和“內存”。執行資源有一個加權公式,確保 L2 Gas 對證明生成複雜性和 L1 驗證成本進行建模。最後,序列器被輸入 L1 Gas價格的加權平均值。
如圖 4.1 所示,Starknet 價格與以太坊 Gas 價格高度相關。這種對 Gas 價格的密切跟蹤使得 Starknet 交易對於最終用戶來說是可預測和可理解的。Starknet 的路線圖上包含費用市場,這將導致這些圖表出現分歧。雖然費用市場將允許用戶指定其優先費用,但 L2 Gas 價格很可能始終具有由 L1 Gas 價格的函數確定的下限。
在 zkSync Era 上,區塊基本費用保持非常穩定,在 Plonk 證明者生命周期的大部分時間內設定為 0.25gwei,並每隔幾天根據 Boojum 證明者進行調整(目前約為 0.10gwei)。為了抵消 L1 Gas 價格的波動,直接消耗 L1 Gas 的操作碼會被賦予動態 Gas 成本。例如,SSTORE
zkSync Era 上的 Opcode 使用的 Gas 會更改每個區塊,以反映以太坊上的 ETH 費用SSTORE
。
算術和邏輯運算僅影響證明生成,並且不會線性增加驗證成本。由於這種壓縮,這些操作碼消耗固定數量的Gas。
圖 6.2 显示了動態資源定價。它在左軸上显示了 zkSync Era ERC20 交易的每日 Gas 消耗中位數approve()
,並在右軸上繪製了 L1 Gas 價格。在以太坊主網上,approve()
交易消耗固定的約 46,000 Gas,而在 zkSync Era 上,每筆approve()
交易消耗數十萬 Gas。值得注意的是,2023 年 5 月 5 日左右,zkSync Era 上的 ERC20 消耗的 Gas 量approve()
超過 300 萬。
雖然對於熟悉以太坊 Gas 結構的用戶來說,這似乎違反直覺,但這種機制允許 zkSync Era 準確地建模其 L1 驗證成本。鑒於某些操作具有可預測的 L1 Gas 成本,Era 區塊鏈可以根據 L1 價格為每個區塊設置操作碼價格。有關 zkSync 費用機制的更多信息,請閱讀他們的文檔。
用戶支付的費用代表Rollup凈收入。在圖 6.3 中,我們繪製了這些費用支出的百分比明細(不包括中心化的鏈外成本)。Starknet 費用偶爾會超過 100%,這不是錯誤,而是表明 Starknet 有一天無利可圖。
比較 zkSync Era 和 Starknet,很明顯 zkSync 從收取的凈費用中產生的利潤比例更高。然而,他們的費用分配也截然不同。在 Starknet 上,大約 10% 的費用用於證明成本,而 zkSync 大約 25% 的費用用於證明成本。
? 上述數據表明,數據可用性(DA)成本的下降將對 Starknet 和 zkSync Era 產生不成比例的影響。由於 Starknet 上花費在 DA 上的成本百分比遠高於 zkSync Era,因此我們預計 EIP-4844 的費用削減對 Starknet 的影響將比 zkSync Era 的影響更大。
雖然 zkSync Era 目前擁有更好的整體壓縮比,但上述數據和圖 2.4 所示的固定成本讓我們相信,在 EIP-4844 上線后,這種情況可能會發生變化。
現在我們對Rollup費用是如何產生的有了更好的了解,我們計劃回填 Starknet 和 zkSync Era 的費用數據。我們可以通過產生的 L2 費用並減去每批的 L1 驗證成本來估計Rollup利潤(不考慮鏈外成本)。
Rollup的盈利能力仍然是一個懸而未決的問題。在接下來的部分中,我們將假設它們確實有利可圖。此外,我們呼籲Rollup運營商發布有關其運營成本的數據。這些信息對於他們的社區至關重要,因為網絡的壽命、去中心化程度以及設計優先級部分取決於運營盈利能力。請注意,計算證明的成本根據所選的證明系統的不同而有很大差異,並且包含此數據可能會從根本上改變下面的觀察結果。考慮到這一點,我們敦促在其他情況下引用此數據時務必謹慎。
應用於利潤數據的回歸線說明了每日和累積盈利能力的趨勢,這些回歸的係數在圖例中詳細說明。Starknet 的日均盈利能力幾乎保持不變,而 zkSync Era 的日盈利能力呈下降趨勢。我們可以根據累積利潤回歸係數來估計每日收入:對於 Starknet,它為每天 11.94 ETH,對於 zkSync Era,為每天 36.79 ETH。
在右下角的子圖中,我們繪製了每筆交易的利潤。簡單觀察發現,Starknet 的利潤差異明顯較高,而 zkSync Era 則保持穩定的利潤,平均每筆 L2 交易約 50,000 Gwei。我們假設 zkSync Era 的證明時間和 L2 費用結構可以更好地對 L1 成本進行建模,從而為用戶帶來更均勻的成本分配。然而,我們注意到這兩個網絡的費用設計都在不斷髮展,此時批評任何一個網絡可能還為時過早。
ZK-rollups 使用證明系統而不是 M of N 共識來保證完整性,通常需要 N 中的 1 誠實才能從有效性證明中受益。在撰寫本文時,正在討論和開發許多設計,以確保圍繞Rollup的其他屬性(例如活躍性和審查制度阻力)提供可接受的保證。無論使用何種機制,確定Rollup或任何網絡的“足夠”數量的驗證器以確保所有屬性得到保證仍然不清楚。儘管如此,我們可以嘗試估計在現有Rollup盈利能力的情況下可以支持的驗證器數量的上限。
⚠️ 這種分析應該謹慎對待。Rollup 的盈利能力受到質疑,空投狩獵季節(在撰寫本文時)可能會增加交易量。鑒於這些網絡仍處於早期階段並正在經歷顯着增長,目前尚不清楚當前的利潤率未來是否會保持、增長或收縮。
首先我們計算一下Starknet和zkSync的日收益,分別為11.94 ETH和36.79 ETH。然後,假設驗證者按比例獲得獎勵,我們計算每個人的年度獎勵。
做一些粗略的計算,假設 ETH 價格為 2000 美元,有 100 個驗證者,每個 Starknet 驗證者每月的收入約為 7,200 美元,而 zkSync Era 驗證者每月的收入約為 22,000 美元。這足以通過 EC2 租用 2-3TB RAM 和 100 多個 CPU 核心。因此,對於 Starknet 和 zkSync 時代來說,至少 100 個驗證器的網絡規模可能是可持續的。
讓我們從**(誠然是慷慨的)假設開始,即以太坊的每個驗證者收入是驗證者價格的良好指標。以太坊驗證者每年預計獲得約 1.4 ETH 的收入,不包括 MEV 利潤。下錶嘗試量化每個網絡可以擁有的驗證器數量,如果它為每個驗證器分配與以太坊相同的收入。值得注意的是,許多網絡正在考慮運營數百個驗證器,這可以顯着提高每個驗證器的盈利能力。
雖然這些数字並未考慮到 Layer 1 MEV 收入或運營 Rollup 驗證器的較高硬件成本,但它們清楚地表明 Rollup 正在產生(在撰寫本文時)足夠的利潤來吸引大量運營商,與當前的情況保持一致Rollups 的野心。隨着驗證者、用戶和交易數量的變化,這種計算可能會發生變化。然而,可以合理地預期,在當前情況下擁有數百個驗證者是可能且合適的。我們再次強調當前Rollup運營商公布其服務器和證明者成本將帶來的巨大價值。這種透明度將有助於驗證者了解操作要求並加快去中心化的步伐。
在查看了 zkSync Era 和 Starknet 之間的驗證成本細分后,很明顯數據可用性是目前有效性Rollup的主要成本。呼叫數據的每個非零字節花費 16 個 Gas(零字節花費 4 個 Gas),每天的Rollup發布量從幾十到數百兆字節不等。主要Rollup的每日通話數據消耗總量經常超過 600 MB,有時達到超過 1 GB 的峰值。這種廣泛的數據發布會導致 L1 膨脹,並增加 L2 運營的成本。在下一節中,我們將分析 EIP-4844 對Rollup成本的影響。
每個 blob 消耗固定數量的blob_gas,每個塊的目標為 3 個 blob (0.375MB),最多 6 個 blob (0.75MB)。Blob Gas費使用以下公式計算blob_fee_wei = blob_gas * blob_gas_fee。
對於每個區塊,都有以下費用機制。如果連續多個塊消耗的數據超過目標 Blob 數量,則 Blob Gas 價格將呈指數級上漲。該UPDATE_FRACTION參數設置為blob_gas_price兩個塊之間的最大增量為 12.5%。這excess_blob_gas將是一個跟蹤Gas價格的累加器。
目前,每 128KB 的通話數據Rollup會產生約 0.2 至 0.6 ETH 的成本。以每個區塊 3 個 Blob 為目標,以太坊的 DA 容量將約為每天 2.7GB,幾乎是 2024 年 1 月觀察到的峰值 DA 負載的兩倍。由於 Blob 供應是固定的,因此 Blob Gas 的價格由需求決定。在 Dencun 硬分叉后的最初幾周內,blob Gas可以忽略不計,直到 EIP-4844 的使用加速並且 2.7GB 供應得到充分利用。在此期間,rollup DA 的成本將比當前值低 26 個數量級。
下圖显示了每次Rollup的主網調用數據每日平均費用。Calldata 帖子被分成 128Kb 塊(blob 的大小),以近似 blob Gas 價格的上限。鑒於目前每 128kb 的費用約為 0.075ETH,這相當於大約 60 gwei 的 Blob Gas 價格。我們假設,如果 Blob Gas 價格迅速達到這些水平,Rollup可能會決定繼續發布調用數據而不是 Blob,特別是考慮到永久持久性而不是兩周的生命周期。
圖 5.2 中提供的數據中的一個意外觀察結果是每 kB 費用的變化。即使是基於相同技術堆棧的 Base 和 Optimism 也有不同的費用。
有兩個因素可能導致這種差異:0x00
字節數和波動的Gas價格。calldata 的非零字節使用 16 個 Gas,而零字節僅使用 4 個 Gas。由於零字節和非零字節都被考慮在內,如果網絡 A 發送帶有許多零的非常稀疏的 DA 承諾,而網絡 B 發送帶有很少零的非常密集的 DA 承諾,則與網絡 B 相比,網絡 A 的每 kB Gas 消耗量較低。
可能影響這種情況的另一個因素是需求定價。如果網絡 A 制定了僅在前兩個區塊使用的 Gas 量少於目標之後才發送承諾的政策,那麼它最終可能會避免高峰流量時間並平均支付較低的費用。這種策略會降低發展議程承諾的一致性,我們懷疑這是造成這種變化的根本原因。
雖然密集數據集和稀疏數據集之間的 Gas 成本差異可能是變異性背後的主要因素,但深入研究這一分析可能會很有趣。
檢查驗證成本可以為Rollup操作提供有價值的見解。雖然壓縮和擴展是經常討論的話題,但評估已實現的成本和吞吐量可以切實洞察 Starknet 和 zkSync Era 的效率。應對所有Rollup執行此練習。
由於兩個網絡上的用戶操作使用情況相似,我們的分析是有效的。只要這種情況持續存在,每秒 UOPS 就可以作為比較網絡的可靠指標。然而,這引出了一個問題:將來Rollup會執行根本不同類型的計算嗎?如果Rollup開始專業化,UOPS/秒將逐漸失去準確性。比較每秒的執行資源將提供更準確的指標。
此外,我們已經採取了初步步驟,通過創建一個在執行資源之間進行轉換的函數來構建公平比較。我們希望我們的努力能夠鼓勵更多的調查使用類似的技術進行公平比較。我們相信,一旦建立了用於比較跨域執行資源的基線指標,它就可以取代每秒事務數(TPS)作為標準指標。
我們對當前 L1 支出和 L2 收入進行了高級分析,事實證明,這對於識別趨勢和模式來說是一項有價值的練習。但是,它沒有提供有關有效性Rollup的盈利能力的見解。我們再次強調公共數據的價值。如果 Rollups 公開其中心化基礎設施成本和架構概述,將使研究人員、開發人員和運營商能夠更清楚地了解不同 Rollups 的運營需求,從而加快去中心化的步伐。
在目前的狀態下,EIP-4844 blob 將在信標鏈上僅保留兩周。儘管這對於大多數情況來說可能已經足夠,但我們懷疑某些Rollup可能旨在延長其數據可用性 (DA) 承諾的生命周期,從而切換到替代解決方案。而且,EIP-4844的供應量是固定的,隨着blob需求的增加,其價格將持續上漲。相比之下,在專用 DA 網絡上,供應可以根據不斷增長的需求而擴大,從而提供具有長期價格優勢的專用 DA 解決方案。EIP-4844 是否會成為Rollup DA 的標準,或者專用網絡是否會隨着時間的推移而盛行,還有待觀察。