Vitalik:為什么我不擔心EIP-1559中的松弛區塊容量

作者 | Vitalik Buterin

對 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/@vbuterin

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧