以太坊最新研究: 區塊大小、Gas上限與可擴展性的研究


以太坊社群研究員最近在關於Gas上限和區塊大小的討論中提到了增加Gas上限至4000萬的想法,引發了許多爭議。本文從經濟學的角度分析了以太坊區塊大小受到多種要素影響的情況,包括Gas上限、calldata定價、新增blob交易等因素。同時,對於Gas上限增加的影響也進行了多方面的分析與權衡。整體來說,提高Gas上限需要深思熟慮,以確保不會犧牲去中心化。文章提供了大量的數據分析和K線走勢圖,並指出在EIP-4844(Proto-Danksharding)上線後,區塊大小可能會呈現出更大的變動。

譯者導讀

最近以太坊社群研究員針對區塊大小和Gas 上限的討論和分析多有爭議,原因大致是在最近一次EF reddit AMA 中,Vitalik Buterin 提及將Gas 上限增加33% 至4000 萬的想法。

那我們準備好增加區塊大小了嗎?從經濟學的角度分析,實際上以太坊區塊大小受到多種要素影響,而每一次增加的波動都會導致區塊大小多少?

這裡首先解釋了區塊大小的定義(我們通常所說的gas limit和基於字節去衡量的區塊大小是差異卻緊密相關的);然後在一定的假設下,給出了最壞的情況下區區塊大小的計算方式(指的是一個區塊能達到什麼程度);並基於此計算方式,給出了不同的變數對區塊大小影響的資料分析:gas上限、calldata定價、新增blob交易對區塊大小的影響。

區塊大小和網路安全以及中心化​​程度相關,增加區塊大小的影響不是單一的,在對變數和權衡的多方面去分析下,才能做出更好的決策。

文章|托尼·瓦爾斯塔特

翻譯| 法蘭西

最近關於提高以太坊區塊Gas上限的討論非常多。有些人基於摩爾調整增加區塊大小,有些人基於個人直覺,有些人則只是在隨意散佈消息,還有些人擔心其他鏈如Solana會在用戶廣泛採用方面超越以太坊。

接下來,我想展示一些K線走勢圖和數據,這可能有助於我們做出一個在不影響以太坊去中心化的前提下最大化Gas最大化的決策。

從最初講起

與比特幣不同,以太坊限制沒有固定的區塊大小,而是依賴一種靈活的區塊大小,這種機制由某種單位機制「gas」來緩慢。在以太坊中,Gas是一個緩慢的執行操作(如交易或智能合約)需要計算量的單位。以太坊中的每項操作都需要一定數量的Gas 來完成,每個區塊都有一個Gas 上限,這決定了一個區塊可以包含多少操作。

最開始,2015年時以太坊每個區塊有5000 Gas 的上限。這個上限很快就提高到約300 萬,然後在2016 年後期提高到約470 萬。隨著Tangerine Whistle 硬分叉( EIP-150) 在2016 年的實施,作為對DoS 攻擊的回應,透過重新定價提高各種IO 密集型操作碼,Gas 上限被到550 萬。在這些攻擊之後,礦工持續提高Gas 上限,在2017 年7月到約670萬,2017年12月到約800萬,2019年9月到約1000萬,2020年8月到約1250萬,最終在2021年4月3日到約1500萬。

隨時間變化的瓦斯使用情況

此後,隨著偽龍、拜占庭、君士坦丁堡、伊斯坦堡和柏林硬分叉的激活,某些操作碼的定價進一步得到了細化。這些細化的例子包括EIP-145、EIP-160、EIP-1052、 EIP-1108、EIP-1884、EIP-2028、EIP-2200、EIP-2565 和EIP-2929。

以太坊費用市場最大幅度的變化發生在2021年8月的倫敦硬分叉(EIP-1559)的引入。 EIP-1559引入了基本費用,該費用會根據對區塊空間的需求隨時間/區塊而變化高度動態調整。同時引入了“目標大小”,將其設定為每個區塊1500 萬Gas。這個目標用於指導基本費用的動態調整。如果一個區塊中使用的總Gas 數量超過這個目標,下一個區塊的基本費用就會增加。相反,如果使用的總Gas 數量低於目標,則基本費用減少。該機制旨在創建一個更可預測的當前費用市場,並透過穩定交易增加用戶體驗此外,EIP-1559還引入了基本費用的理論機制,永久地從流通量中移除了那部分以太。這增強了協議的可持續性,同時創造了所謂的超合理貨幣迷因(超聲音)錢模因)。

在EIP-1559下,也設定了一個最大(或「上限」)的Gas上限,設定目標的兩倍,即3000萬Gas。這意味著一個硬區塊預算總是可以使用量高達3000萬Gas的交易。

以太坊最新研究:關於區塊大小、Gas上限與可擴展性倫敦分叉後的燃氣使用情況

從那時起,以太坊的區塊Gas上限保持不變,截至2024年,仍然是每個區塊3000萬Gas。

我們準備好增加區塊大小了嗎?

最近,有些人對以太坊的Gas 上限表示擔憂,並要求增加。在Reddit 上的最新以太坊基金會AMA 中,Vitalik 表示考慮了將Gas 上限增加33% 至4,000 萬的想法。他的推理基於摩爾定律,該演算法指出微晶片上的電晶體數量大約每兩年一翻,從而使得計算能力相應增加。這項原則表明,網路效能,包括處理和執行交易的能力,也可以隨時間增加。

來自以太坊基金會的研究人員Dankrad 和Ansgar 也支持在評估Dencun 升級後的情況後增加Gas 上限的想法。另外,坊以太坊基金會的Pari 發表了一篇帖子,探索潛在的Gas 上限增加途徑。 Geth的Peter和Marius這樣的其他人則對增加Gas上限表示擔憂,特別是在沒有適當的工具/監控的情況下。這些擔憂主要與這些問題相關:加速狀態成長、同步時間和重組區塊率。

塊大小是什麼?

區塊的大小可以透過兩種方式簡化:

瓦斯使用量塊大小(以位元組為單位)

雖然這種簡化方式相關聯,但必須獨立考慮。

例如,一個包含非零呼叫資料位元組的區塊在位元組大小上可能很大,而實際的Gas 使用量(每個非零位元組需要16 Gas)可能仍然相對較小。

先不考慮壓縮後的情況,在忽略Geth每筆交易128 KB限制的前提下,目前可以達到的最大區塊大小約為6.88 MB。這樣一個區塊裡將最大化分配128 KB交易的數量。實際計算出來的結果是,包含約130,900 位元組的零位元組calldata(每位元組4 Gas)的55 筆交易,以及一個填滿剩餘空間的交易。然而,經過snappy 壓縮後,這樣的區塊最終大小約為0.32 MB,這個可以忽略不計。

而另一種情況,考慮最大可能性的區塊大小,包含15 筆進行非零位元組calldata 的交易,壓縮後大小約為1.77 MB。

因此,截至今日,1.77 MB 代表執行層區塊的真實區塊大小上限。

譯者註:

在上面的幾個段落中,作者在固定gas上限30M的情況下,想要讓區塊大小最大,嘗試計算最多可以把區塊塞到多大。

如果固定gas上限,要讓區塊大小變大,那麼只能塞calldata(因為計算/STORE之類的字節碼其實是不會佔用區塊儲存空間的)。

所以,要讓區塊變大,無非就是往交易塞calldata。然後,有「塞0 calldata」和「塞非0 calldata」兩種方法,需要計算才能知道哪種能讓區塊大小更大。結果是“塞非0 calldata”的區塊大小較大。

基於Geth 客戶端限制每筆交易最多128 KB 這個前提,以下開始計算兩個例子。

case 1:56個大小為130,900 B ( (30 M),所以最多只能塞55 個上述交易+ 1 個小於上述交易的交易。對應的區塊大小約為55*128 = 7040 kB = 6.875 MB。但是,由於calldata 全為0,所以壓縮後的區塊大小約為0.32MB。

case 2:15個大小為130,900 B ( 30 M。區塊大小約為14 *128 = 1792 kB = 1.75 MB ~ 15 * 128 = 1.875 M。然而,由於calldata 是非零,不好壓縮,所以壓縮後區塊大小約為1.77 MB。)

就這個最大的區塊大小而言,我們可以辨識出幾個影響它的因素:

Gas上限:Gas上限會影響最大區塊大小,這無需庸置疑的。上限上限,區塊中可以塞進的數據上限。操作和數據的定價:操作的gas越便宜,區塊內就能執行越多次操作。雖然像CALLDATALOAD或CALLDATACOPY這樣的操作,它們的開銷都是3 Gas,相對便宜;但其他操作碼如CREATE則更加昂貴。區塊中使用的操作碼非常昂貴,該區塊中用於調用資料(或其他操作)的空間開銷少。客戶端限制:雖然客戶端限制的影響不那麼明顯,但就像像Geth 客戶端這樣對每筆交易的128 kb 限制也可以影響最終區塊大小。由於每筆交易的固定費用是21k Gas,客戶端每筆交易的大小限制越低,就需要更頻繁地支付固定費用,從而「浪費」本來可以用於調用資料的gas。所以最終,這個限制可能導致最大區塊大小減少約0.07 MB。需要注意的是,客戶端限制只影響交易的廣播,並不影響已經被確認的區塊。

首先,讓我們來看看每個區塊的Gas上限:

以太坊最新研究:關於區塊大小、Gas上限與可擴展性區塊Gas 上限對區塊大小的最大影響

像以太坊這樣的區塊鏈,提高區塊Gas上限是最直接且明顯的擴容方式。更高的上限意味著更多的資料空間。然而,這也意味著需要每個運行全節點的人來傳播和下載更大的區塊。如上圖所示,「最壞的情況(即前面透過計算下面的最大區塊大小)」下面的區塊大小與區塊Gas 上限的增加大致呈線性關係。透過創造塞滿需要多非零位元組呼叫資料交易的區塊,就可以達到這樣的最大區塊大小。

接下來,讓我們來看看另一個影響因素——以太坊的定價機制。在目前的例子中,具體就是目前被設定為16 Gas 的非零位元組calldata的開銷:

以太坊最新研究:關於區塊大小、Gas上限與可擴展性每非零位元組Calldata 起始對最大區塊大小的影響

如上圖所示,增加非零呼叫資料的開銷會讓區塊大小減少。話說,將開銷降低到相當於每位元組8 Gas,使最壞情況下的區塊大小翻倍。這很分析,因為降低價格允許將雙倍數量的數據放入區塊中。

那麼EIP-4844 (Proto-Danksharding)上線後呢?

我不會在這裡詳細介紹4844,因為eip4844.com 上有很好的文檔,但簡單來說,EIP-4844 引入了類似“sidecar (挎鬥)”結構的數據類型,稱為blob,每個blob可塞進約125 kb 的資料。 Blob 資料費用機制與EIP-1559 類似,也存在一個“target”,用於指定blob 數量。在Dencun 硬分叉中,target 設定每個block 3 個blob,最大限制設定每個區塊有6 個blob。意思是,blob 擁有自己的費用市場,創造了所謂的多維費用市場。這意味著blob 不一定與標準交易競爭,而是與EIP-1559 機制下的費用解耦。

看看,一切都很順利。讓我們這次升級如何影響以太坊的平均區塊大小。

以太坊最新研究:關於區塊大小、Gas上限與可擴展性加入blob 對壓縮後的信標鏈平均區塊大小的影響

今天,採用snappy 壓縮後的信標鏈區塊的平均區塊大小約為125 KB。有了4844,我們每個區塊再增加375 KB,從而使當前平均區塊大小增加4 倍。如果達到最大數量的blob,我們實際上將當前區塊大小增加了七倍。

最壞情況下的區塊大小從約1.77 MB 增加到約2.5 MB。這個提示沒有將區塊的CL(論證層)部分考慮在內。但無論如何,在受到DoS 攻擊的情況下,我們必須做做好應對這種最大區塊大小的準備。

總結

最終,如果要提高目前的區塊Gas 上限,我們需要在實施前進行徹底的研究和分析。雖然像Coinbase、Binance、Kraken 或Lido 節點營運商這樣成熟的實體能夠應付超過4,000 萬的區塊Gas情況有限,但獨立質押者可能會比較困難。

因此,這樣的決策必須經過深思熟慮,才能確保我們不會犧牲去中心化。

最後,建立像Facebook 這樣容量大、效能強的東西相對容易,但重要的是不能失去我們大多數人所追求的東西:去中心化。

可以在這裡找到上述所做的說明和K線走勢圖的程式碼。

相關連結

優先結構下EIP-4844的設計邏輯

https://www.ethereum.cn/Eth2/4844-design

EIP-4488:透過總呼叫資料限制降低交易調用資料Gas 成本

https://eips.ethereum.org/EIPS/eip-4488

維塔利克對論文的評測

I would favor an EIP to increase calldata cost, perhaps back to the original 68 per nonzero byte, now that we have EIP-4844 blobs for data-heavy use cases.

It would address the worst-case data issues and add breathing room to raise not just gas limit but also blob count target.

— vitalik.eth (@VitalikButerin) January 24, 2024

2016年EIP-150,IO密集型操作的Gas成本變化

https://github.com/ethereum/EIPs/blob/6572e92dccb2a581c0082befb953050f75d0ece5/EIPS/eip-150.md

EIP-1559:ETH 1.0 鏈的費用市場變化

https://eips.ethereum.org/EIPS/eip-1559

超聲音錢模因

https://ultrasound.money/

以太坊基金會第十一屆AMA

[AMA] We are EF Research (Pt. 11: 10 January, 2024)
byu/JBSchweitzer inethereum

Gas 限制增加的測試路徑

https://ethresear.ch/t/testing-path-for-a-gas-limit-increase/18399/1

EIP-4844:分片Blob 交易,原始Danks 分片

https://www.eip4844.com/

多維度EIP-1559

https://www.ethereum.cn/Eth1.x/multiDimension-eip-1559

這裡K線走勢圖分析的程式碼,eth-gas-limit-analysis

https://github.com/nerolation/eth-gas-limit-analysis

資訊來源:0x資訊編譯自網際網路。版權歸作者ETHconomics Research Space所有,未經許可,不得轉載

Total
0
Shares
Related Posts