Vitalik Buterin 認爲, EIP-1559 對客戶端產生的風險並不會比固定 gas limit 的機制更高。

延伸閱讀:《觀點:以太坊礦工會接受 EIP-1559 提案,爲什麼?

原文標題:《Vitalik:爲什麼我不擔心 EIP-1559 中的鬆弛區塊容量》
撰文:Vitalik Buterin
翻譯:ETH 中文站

對 EIP-1559 的一種批評是:區塊大小是可變的,在 [0,25M] 的範圍內浮動而不再是固定的 12.5M gas limit,這使得客戶端需要處理加倍的負載。這個論點進一步演繹爲,如果我們認爲客戶端是可以處理這麼高的負載,那麼他們應該可以任何時候都處理這麼高的負荷,這樣我們倒不如放棄 EIP-1559 而直接做更有用的事——把區塊大小限制提升一倍。

這個想法背後的核心觀點是,大區塊的首要危害來自經由客戶端的那些最大區塊,而不是平均區塊大小。我認爲這個想法是錯的 (因此 EIP-1559 對客戶端產生的風險並不會比固定 gas limit 的機制更高),以下是我的理由。

重溫:不馬上把 gas limit 提高到 100M 的理由有哪些?

三個理由:

1. 正常情況下的區塊處理時間會增加

從當前大約 400 ms 增加到約 3.2s,這會帶來很多負面後果:

  • 非常高的叔塊率,導致中心化

  • 除了電力最強的節點外,其他所有節點都難以保持同步

  • 即使是電力最強的節點也需要更大量的資源消耗

  • 短暫斷電 (比如你在手提電腦上運行一個節點,你需要把電腦從家裏移動到咖啡廳)後的重新同步前會有更長時間的延遲

2. 由於 DoS 攻擊,最壞情況下區塊處理時間會延長,從現在的 20~80 秒延長到可能 160~640 秒。

3. 存儲增長率會升高

從現在大約 50 GB/ 月上升到大約 400 GB/ 月,這會導致

  • 同步速度慢很多

  • 存儲要求高很多

  • 更慢的磁盤處理速度,因爲大型數據庫的訪問速度會慢於小型數據庫

請注意:理由 1 和理由 3 下的所有內容都只適用於長期正常使用情況,而不是受高峯影響。因此,如果要考慮高峯期的影響,關注理由 2 就夠了。

論據 1:EIP-2929 已經彌補了 EIP-1559 的不足

EIP-2929 對存儲訪問操作的 gas 成本進行了提升,已經把最壞情況 DoS 攻擊所需的 gas 消耗增加了 3 倍。這意味着 EIP-2929 與 EIP-1559 配合起來實際上是比現在在最壞情況下處理區塊所需消耗淨減少了 1.5 倍。

這裏很自然會問一個問題:“如果 EIP-2929 那麼好,爲什麼不直接把 gas limit 調高到 25M 或 37.5M”?這個回答很簡單:理由 2 不是避免 gas 消耗提高的唯一原因。即使 DoS 問題可以被完全解決,理由 1 和理由 3 下的問題在可見的未來還會存在。因此,EIP-2929 給的額外鬆弛部分是不可以用以對區塊容量進行大幅提升。

論據 2:對於相同程度的 DoS 攻擊,短時間攻擊引起的峯值帶來的弊端遠比長時間攻擊帶來的要少

如果攻擊者對鏈發起攻擊,用區塊容量最大值(目標容量的 2 倍)的垃圾數據填充區塊,每個區塊的 gas 價格上漲 1.125 倍。這個漲幅是呈指數上升的:持續生成 5 個滿區塊(大約 65 秒)會使得 gas 價格上升 1.8 倍,而在 5 分鐘之後,gas 價格會上升 15 倍 (10 分鐘後是 225 倍)。爲了維持攻擊,攻擊者必須按照這些瘋狂上漲的價格支付所有的交易費。因此,一次現實的攻擊可持續的時間大概是 5 分鐘。

如果客戶端收到這 5 分鐘內生成的區塊(每個需要 20~60 秒的處理時間)會發生什麼呢?很明顯,在這段時間鏈的處理速度會變得非常慢。會出現非常多短程分叉。事實上,分叉意味着攻擊者在攻擊後仍然可以以少量哈希算力(例如大約 20%)回滾鏈上交易。這是非常糟糕的情況。

但是,這比攻擊者可以維持一個小時甚至一天的攻擊要好得多。大多數的交易和其他服務現在等待確認的時間已經超過 5 分鐘,只有極其脆弱的服務纔會被破壞,因爲對它們來說需要 5 分鐘發送一筆交易太難了,而回滾或拒絕服務需要持續數小時甚至數天,就像 2016 年的上海攻擊事件一樣,會造成非常嚴重的後果。

因此,持續 5 分鐘達到 2500 萬 gas 的峯值比 2500 萬的 gas limit 風險低得多。

論據 3:短期峯值已經出現

工作量證明挖礦固有的泊松過程 (Poisson process) 就意味着區塊在發佈時會存在隨機性。事實上,光是隨機性每週就會導致一次兩倍鏈容量的峯值,峯值持續五分鐘。

注意:這是由大量相同容量的區塊而不是相同數量的大容量區塊導致的,但據我所知,沒有證據或理由相信單個區塊的處理所消耗的 gas 是超線性增長的

因此,某種程度上使用峯值是一個已知數量,生態到目前爲止還能忽略其影響。

來源鏈接:notes.ethereum.org