
作者:0xNatalie 來源:chainfeeds
以太坊下一次升級 Pectra,其名稱來源於 Prague 和 Electra 的組合。
Prague 代表執行層的升級,得名於以太坊開發者大會(Devcon 4)的舉辦城市布拉格,而 Electra 則象徵共識層的升級,依照字母順序以星星命名。這次選擇的星名 Electra 對應字母「E」。
Pectra 升級作為以太坊歷史上可能涉及最多 Ethereum Improvement Proposals(EIP)的一次硬分叉,不僅包含了一系列針對驗證者操作和主網性能提升的提案,還引入了優化 L2 的提案。Pectra Devnet 4 測試網剛上線,目前已經有8個 EIP 確定包含在 Pectra 升級中。
確定納入的 EIP 以及產生的影響
這8個 EIP 對用戶的影響體現在:通過為 EOA 添加代碼執行能力提高了帳戶的靈活性,使其能夠執行更複雜的操作;提升質押上限可能增加對 ETH 的需求;同時,優化驗證者的流程提升了安全性和效率,提高了以太坊的速度和吞吐量。
-
EIP-2537(支持 BLS 籤名):通過引入一系列預編譯合約(precompiles),為以太坊增加對 BLS12-381 曲線運算的支持,可以 實現 BLS 籤名驗證 ,並允許多個籤名聚合為一個籤名,從而減少驗證時的複雜度。BLS 籤名是一種密碼學算法,能夠生成較小的籤名並支持籤名聚合。這將 有助於需要進行大量的籤名驗證和數據驗證操作的 L2 更好地運行。
-
EIP-2935(在狀態中保存歷史區塊哈希):通過將最近 8192 個區塊哈希存儲在系統合約中, 以支持無狀態客戶端(Stateless Clients) 模型 ,並提供更靈活的歷史區塊哈希查詢功能。這些哈希值可以通過合約直接查詢,並作為證明(witness)捆綁,提供給無狀態客戶端。 客戶端無需自己維護完整的區塊鏈歷史或存儲大量數據 ,只需依賴通過狀態中存儲的區塊哈希和相關證明就能夠驗證區塊和交易的合法性。
-
EIP-6110(在鏈上提供驗證者存款):將驗證者存款的處理從共識層轉移到執行層,在鏈上進行處理和驗證,而不再依賴共識層中的額外投票機制來確認存款信息的有效性。 增強了存款流程的安全性,減少了處理延遲,同時簡化了共識層和客戶端的設計。
-
EIP-7002(執行層可觸發的退出):允許持有提款憑證的所有者能夠獨立發起退出,而 無需依賴驗證者的活躍密鑰(BLS 密鑰 ) ,增加了用戶自主性 。目前,只有驗證者的活躍密鑰才能觸發退出,這意味著如果活躍密鑰丟失,或驗證者將驗證任務委託給第三方(如質押服務提供商),提款憑證的所有者(即資金的實際所有者)無法自主控制質押的 ETH。該提案通過執行層觸發 ETH 的退出和提款操作,持有者可以通過提款憑證發起退出,無需依賴活躍密鑰。
-
EIP-7251(增加質押上限):增加驗證者的最大有效餘額,從而允許每個驗證者可以持有超過 32 ETH 的質押,而最低質押門檻仍然保持為 32 ETH。旨在讓大節點運營者通過合併多個驗證器 減少網絡中的驗證者數量,從而減少 P2P 消息、籤名聚合以及存儲負擔。
-
EIP-7549(將委員會索引移出證明):通過將委員會索引欄位移出 Attestation(證明)消息,實現更高效的共識投票聚合。當前在以太坊的共識機制中,每個驗證者在投票包含:LMD GHOST 投票(包含投票的區塊根和時隙)、Casper-FFG 投票(包含源和目標信息)、委員會索引(驗證者所屬的委員會編號)。由於委員會索引被包含在籤名消息中,當多個驗證者對相同的區塊進行投票時,即使他們的投票內容相同,生成的籤名根也不同,導致這些投票無法輕鬆聚合。將委員會索引欄位移出籤名消息本身,從而 實現更高效的投票聚合,減少驗證成本和網絡負載。
-
EIP-7685(通用執行層請求):為執行層(EL)定義一個通用框架,用於存儲和處理由智能合約觸發的請求。這一框架 支持更多的執行層觸發行為 ,並且使得不同類型的請求能夠被統一處理, 簡化了添加新請求類型的過程 ,而無需修改執行塊結構。
-
EIP-7702(為 EOA 添加代碼執行能力): 為外部擁有帳戶(EOA)添加代碼執行功能,從而增強帳戶的靈活性和可編程性 。EOA 通過授權籤名的方式,指定一個智能合約來代理執行某些操作,比如批量交易或權限控制。在不需要轉變為智能合約帳戶的情況下,具備一定的智能合約功能。
重點考慮的 EIP
以下是一些正在積極考慮的 EIP,主要通過優化 blob,提高了 L2 數據發布的費用穩定性、增強了 L2 的交易處理能力,並有效降低了 L2 的成本。此外,增加 calldata 成本的調整可能會影響 ETH 的銷毀量,加大 ETH 的通脹壓力。
-
EIP-7742(解除共識層和執行層之間的 blob 計數依賴):將共識層與執行層之間的 blob 數量解耦,簡化 blob 驗證流程,減少不必要的複雜性,提高協議的擴展性和靈活性。在當前協議中,執行層和共識層都硬編碼了 blob 的最大值,導致了冗餘的驗證。該提案取消了執行層對 blob 最大值的驗證,改為由共識層動態提供 blob 目標值給執行層。這樣一來,可以更靈活地調整 blob 目標參數,適應未來的擴容需求。 EIP-7742 是正在考慮納入升級的 EIP 列表中爭議最小的提案,根據最新的共識層會議,開發者同意開始在 pectra-devnet 5 中實現 EIP 7742,但其是否會正式納入,還需要等待執行層在 ACDE(全體核心開發者執行層會議)上的反饋。
-
EIP 7762(最低 blob 基礎費用):提高 MIN_BASE_FEE_PER_BLOB_GAS,目的是 減少 blob 價格調整至合理水平所需的時間 。目前,最低 blob 基礎費用設置為 1 wei,當 blob 需求超過供應時,價格發現過程(即確定合理的 blob Gas 價格)過於緩慢,需要很長時間才能達到合適的費用水平。通過提高最低 blob 基礎費用,可以縮短價格調整的時間,能夠更快實現市場均衡,確保網絡在需求高峰時仍能保持穩定。
-
EIP-7623(增加 calldata 成本):提高交易中 calldata 的成本,以減少區塊的最大大小及其變動範圍,確保網絡能夠更加平穩地處理交易。當前區塊最大大小約為1.79 MB,但由於 rollups 等應用的大量數據發布,平均區塊大小不斷增加。通過增加主要用於數據可用性(DA)交易的 calldata 成本,將區塊最大大小減少至約0.72 MB,為未來增加區塊 Gas 限制或更多 blob 留出空間。普通用戶的交易成本保持不變,此更改主要影響依賴以太坊進行大規模數據存儲的交易類型。不過,calldata 成本的增加可能會 降低以太坊在數據存儲方面的競爭力 。此外,calldata 成本增加,交易數量可能因此減少,導致通過 EIP-1559 機制銷毀的 ETH 也相應減少, 進而給 ETH 帶來更大的通脹壓力 。
-
EIP 7782(縮短 slot 時間):將以太坊 slot 時間從12秒縮短至8秒,更頻繁地生成區塊來處理更多的交易,將此作為增加 blob 數量的替代方案,以提高交易吞吐量。但可能會破壞某些硬編碼了12秒 slot 時間的智能合約,並加速以太坊的狀態膨脹問題,增加存儲和計算負擔。
-
EIP-7783(逐步增加區塊 Gas 費限制):作為 EIP-7782 更溫和的替代方案,通過動態調整區塊的 gas 限制,逐步增加每個區塊可容納的交易數量,從而提高網絡的處理能力。相比直接縮短 slot 時間,逐步調整 gas 限制可以使網絡擴展更加平穩。這個提案不需要硬分叉,但可能會對狀態數據產生影響。
由於 Pectra 升級包含大量 EIP,為了減少單次升級的複雜性並加快部分 EIP 的上線,在5月,以太坊基金會的工程師團隊 EthPandaOps 建議將 Pectra 拆分為兩個部分,但當時擔心會延遲升級,因此未被認真考慮。9月,以太坊研究員 Alex Stokes 再次提出拆分建議,這次得到了開發者的認同,這種拆分有助於在六個月內完成升級的第一部分:
-
第一部分 :包括已經在 Pectra Devnet 測試網運行的 EIP(即已經確定的8個 EIP),它們相對來說更容易實施,並且已經通過了大量的測試。
-
第二部分 :將較複雜的 EIP(如 PeerDAS、EOF 相關的提案)和其他需要更多時間測試的提案放在第二階段。這些提案需要進一步的開發、審計和測試,特別是涉及共識層和執行層協調的提案。