newsence
為何可變有效載荷截止時間僅能帶來約 6% 的提升

為何可變有效載荷截止時間僅能帶來約 6% 的提升

ethresear.ch·13 天前

可變有效載荷截止時間在理論上僅能提供約 6% 的 Gas 上限空間增益,這是因為目前的 EIP 提案已為大數據區塊預留了大量執行時間,且實務上掛鉤非壓縮大小的作法會進一步削弱其成效。

重點提煉(TL;DR): 可變負載截止時間在理論上僅能增加約 6% 的 Gas 上限空間,且這還是建立在以「壓縮後」區塊大小為基準的假設上。實際上,該提案是以「未壓縮」大小為基準,再加上區塊大小分布呈現嚴重的右偏態(right-skewed),線性插值法實際上無法有效擴展傳播時間。我們最終獲得的傳播時間甚至可能比現在還少。
EIP-7732 下,建構者(builder)提交負載,負載在網路中傳播,支付委員會(PTC)對可用性進行投票,驗證者在下一個時隙(slot)之前執行它。

可變負載截止時間提案建議給予較大的區塊更多的傳播時間,而較小的區塊則較早到達,並從更多的執行時間中受益。理論上這聽起來很合理,但實際上收益微乎其微,且該方法存在根本性問題。

背景:EIP-7976 與 Calldata 定價

EIP-7976 下,Calldata 的最低收費標準(floor)為每位元組 64 gas。標準定價則僅對零位元組收取 4 gas,對非零位元組收取 16 gas。其間的差額(最高達每位元組 60 gas)是交易「免費」獲得的執行 gas。

EIP-7976 是對 EIP-7623 的迭代,後者已在 Pectra 升級中發布,並將零位元組和非零位元組的 Calldata 成本設定為 10/40。EIP-7976 進一步統一了零位元組和非零位元組的成本,因為在處理最壞情況的區塊大小時,這種區別並不重要。

兩種最壞情況區塊

在討論數據大小時,我們通常關注 Snappy 壓縮後的大小。由於協議本身並未規定特定的壓縮演算法,因此必須處理未壓縮的大小。這一點很重要,因為它使問題變得複雜得多。

在設定 Gas 上限時,每個可能的區塊都必須能容納在一個時隙內。存在兩種極端情況:

  • 純計算區塊:沒有 Calldata,所有 Gas 都花在執行上。需要零傳播時間,但需要最大的執行時間。

  • 最大 Calldata 區塊:填滿了 Calldata,觸發了最低收費標準。需要最大的傳播時間,但同時也有 93.75% 的 Gas 被「預留」用於執行。

關鍵觀察:最大 Calldata 區塊的「執行負擔」幾乎與純計算區塊一樣重。 在最低收費標準收取的每 64 gas 中,只有 4 gas 用於支付實際的 Calldata 成本,剩餘的 60 gas 是「預留」的執行資源。因此,數據區塊使用的執行資源是計算區塊的 93.75%。有關原因詳情,請參閱這篇對 EIP-7623 的分析

EIP-7623 的方法在限制最壞情況區塊大小的同時,有效地為大多數交易保持了向後兼容性。它與 ePBS 配合良好,因為即使對於最壞情況的區塊,它也在負載觀察截止時間(PTC)之後「預留」了執行時間。但這種「預留執行」恰恰限制了可變截止時間的實用性。

請參閱此頁面了解目前與 EIP-7976 實施後最壞情況下的壓縮區塊大小:在 60M gas 下,目前為 2.24 MB,EIP-7976 後為 938 KB。最壞情況的區塊大小隨 Gas 上限線性縮放。

固定 vs 可變截止時間

使用固定截止時間,單一截止時間必須處理所有區塊。它為最大的區塊預留了足夠的傳播時間,同時為計算量最大的區塊預留了足夠的執行時間。雖然這是兩種不同的區塊,但固定截止時間無法區分它們。它將兩種最壞情況相加,即使沒有任何單一區塊在兩個維度上同時達到最壞情況。

使用可變截止時間,每個區塊都會被單獨判斷。最大的區塊獲得更多的傳播時間,計算量最大的區塊獲得更多的執行時間。這是理論上的設想。

那麼收益是什麼?

收益取決於兩種最壞情況區塊的差異程度。如果它們差異很大,固定截止時間會因為加總了不相關的最壞情況而浪費很多空間。如果它們幾乎相同,則幾乎沒有什麼可以節省的。

在 EIP-7976 下:

傳播執行
純計算區塊無(簡化模型)100% Gas
最大 Calldata 區塊某些93.75% Gas

這兩種區塊在執行需求上僅相差 6.25%。這就是固定截止時間過度預留的部分,而可變截止時間回收的也正是這部分。

6.25% 是從哪裡來的?它是 $\frac{C}{4F} = \frac{4}{64}$:即最低收費成本中,代表實際 Calldata 成本而非「預留」執行資源的比例。這就是最大 Calldata 區塊中實際支付 Calldata 費用的 Gas 比例

為了約 6% 的額外 Gas 上限空間,可變截止時間仍值得考慮。但這是假設我們以壓縮後的區塊大小為基準。然而我們並非如此。

為什麼實際收益甚至更少

6% 這個數字是理論最大值。在實踐中,該提案是以未壓縮的區塊大小為基準,而非壓縮後的。這動搖了整個方法的根基。

對傳播而言,重要的是線路上的傳輸大小,即區塊被壓縮後的大小。兩個區塊的未壓縮大小可能都是 1 MB,但其中一個可能壓縮到 100 KB,而另一個則完全無法壓縮。儘管它們在傳播表現上截然不同,卻會獲得相同的截止時間:

更糟的是,區塊大小的分布呈現嚴重的右偏態:

透過在 3.6 秒到 9 秒之間對此分布進行線性插值,大多數區塊獲得的截止時間僅略高於最小值。我們實際上根本無法擴展傳播時間,甚至最終獲得的傳播時間可能比現在還少。

若直接採用該 PR,負載觀察截止時間將聚集在證明截止時間(attestation deadline)附近,失去了 ePBS 最初提供的大部分傳播時間:

即使假設 PR 更新為根據 Gas 上限和 EIP-7976 定價使用動態最大區塊大小,情況也不會有太大改善:

需明確的是,這並不意味著 Blob 截止時間必須等於負載截止時間。它們可以保持獨立,但可變負載截止時間需要以壓縮大小為基準才有意義。

我們能提高理論收益嗎?

要獲得更大的理論收益,兩種最壞情況區塊需要有更大的差異。這意味著要降低「預留」執行比例 $a = 1 - \frac{C}{4F}$,其中 $C$ 是標準代幣成本,$4F$ 是每位元組的最低收費成本。

兩個明顯的槓桿,但兩者都有嚴重的權衡。

降低最低收費成本(例如 64/64 → 32/32)。 這會將比例縮小到 87.5%,使可變截止時間的收益翻倍至 12.5%。標準定價維持在 4/16,保留了向後兼容性。但較低的最低收費意味著更大的最壞情況區塊:在 150M gas 下,最大區塊大小將從約 2.25 MiB 翻倍至約 4.5 MiB。如果我們想增加 Gas 上限,這會適得其反。

提高標準成本(例如 4/16 → 8/32)。 這會直接將比例縮小到 87.5%,並使收益翻倍至 12.5%。但這破壞了向後兼容性:每筆交易都要為 Calldata 支付更多費用,而不僅僅是數據密集型交易。EIP-7976 的設計目標是讓約 98% 的交易維持在今天的 4/16 定價。提高標準成本會破壞這一點。

矛盾點在於: 高最低收費限制了區塊大小(EIP-7623 的主要目標),但最大化了「免費」執行。低標準成本保留了向後兼容性,但也最大化了「免費」執行。這兩個目標都將預留執行比例推向 100%,導致可變截止時間幾乎沒有回收空間。

仍值得考慮嗎?

儘管如此,可變負載截止時間仍有一些優點:

  • 實作複雜度低。 這是對誠實驗證者規範(honest validator specs)相對簡單的修改,僅影響 PTC。理論上,這不需要硬分叉。

  • 平均情況下的邊際收益。 平均區塊遠未達到最壞情況,因此動態截止時間在典型條件下可以產生微小的效率提升,儘管考慮到以未壓縮大小為基準,協議是否能真正利用這些提升仍存疑。

  • 減少建構者的資訊優勢。 目前,出價被選中的建構者是唯一能提早完全知曉後驗狀態(post-state)的一方。可變截止時間略微減少了這種不對稱性。

這些是真實但微小的益處。考慮到該方法是以錯誤的指標(未壓縮大小)為基準,實際收益僅是原本就很小的 6% 中的一小部分,且我們面臨傳播時間相對於現在退化的風險,因此很難為其辯護。

真正的解決方案

最好的前進道路(儘管涉及面更廣)是將數據放在其自身的成本維度上。 EIP-7999 提議了多維費用市場。這雖然會破壞向後兼容性,但能讓我們精確定義願意接受的最壞情況區塊,將數據和計算完全解耦,而不是試圖用動態截止時間來掩蓋它們的糾纏。

        1 則貼文 - 1 位參與者

        [閱讀完整主題](https://ethresear.ch/t/why-a-variable-payload-deadline-only-helps-by-6/24488)
https://ethresear.ch/t/why-a-variable-payload-deadline-only-helps-by-6/24488