為什麼可變有效載荷截止時間只能帶來約 6% 的幫助?
簡而言之:可變有效載荷截止時間理論上可以提高約 6% 的 gas 限制餘裕,而且這還是假設我們以壓縮後的區塊大小為基準。實際上,此方案以未壓縮的區塊大小為基準,再加上區塊大小分佈嚴重右偏,線性內插實際上無法有效縮短傳播時間。我們最終的傳播時間甚至可能比現在更短。
根據EIP-7732 ,建構者提交有效載荷,該有效載荷在網路中傳播,PTC 對可用性進行投票,驗證者在下一個時隙之前執行該有效載荷。
可變有效載荷截止時間方案旨在給予較大的資料區塊更長的傳播時間,而較小的資料區塊則更早到達並獲得更多的執行時間。理論上,這聽起來合情合理。但實際上,收益微乎其微,而且該方法存在根本性問題。
背景:EIP-7976 和通話資料定價
根據EIP-7976 ,呼叫資料以位元組收費,每位元組 64 gas。標準定價對零位元組收取 4 gas,對非零位元組收取 16 gas。差額(最高 60 gas/位元組)是交易「免費」獲得的執行 gas。
EIP-7976 是對EIP-7623 的迭代,後者已在 Pectra 中發布,並將零位元組和非零位元組的呼叫資料成本分別設為 10/40。 EIP-7976 更進一步,統一了零位元組和非零位元組的成本,因為在處理最壞情況下的資料塊大小時,這種區別無關緊要。
兩個最壞情況模組
在討論資料大小時,我們通常關注的是 Snappy 壓縮後的資料大小。由於該協定沒有指定特定的壓縮演算法,因此必須處理未壓縮的資料大小。這一點很重要,因為這會大大增加問題的複雜性。
設定氣體限制時,所有可能的方塊都必須容納在一個插槽內。有兩種極端情況:
- 純計算塊:無調用數據,所有 gas 都用於執行。無需傳播時間,但執行時間最長。
- 最大調用數據塊:填充調用數據,觸發底部限制。需要最大傳播時間,但也會獲得 93.75% 的 gas 作為「預留」執行。
關鍵觀察結果:最大呼叫資料區塊的執行開銷幾乎與純計算區塊一樣大。每收取 64 點 gas,只有 4 點用於實際的呼叫資料開銷,剩餘的 60 點被「預留」用於執行。因此,該資料區塊的執行開銷是計算區塊的 93.75%。有關原因的詳細信息,請參閱EIP-7623 的分析。
EIP-7623 方法有效地保持了大多數交易的向後相容性,同時限制了最壞情況下的區塊大小。它與 ePBS 也配合良好,因為它即使在最壞情況下的區塊中,也會在有效載荷觀察截止時間 (PTC) 之後「預留」執行時間。但正是這種「預留執行時間」限制了可變截止時間的有效性。
請參閱此頁面,以了解目前與 EIP-7976 之後最壞情況下的壓縮區塊大小:在 60M gas 的情況下,目前為 2.24 MB,而 7976 之後為 938 KB。最壞情況下的區塊大小與 gas 限制呈線性關係。
固定期限與可變期限
在固定截止時間下,所有資料區塊都必須由同一個截止時間處理。它既要為最大的資料塊預留足夠的傳播時間,又要為計算量最大的資料塊預留足夠的執行時間。這些是不同的資料區塊,但固定截止時間無法區分它們。它將兩種最壞情況都考慮在內,即使沒有一個資料塊在兩個維度上都是最糟糕的。
在可變截止時間下,每個資料區塊都會被單獨判斷。資料量最大的資料區塊會獲得更多的傳播時間。計算量最大的資料塊會獲得更多的執行時間。理論上是這樣。
那麼這樣做有什麼好處呢?
收益等於兩個最壞情況模組之間的差異程度。如果它們差異很大,固定截止時間會因為將不相關的最壞情況相加而造成大量浪費。如果它們幾乎相同,則幾乎沒有節省的空間。
使用 EIP-7976:
| 傳播 | 執行 | |
|---|---|---|
| 純計算區塊 | 無(簡化版) | 100% 氣體 |
| 最大調用資料塊 | 一些 | 93.75%的氣體 |
這兩個程式碼區塊的執行需求僅相差6.25% 。這 6.25% 就是固定截止時間預留的全部空間,而可變截止時間則剛好回收了這部分空間。
6.25% 是怎麼來的?它是\frac{C}{4F} = \frac{4}{64} C 4 F = 4 64 :代表實際呼叫資料成本而非「預留」執行成本的最低費用比例。它是最大調用資料區塊中實際用於支付調用資料的 gas 比例。
為了獲得約 6% 的額外 gas 限制空間,可變截止時間或許仍然值得考慮。但這假設我們以壓縮後的區塊大小為基準。而我們並非如此。
為什麼實際收益甚至更少
約 6% 的數字只是理論上的最大值。實際上,該方案是基於未壓縮的資料塊大小而非壓縮後的資料塊大小來制定的。這從根本上破壞了整個方案。
傳播過程中真正重要的是資料塊在網路上的傳輸大小,也就是資料塊被壓縮後的大小。兩個資料塊未壓縮時可能都是 1 MB,但一個壓縮後只有 100 KB,而另一個則完全不壓縮。儘管傳播方式截然不同,但它們的截止時間卻相同:
更糟的是,塊大小的分佈嚴重右偏:
透過在該分佈範圍內對 3.6 秒到 9 秒之間進行線性內插,大多數資料區塊的截止時間僅略高於最小值。這樣一來,我們實際上無需調整傳播時間,甚至最終的傳播時間可能比現在還要短。
如果以目前的 PR 來看,有效載荷觀測截止時間會集中在認證截止時間附近,從而損失了 ePBS 最初提供的大部分傳播時間:
即使假設 PR 已更新為使用基於 gas 限制和 EIP-7976 定價的動態最大區塊大小,情況也不會有太大改善:
需要明確的是,這並不意味著資料區塊的截止時間必須與有效載荷的截止時間相同。它們可以保持分離,但可變的有效載荷截止時間需要與壓縮後的大小掛鉤才有意義。
我們能否提高理論增益?
為了獲得更大的理論增益,兩個最壞情況區塊之間的差異需要更大。這意味著要降低「保留」執行比例a = 1 - \frac{C}{4F} a = 1 − C 4 F其中C C是標準代幣成本, 4F 4 F是每位元組的最低成本。
有兩個顯而易見的槓桿,但兩者都存在嚴重的利弊權衡。
降低最低成本(例如 64/64 → 32/32)。這將比例縮小至 87.5%,使可變截止時間收益翻倍至 12.5%。標準定價保持在 4/16,以保持向後相容性。但降低最低成本意味著最大區塊大小更大:在 1.5 億 gas 的情況下,最大區塊大小從約 2.25 MiB 翻倍至約 4.5 MiB。如果我們想要提高 gas 上限,這將適得其反。
提高標準費用(例如,從 4/16 提高到 8/32)。這將直接降低比例至 87.5%,並將收益翻倍至 12.5%。但這會破壞向後相容性:所有交易(而不僅僅是資料密集型交易)都需要支付更高的通話資料費用。 EIP-7976 的設計目標是使約 98% 的交易保持當前的 4/16 定價。提高標準費用會破壞這個目標。
矛盾之處在於:較高的下限限制了區塊大小(EIP-7623 的主要目標),但最大程度地提高了「自由」執行時間。較低的標準成本既能保持向後相容性,也能最大程度地提高「自由」執行時間。這兩個目標都使得預留執行比例接近 100%,幾乎沒有剩餘時間可供可變截止時間回收。
現在還值得考慮嗎?
儘管如此,可變有效載荷截止時間也有一些優點:
- 實現複雜度低。這只是對誠實驗證器規範的一個相對簡單的改動,只會影響 PTC。至少理論上來說,這不需要硬分叉。
- 平均情況下的邊際收益。平均區塊大小遠小於最壞情況,因此動態截止時間在典型條件下可以帶來微小的效率提升,但考慮到未壓縮大小的錨定機制,該協議是否真的能夠利用這些提升還值得懷疑。
- 降低建商的資訊優勢。如今,中標的建築商是唯一能夠及早完全了解專案最終成果的一方。可變工期可以略微降低這種資訊不對稱性。
這些好處確實存在,但幅度不大。鑑於該方法是基於錯誤的指標(未壓縮檔案大小),實際收益僅為原本就很小的 6% 的一小部分,而且我們還可能面臨傳播速度比現在更慢的風險,因此很難令人信服。
真正的解決方案
儘管難度較大,但最佳方案是將資料單獨作為一個成本維度來考慮。 EIP -7999提出了多維費用市場。這會破壞向後相容性,但可以讓我們精確定義願意接受的最壞情況成本,從而徹底解耦資料和計算,而不是試圖用動態截止時間來掩蓋它們之間的糾纏。









