跳至主要内容

時尚阿姆斯特丹

以太坊即將推出的 Glamsterdam 升級旨在為下一代擴容鋪平道路。Glamsterdam 這個名稱結合了「Amsterdam」(執行層升級,以先前的 Devconnect 地點命名)和「Gloas」(共識層升級,以一顆星星命名)。

Fusaka升級取得進展後,Glamsterdam將重點放在擴容L1,重新網路處理交易和管理其不斷增長的資料庫的方式,從根本上更新以太坊建立和驗證區塊的方式。

Fusaka 主要專注於基礎架構的改進,而 Glamsterdam 則透過確立不同網路參與者之間的職責分離,並引入更有效率的資料處理方式,為高吞吐量的平行化做好準備,進而推進「Scale L1」和「Scale Blobs」的

這些改進確保以太坊在處理更多交易時,仍然保持快速、經濟實惠和去中心化,同時也讓在家運行人,其硬體需求保持在可管理的範圍內。

考慮對Glamsterdam進行改進

Glamsterdam 的升級主要有三個目標:

  • 加速處理(平行化):重新網路記錄資料依賴的方式,讓它能夠安全地同時處理多個交易,而不是緩慢地逐一處理。
  • 擴展容量:將建立和驗證區塊的繁重工作分開,讓網路有更多時間傳播更大容量的資料,而不會變慢。
  • 避免資料庫膨脹(永續性):調整網路費用,使其能準確反映儲存新資料的長期硬體成本,在解除未來燃料限制增加的同時,也能避免硬體效能下降。

簡單來說,Glamsterdam 會進行結構性改革,確保隨著網路容量增加,它能持續永續發展,效能也能保持在最佳狀態。

L1級擴展與平行處理

要讓L1擴容有意義,就必須擺脫協議外的信任假設和串行執行限制。Glamsterdam透過確立某些區塊建構職責的分離,並引入新的資料結構,讓網路能夠為平行處理做好準備,來解決這個問題。

主要提案:確立區塊提交者與建構者分離(ePBS)

  • 消除對協定外信任假設和對第三方中繼的依賴
  • 透過延長傳輸時間,讓傳輸的資料量更大,進而實現 L1擴容
  • 將免信任的建構者付款直接引入協議

目前,區塊的提議和建構流程包含區塊提議者和區塊建構者之間的交接。提議者和建構者之間的關係並非以太坊核心協議的一部分,因此它依賴於受信任的第三方中介軟體、軟體(中繼器),以及實體之間協議外的信任。

區塊提交者和建構者之間這種非協定式的關係,在區塊驗證期間也會產生一個「熱路徑」,迫使在短短兩秒的視窗內快速完成交易廣播和執行,這限制了網路可以處理的資料量。

確立的提議者-建構者分離(ePBS,或稱 EIP-7732)正式將提議者(選擇共識區塊者)和建構者(組裝執行有效負載者)的工作分離,將這個交接直接確立到協議中。

將區塊有效負載與付款的免信任交換直接建構到協議中,消除了對第三方中介軟體(如 MEV-Boost)的需求。然而,建構者和提議者仍然可能選擇使用協議外的中繼或中介軟體來實現尚未納入核心協議的複雜功能。

為了解決「熱路徑」的瓶頸問題,ePBS 還引入了有效負載及時性委員會(PTC)和雙重截止日期邏輯,讓驗證者可以分別證明共識區塊和執行有效負載的及時性,以最大化吞吐量。

在協議層級將區塊提交者和建構者的角色分開,可以將傳播視窗(或在網路中傳播資料的可用時間)從2秒延長到大約9秒。

透過用協議內機制取代協議外的中介軟體和中繼,ePBS 減少了信任依賴,讓以太坊能夠安全地處理更多資料(例如的更多資料塊),而不會對網路造成壓力。

參考資料: EIP-7732 技術規格 (opens in a new tab)

主要提案:區塊層級存取控制清單 (BALs)

  • 透過預先提供所有交易依賴關係的對照表,消除串列處理的瓶頸,讓驗證者能夠平行處理多個交易,而不是一個接一個地處理。
  • 節點可以透過讀取最終結果來更新自己的紀錄,而不需要重播每一筆交易(無執行同步),這樣可以讓節點更快地同步到網路。
  • 省去猜測的麻煩,讓驗證者可以一次載入所有必要的資料,而不是一步一步地去尋找,這樣驗證的速度會快很多。

現在的以太坊就像一條單線道;因為網路在交易執行之前,無法得知一筆交易需要或改變什麼資料(例如會影響到哪些交易),所以驗證者必須嚴格地、依序地一筆一筆處理交易。如果他們試圖一次處理所有交易,卻不了解這些依賴關係,兩筆交易可能會不小心同時嘗試更改完全相同的資料,導致錯誤。

區塊層級存取列表(BALs,或稱 EIP-7928)就像是包含在每個區塊中的地圖,它會告訴網路在工作開始之前,資料庫的哪些部分會被存取。BALs 要求每個區塊都必須包含交易觸及的每個帳戶變更的哈希,以及這些變更的最終結果(所有狀態存取和執行後值的哈希記錄)。

因為它們能即時顯示哪些交易沒有重疊,所以 BAL 讓節點能夠執行平行磁碟讀取,同時擷取許多交易的資訊。網路可以安全地將不相關的交易分組,並平行處理它們。

因為區塊鏈帳本(BAL)包含交易的最終結果(也就是執行後的數值),所以當網路節點需要同步到網路的當前狀態時,它們可以複製這些最終結果來更新它們的紀錄。驗證者不再需要從頭開始重播所有複雜的交易來了解發生了什麼事,這使得新節點加入網路變得更快更容易。

透過 BALs 實現的平行磁碟讀取功能,將會是邁向未來以太坊能夠同時處理多筆交易,大幅提升網路速度的重要一步。

eth/71區塊存取清單交換

區塊存取清單交換(eth/71 或 EIP-8159)是區塊層級存取清單的直接網路對應。BALs 實現了平行執行,而 eth/71 則升級了點對點協議,讓節點能夠在網路上實際分享這些清單。實施區塊存取清單交換將能實現更快的同步,並讓節點執行無執行狀態更新。

資源:

網路永續性

隨著以太坊網路的成長速度越來越快,確保使用網路的成本與運行以太坊的硬體磨損程度相符,這點很重要。網路需要增加其整體容量限制,才能安全地擴展並處理更多交易。

建立狀態的燃料成本增加

  • 確保建立新帳戶或智能合約的費用能準確反映它們對以太坊資料庫造成的長期負擔。
  • 這些資料生成費用會根據網路的整體容量自動調整,目標是維持一個安全且可預測的成長率,這樣標準的實體硬體才能持續運作網路。
  • 將這些特定費用分開到一個新的儲存庫中,取消舊的交易限制,讓開發人員可以部署更大、更複雜的應用程式。

新增帳戶、代幣和會產生永久性資料(稱為「狀態」),而每個運行網路的電腦都必須無限期地儲存這些資料。目前新增或讀取這些資料的費用不一致,而且不一定能反映它們對網路硬體造成的實際長期儲存負擔。

在以太坊上,有些會產生狀態的動作,像是建立新帳戶或是部署大型智能合約,相較於它們在網路節點上佔用的永久儲存空間,成本相對較低。舉例來說,合約部署每位元組的成本,就比建立儲存槽的成本便宜許多。

如果沒有調整,以太坊的狀態可能會每年增加近200 GiB,如果網路擴展到100M的燃料限制,最終將會超過一般硬體的容量。

狀態建立的燃料成本增加(或EIP-8037)透過將成本與實際建立的資料大小綁定,使成本達到協調一致,並更新費用,使其與操作建立或存取的永久資料量成正比。

EIP-8037 也引入了一個儲備模型,讓這些成本的管理更具可預測性;狀態燃料費用會先從 state_gas_reservoir 中扣除,而 GAS 操作碼只會回傳 gas_left,避免執行框架錯誤計算可用燃料。

在 EIP-8037 之前,計算工作(主動處理)和永久資料儲存(將智能合約儲存到網路的資料庫)都共用相同的燃料限制。而儲存庫模型則將計算方式分開:交易的實際計算工作(處理)有其燃料限制,而長期資料儲存(狀態燃料)則有另一組 Gas 上限。將兩者分開有助於防止應用程式的資料量過大而達到燃料限制;只要開發人員提供足夠的資金來填滿資料儲存的儲存庫,他們就可以部署更大、更複雜的智能合約。

更精確、可預測地為資料儲存定價,將有助於以太坊安全地提升速度和容量,而不會讓資料庫變得臃腫。這種永續性將使節點營運者在未來幾年內繼續使用(相對)實惠的硬體,讓個人也能參與質押,以維持網路的去中心化。

參考資料: EIP-8037 技術規格 (opens in a new tab)

狀態存取燃料成本更新

  • 當應用程式讀取或更新永久儲存在以太坊上的資訊(狀態存取操作碼)時,會增加其燃料成本,以準確匹配這些指令所需的運算工作。
  • 透過防止利用人為廉價的資料讀取操作進行的阻斷服務攻擊,來增強網路的彈性

隨著以太坊的狀態越來越龐大,節點在搜尋和讀取舊資料(也就是「狀態存取」)時,處理起來會變得更耗時、更緩慢。儘管現在查詢資訊的成本(以運算能力來說)稍微高了一點,但這些操作的費用卻沒有隨之調整。

因此,有些特定的指令目前被低估了,相較於它們讓節點必須執行的工作。舉例來說,EXTCODESIZEEXTCODECOPY 的價格被低估了,因為它們需要兩次獨立的資料庫讀取——一次是為了帳戶物件,另一次是為了實際的程式碼大小或位元組碼。

狀態存取燃料成本更新(或稱EIP-8038)會調高狀態存取指令碼的燃料常數,像是查詢帳戶和合約資料,以符合現代硬體效能和狀態大小。

讓讀取區塊鏈資料的成本合理化,也有助於提升以太坊的韌性。因為這些讀取大量資料的動作,在目前被刻意壓低了成本,所以惡意攻擊者可以在單一區塊中,網路數千個複雜的資料請求,在達到網路的費用上限之前,就可能導致網路停滯或當機(這是一種阻斷服務攻擊)。即使沒有惡意,如果讀取網路資料的成本太低,開發者也不會被經濟上鼓勵去開發高效能的應用程式。

透過更精確地為狀態存取操作定價,以太坊可以更有效地抵禦意外或惡意的網路減速,同時將網路成本與硬體負載對齊,為未來增加燃料限制奠定更永續的基礎。

參考資料: EIP-8038 技術規格 (opens in a new tab)

網路韌性

驗證者職責和退出流程的改進,確保了在大量罰款事件期間網路的穩定性,並使流動性更加普及。這些改進使網路更加穩定,並確保所有參與者,無論大小,都能受到公平對待。

排除被停權的驗證者參與提案

  • 阻止被懲罰(罰款)的驗證者被選中來提議未來的區塊,從而消除保證錯過的時段。
  • 讓以太坊網路保持順暢和可靠的運作,避免在大量懲處沒的情況下發生嚴重停滯。

目前,即使驗證者被罰款(因為違反規則或未按預期運作),系統在生成未來的區塊提交者預選名單時,仍有可能在不久的將來選擇他們來主導一個區塊。

因為被罰款的驗證者所產生的區塊會被自動拒絕,這會導致網路錯過區塊生成時機,並在大量懲處事件中延遲網路恢復。

排除被罰款的驗證者參與提案(或EIP-8045)這個功能會過濾掉那些被罰款的驗證者,讓他們不會再被選為未來的職責人。這能提升區塊鏈的韌性,確保只有健康的驗證者會被選來提案區塊,在網路中斷時也能維持服務品質。

參考資料: EIP-8045 技術規格 (opens in a new tab)

讓出口使用整合佇列

  • 這個修補程式解決了一個漏洞,這個漏洞讓那些擁有大量質押驗證者,可以透過合併隊列,比那些質押代幣較少的驗證者更快地退出網路。
  • 當第二個佇列有額外容量時,允許常規的退出操作溢出到該佇列,減少高流量期間的質押提款時間。
  • 嚴格維護安全,避免更改以太坊的核心安全限制或削弱網路。

自從Pectra升級將以太坊驗證者的最大有效餘額從32 ETH增加到2,048 ETH後,一個技術漏洞讓高餘額的驗證者可以透過合併隊列比低餘額的驗證者更快地退出網路。

讓所有提款都使用合併隊列(或 EIP-8080),讓所有質押提款都能使用這個隊列,創造一個單一、公平的隊列給所有人。

我們來詳細解釋一下這項功能目前的運作方式:

  • 以太坊的驗證者變動上限,是為了確保網路安全不會受到影響,而對驗證者加入、退出或合併(整合)其質押的以太幣的速度所設下的安全限制。
  • 因為驗證者的合併比標準的驗證者退出更複雜,牽涉到更多環節,所以它會佔用更多安全預算(也就是驗證節點的更換頻率上限)。
  • 具體來說,該協議規定,一個標準退出節點的確切安全成本是整合節點成本的三分之二(2/3)。

更公平的提領隊列將允許標準提領在提領需求高峰期,從合併隊列借用未使用的空間,並採用「3換2」的交換比率(每2個未使用的合併名額,網路可以安全地處理3個標準提領)。這個3/2的交換比率平衡了合併和提領隊列之間的需求。

讓更多人可以參與合併隊列,將會讓使用者在需求量大的時候,可以更快地退出他們的質押,速度最高可以達到2.5倍,而且還不會影響到網路的安全性。

參考資料: EIP-8080 技術規格 (opens in a new tab)

提升使用者和開發者體驗

以太坊的 Glamsterdam 升級旨在改善使用者體驗、提升資料可搜尋性,並處理不斷增加的訊息大小,以防止同步失敗。這讓使用者更容易追蹤鏈上發生的事情,同時在網路擴展時防止技術故障。

降低內在交易的燃料

  • 降低交易的基本費用,減少單純的 ETH 支付的總體成本。
  • 讓小額轉帳更划算,提升以太幣作為日常交易媒介的實用性。

今天,所有以太坊交易都有一個固定的基本燃料費,不論處理起來是簡單還是複雜。**「減少內在交易燃料(或稱 EIP-2780)」**這個提案,旨在降低這個基本費用,讓現有帳戶之間的標準 ETH 轉帳費用,最多可以便宜到 71%。

透過將交易手續費分解,只反映運行網路的電腦實際完成的基本、必要工作,例如驗證數位簽署和更新餘額,來減少內在交易的燃料消耗。因為基本的ETH支付不執行複雜的程式碼或攜帶額外資料,這項提案將會降低其費用,以符合其輕量化的特性。

這項提案為建立全新帳戶引入了一個例外,以避免較低的費用壓垮網路的狀態。如果一筆轉帳將 ETH 發送到一個空的、不存在的地址,網路必須為其建立一個永久的新記錄。為了幫助支付其長期的儲存負擔,該帳戶建立會額外收取一筆燃料。

總體來說,EIP-2780 的目標是讓現有帳戶之間的日常轉帳更實惠,同時透過準確地對真實狀態增長進行定價,確保網路仍能免受資料庫膨脹的影響。

參考資料: EIP-2780 技術規格 (opens in a new tab)

確定性工廠預先部署

  • 讓開發者能夠以原生方式,將應用程式和智能合約錢包部署到多個區塊鏈上的同一個地址。
  • 讓使用者在多個第二層(L2)網路上擁有相同的智能錢包地址,減少認知負擔、降低混淆,並降低意外損失資金的風險。
  • 這項功能取代了開發者目前為實現這種對等性而使用的變通方法,讓建構多鏈錢包和應用程式變得更簡單、更安全。

如果使用者今天擁有一個智能合約錢包,裡面有跨多個以太坊虛擬機(EVM)相容鏈的帳戶,他們通常會在不同的網路上得到完全不同的地址。這不僅令人困惑,還可能導致資金意外損失。

確定性工廠預部署(或稱 EIP-7997)提供開發者一種原生、內建的方式,讓他們能夠將去中心化應用程式和智能合約錢包部署到多個 EVM 鏈上的完全相同地址,包括以太坊主網、第二層(L2)網路等等。如果這項技術被廣泛採用,使用者將可以在每個參與的鏈上擁有完全相同的地址,這將大大減少認知負擔和使用者出錯的可能性。

確定性工廠預部署的運作方式,是在每個參與的 EVM 相容鏈上,將一個最小化、專用的工廠程式碼永久部署到相同的位址(特別是地址0x12)。其目標是提供一個通用的標準工廠合約,讓任何 EVM 相容網路都能採用;只要 EVM 鏈參與並採用這個標準,開發者就能夠使用它,將他們的智能合約部署到該網路上的完全相同地址。

這項標準化簡化了開發者和更廣泛的生態系統建構和管理跨鏈應用程式的過程。開發者不再需要為將軟體連結到不同網路而編寫客製化的、特定於鏈的程式碼,而是使用這個通用工廠為他們的應用程式在任何地方生成完全相同的地址。此外,區塊瀏覽器、追蹤服務和錢包可以更容易地識別和連結這些應用程式和帳戶,為所有以太坊參與者創造一個更統一、更無縫的多鏈環境。

參考資料: EIP-7997 技術規格 (opens in a new tab)

ETH的轉帳和銷毀都會產生紀錄檔

  • 每次有ETH轉帳或銷毀時,系統都會自動生成永久紀錄(日誌)。
  • 解決了過去的一個盲點,讓應用程式、交易所和橋接器能夠可靠地偵測使用者存款,而無需使用臨時追蹤工具。

跟代幣(ERC-20)不一樣,一般以太幣在智能合約之間的轉帳不會產生明確的收據(標準日誌),這讓交易所和應用程式很難追蹤。

ETH 的轉帳和銷毀都會發出日誌(或稱 EIP-7708),這讓網路在每次轉移或銷毀非零數量的 ETH 時,都必須發出標準的日誌事件。

這樣一來,錢包、交易所和跨鏈橋的營運者就能更輕鬆、更可靠地追蹤存款和資金流動,而不需要客製化的工具。

參考資料: EIP-7708 技術規格 (opens in a new tab)

eth/70 部分區塊收據清單

隨著以太坊能處理的交易量越來越多,這些交易的收據清單(也就是這些交易的資料紀錄)也變得非常龐大,這可能會導致網路節點在嘗試同步資料時發生故障。

eth/70 的部分區塊收據清單(或稱 EIP-7975)為節點之間建立了一種新的溝通方式(eth/70),讓這些大型清單可以被拆分成更小、更容易管理的區塊。eth/70 引入了一個分頁系統,用於網路的通訊協議,讓節點可以將區塊收據清單分解,並安全地以更小、更容易管理的區塊來請求資料。

這項改變將能避免在網路繁忙時發生同步失敗。最終,它為以太區塊未來增加區塊容量、處理更多交易鋪平了道路,而不會讓同步區塊鏈的實體硬體不堪重負。

參考資料: EIP-7975 技術規格 (opens in a new tab)

延伸閱讀

常見問題

請問在 Glamsterdam硬分叉之後,ETH 要怎麼轉換?

  • 您的 ETH 無需任何操作:在 Glamsterdam 升級之後,您不需要轉換或升級您的 ETH。您的帳戶餘額將保持不變,您目前持有的 ETH 在硬分叉後仍將以現有形式保留。
  • 小心詐騙! 任何叫你「升級」ETH 的人都是想騙你。 你完全不需要做任何跟這次升級有關的事情。你的資產會完全不受影響。記住,隨時掌握最新資訊是防範詐騙的最佳方法。

更多關於辨識和避免詐騙的資訊

Glamsterdam 的升級會影響到所有的以太坊節點和驗證者嗎?

沒錯,Glamsterdam 的升級需要更新執行用戶端和共識用戶端。因為這次升級引入了內建的區塊提交者-建構者分離 (ePBS) 機制,節點操作者需要確保他們的節點軟體都更新到最新版本,才能處理區塊網路中新的區塊建立、驗證和認證方式。

所有主要的以太坊客戶端都會發布支援這次高優先級硬分叉的版本。您可以透過用戶端的GitHub 儲存庫、他們的Discord 頻道 (opens in a new tab)EthStaker Discord (opens in a new tab),或是訂閱以太坊部落格來追蹤這些發布的最新消息。

為了在升級後與以太坊網路保持同步,節點營運者必須確保他們正在運行受支援的用戶端版本。請注意,關於用戶端發布的資訊是時效性的,使用者應參考最新的更新以獲取最準確的詳細資訊。

身為一個質押者,我需要為 Glamsterdam 的升級做些什麼?

就跟每次網路升級一樣,請務必將您的客戶端更新到最新版本,並確認有標示支援 Glamsterdam。請追蹤電子郵件列表中的更新,以及EF 部落格上的協定公告, (opens in a new tab)以隨時掌握發布資訊。

為了在 Glamsterdam 主網上線前驗證您的設定,您可以在測試網上運行驗證者。測試網的分叉也會在郵件列表和部落格中公布。

Glamsterdam 會為 L1 擴展方案帶來哪些改進?

最主要的特色是 ePBS (EIP-7732),它將驗證網路交易的繁重任務與達成共識的任務分開。這將資料傳播的時間從 2 秒擴展到大約 9 秒,讓以太坊能夠安全地處理更高的交易吞吐量,並為第二層網路容納更多資料區塊。

Glamsterdam會降低以太坊(第一層)的交易手續費嗎?

沒錯,Glamsterdam很有可能會降低一般使用者的費用!降低內在交易燃料(或EIP-2780)會減少發送ETH的基本費用,讓ETH在日常支付中更便宜好用。

此外,為了長期的永續性,Glamsterdam 推出了區塊層級存取列表 (BALs)。這讓平行處理成為可能,並讓 L1 能夠安全地處理未來更高的總體燃料上限,隨著容量的增加,這可能會降低每筆交易的燃料成本。

Glamsterdam活動結束後,我現有的智能合約會不會有任何變動?

Glamsterdam上線後,現有合約將持續正常運作。開發者可能會獲得一些新工具,並應該檢視他們的燃料使用量:

  • 增加合約最大容量(或稱 EIP-7954)讓開發者可以部署更大的應用程式,將合約最大容量限制從大約 24 KiB 提高到 32 KiB。
  • 確定性工廠預部署(或稱 EIP-7997)引入了一個通用、內建的工廠合約。它允許開發者將他們的應用程式和智能合約錢包部署到所有參與的 EVM 鏈上的完全相同地址。
  • 如果你的應用程式需要透過複雜的追蹤才能找到以太幣的轉帳紀錄,那麼以太幣的轉帳和銷毀都會發出日誌(或稱 EIP-7708),這會讓你可以改用日誌來進行更簡單、更可靠的記帳。
  • 狀態建立的燃料費用增加(或EIP-8037)和狀態存取燃料費用更新(或EIP-8038)引入了新的永續性模型,這將改變某些合約的部署成本,因為建立新帳戶或永久儲存將會產生動態調整的費用。

Glamsterdam 會對節點儲存和硬體需求造成什麼影響?

為了要地址Glamsterdam 的狀態瓶頸,我們正在考慮多個 EIP:

  • 狀態建立的燃料成本增加(或稱EIP-8037)引入了一個動態定價模型,目標是將狀態資料庫的增長率控制在每年100 GiB,以確保標準的實體硬體能夠持續高效地運行網路。
  • eth/70 的部分區塊收據清單(或稱 EIP-7975)允許節點請求分頁的區塊收據,這將資料量大的區塊收據清單分解成較小的區塊,以防止當以太坊擴展時發生當機和同步問題。

這篇文章對你有幫助嗎?