核心開發者:梳理以太坊合併最新進展

關於測試網、上海昇級、以太坊執行層規範和協議公會。

原文標題:《 AllCoreDevs Update 010 》

原文作者:Tim Beiko, AllCoreDevs Updates

原文編譯:EthereumCN

摘要

自一月份以來,發生了很多事情,以至於我一直在努力找時間把它們寫下來。以下是本次更新的重點:

– 最新的合併測試網Kiln 已經啟動。在上面進行的PoS 過渡揭示了一些實現上的問題,現在所有人都把工作重心放在合併測試上

– 下一次的以太坊升級上海昇級在擬定中,計劃中有EVM 升級、信標鏈提款、L2 費用減少等

– 以太坊執行層的可執行規范正在順利進行。下一步:協調EL+CL 的升級過程

– 協議公會,一個為客戶端開發者和研究員提供基於通證的補償倡議,現在有超過100 個成員,並很快推出試點

Kiln 測試網

繼Kintsugi 後,Kiln 測試網最近也啟動了了。根據在Kintsugi 測試網上發現的臨界情況,Kiln 加入了一些變更和重命名到合併規範。儘管合併的規範現在看上去幾乎接近最終版了,在Kiln 上運行的過渡在各個客戶端中浮現了實現上的問題。團隊現在正加倍努力進行測試,以確保所有實現都是安全和穩定的。 Danny 在最新的Finalized 更新里談到了這點。

假設沒有發現重要的問題,Kiln 將是最後一個發布的新公共測試網。下一步,一旦我們對客戶端的實現和基礎設施/工具的準備情況感到滿意,我們將在現有的測試網(像Ropsten、Goerli、Sepolia 等) 進行合併。

與每次升級一樣,我們將在升級後監測測試網,以確保它們是穩定的。一旦我們確信測試網按預期運行,我們將為以太坊主網計劃過渡!

雖然我們已經很接近合併了,而且這對整個社區來說是一個非常令人興奮的時刻,但過渡能安全進行比任何目標日期更重要,是合併的頭等大事。這是迄今為止以太坊進行的最複雜的升級。我們不想出錯。

一旦決定了,測試網和主網升級的時間線將會在各社區宣傳渠道公佈,例如每週以太坊進展(This Week in Ethereum)、Eth2 進展更新(What’s New in Eth2)、以太坊基金會博客(the EF blog) 等。目前任何聲稱是目標日期的都是錯的,因為我們還沒定這個日期。在接下來的幾個月裡,要對潛在的詐騙/虛假公告保持額外的警惕!

關於難度炸彈

在去年的Arrow Glacier 升級中,難度炸彈被推遲了,預計今年六月在網絡上能感受到難度炸彈的影響。這篇貼文在追踪它的進展情況。雖然在我們需要推遲難度炸彈前實現PoS 過渡是最好的,但有三點值得注意:

1、炸彈對出塊時間的影響是漸進的。這意味著一旦開始感到到它了,就將有4—8 週的時間出塊會變慢,但不是急劇變慢(大概14 – 17 秒)。

2、在過去,當要推遲難度炸彈,我們會選擇推遲6 個月左右,因為我們通常計劃在那時進行下一次的網絡升級。也就是說,關於難度炸彈要推遲多久是沒有硬性規定的。如果推遲一、兩個月比推遲6 個月更合適,這也是完全可以的。

3、同樣,安全的合併>>> 快速的合併。我們希望過渡能順利進行,以太坊的穩定和安全是我們最關心的。

上海昇級

如上一次更新所說的,隨著合併的規範基本接近凍結,我們已經開始了上海昇級的計劃工作。這裡是升級的規範。這次升級暫定有三項重大變更,以及一些小項。下面逐一深入說明!

EVM 對象格式

研究員和客戶端開發者多年來一直努力在不破壞現有合約的情況下改進EVM。去年,Ipsilon 團隊想到了一個聰明的解決方案:給有特定標識符的合約提供新功能,而現有的合約按原樣執行。這現在以EVM 對象格式(EVM Object Format) 為人所知,簡稱EOF。

在倫敦升級裡,我們通過拒絕以0xEF 字節開頭的新合約的部署來保留這個標識符的部分。在倫敦升級被激活前,有些以這個字節開頭的合約被部署了,但現在已經不能這樣做了,我們可以給前綴0xEF 添加第二個字節(被稱為Magic Byte),得到一個我們可以保證不被任何合約使用的序列。

EIP-3540 對這個內容進行了詳細描述,並強調了該方法的第一個實際好處:代碼與數據的分離,這有利於鏈上代碼驗證。這還為引入新合約代碼部分類型鋪平道路,這有助於實現現在看來很複雜的功能,例如賬戶抽象、EVM 裡的控制流以及EIP-3074。

EIP-3670 是3540 的配套EIP,它引入部署時EOF 合約的代碼驗證。

信標鏈提款

上海昇級的另一個主要功能是激活信標鏈提款。經過幾份提案後,我們得出了一個客戶端團隊都滿意的設計:EIP-4895: Beacon chain push withdrawals as operations (信標鏈作為系統操作的推式提款)。

這個元規範概述了整個運作流程。從高層次來說,在每個slot 裡,信標鏈都會處理一定數量的全額或部分提款。這些提款會在收據裡被追踪,這些收據包含每筆提款的數額、目標地址和唯一的索引。作為區塊創建和驗證過程的一部分,這些提款隨後會在執行層上分發出去,與今天工作量證明分發給礦工一樣。

對於在共識層上需要做出的多個變更有一個追踪問題,這個內容現在已經在consensus-specs (共識層規範) 的倉庫裡了。部分提款的選項將允許驗證者提出他們獲得的獎勵,同時保持在鏈上有做驗證者所需的32 個ETH,繼續賺取獎勵。

L2 費用減少

我們希望納入上海昇級的最後一個大事項是減少在二層的費用。因為二層會在一層發布交易數據(和/或證明),終端用戶的交易費用有很大一部分來自一層的數據存儲。分片為二層發布數據提供一個更便宜的替代方案,然而儘管這個提案似乎已經定下來了,完整的分片實現還沒有準備好。

同時,現在有兩個可用選項可以減少這些開銷:在主網上降低CALLDATA 的開銷,或「proto-sharding」實現,這個方案會在以太坊上引入一種新的交易類型,被稱為分片blob 交易(Shard Blob Transactions)。

降低CALLDATA 開銷

降低在L2 上的交易費用的最簡單方式就是降低在L1 上存儲數據的開銷。 EIP-4488 提議這樣做,把CALLDATA 的開銷從每字節16 gas 下調到3 gas。存儲開銷的減少會轉化為更低的二層費用 [1]。

儘管降低gas 開銷本身是個簡單的變更,但它會帶來一些次級效應。首先,增加區塊裡的CALLDATA 會導致更大的區塊容量。為了平衡這點,這個EIP 提出在一個區塊裡需要有一個CALLDATA 最大數量的上限。第二,即使有了這個上限,這個EIP 也會加快執行層上歷史鏈數據的增長速率。為了解決這個問題,我們需要開發頻帶以外的數據檢索,並像EIP-4444 提議般,在以太坊P2P 網絡裡對歷史數據存儲的保證需要改變 [1]。

雖然歷史鏈數據的增加本來就會逐漸發生,納入這份EIP 意味著它部署後我們需要更加迫切地處理這個問題。另外,這個EIP 基本沒什麼內容可以在完整分片中得到重複使用。它主要是一個臨時的解決方案。也就是說,這個EIP 是一個相對簡單的實現變更,並確實能明顯地降低L2 的費用。

分片blob 交易

另一個提案是EIP-4844 [2],它使我們更靠近完整的分片部署。與信標鏈提款一樣,這個提案也有一個元規範,鏈接到共識層規範和其他資源。

從高層次來說,這個新交易類型會包含對數據blob 的承諾,該承諾會在信標鏈廣播。這個提案可以被認為是要給「小型分片」提案,它不依賴於數據可用性採用,網絡的每個節點都需要驗證blob 裡的數據。就像在完整分片裡,這些數據blob 只保證在網絡的一定時間內可用,而不是永遠存儲。為了使節點要求還是可管理的,blob 數據被限制在1MB/slot 而不是在完整分片裡的16mb/slot。

EIP-4844 將為完整的分片實現奠定必要的基礎。值得注意的是,所有未來的變更都只會發生在共識層。從執行層的角度來看,分片只是啟動和運行!

一直在這個EIP 上努力的Optimism 團隊推出一個提供這個EIP 概覽的網站,它匯總了各種規範鏈接,並放了社區對這個EIP 的積極反應。

[1] 由於L2 交易定價還涉及其他構成,這個減少不會是完整的5 倍。 Optimisim 的這篇文章對L2 費用的構成有很好的解釋。而且,ZK rollup 不會像Optimistic rollup 般從這個EIP 獲益。

[2] EIP-4488 (降低CALLDATA 開銷) 和EIP-4844 (分片blob 交易) 作為競爭提案,它們的EIP 號也太相似了吧。

小型改進

除了這三個大型變更,上海昇級還在考慮進行一些小型改進,即:

EIP-3651 提議降低訪問COINBASE 地址的gas 開銷,修正EIP-2929 的疏忽

EIP-3860 提議給initcode 的大小設限,並引入給這個字段的gas 計量。

EIP-3855 提議新增操作碼PUSH0,把0 推入EVM 堆棧。

此外,還有其他幾個EIP 被提議進行升級(參閱這個粗略列表)。 EOF、提款和減低二層費用已經使得上海成為迄今為止最大的升級之一,所以我們需要非常認真得斟酌納入內容的優先次序。

一旦我們開始實現和測試各種EIP,我們將更加清楚我們是否有額外的能力去實現其他提案。當然,在此之前,我們仍然需要先完成合併!

以太坊執行層規範(EELS)

正如你可能已經註意到了,上海的幾個提案現在同時跨執行層和共識層。在過去,在不同的層上我們使用不同程序來引入變更。

在執行層上,核心EIP 包含變更的規範。 《以太坊黃皮書》是網絡的參考規範,但往往在升級被部署了後才會更新黃皮書,有時會有更大的延遲。這意味著執行層的有效規範往往是「黃皮書+ EIP X、Y、Z」。

在共識層上,用作參考的是一個可執行的規範,變更會直接在上面詳細說明。然後,該規範就可以用於為變更生成測試。

因此,雖然社區能很好地理解執行層的流程(並提供一個易於參考的變更描述),從技術角度來說,這並不理想。相反,儘管共識層的流程在技術上更簡潔,但對於更廣泛的社區來說更難理解。幸運的是,在EELS 上的工作已經開啟了:以太坊執行層的可執行規範!

在執行層和共識層上都有可執行的規範,這將使我們能夠協調兩層的變化流程。仍然有許多問題需要解決,但關於如何能最好地遷移的對話已經開始了。在Ethereum Magicians 論壇這裡的討論是專屬這個話題的。儘管EELS 仍然在開發中,我們可能可以在上海昇級裡用上它,與目前的流程並行。

希望執行層和共識層流程的合併會比實際的執行層和共識層合併更簡單。

協議公會

最後但並非最不重要的,我想談談協議公會(Protocol Guild, PG),它現在已經有一個完整的解釋網站。對協議維護者的補償是最近一個熱門話題,PG 希望參與解決這個問題。充分披露:我是PG 成員並將從中獲得資金。

你可以把補償想成有三類:基本工資、激勵和潛在的上升空間。目前,客戶端開發者和研究員的基本工資是他們各自的雇主解決的。儘管他們有些會以股權形式提供激勵,但以太坊基金會去年公佈了其39,000 個ETH 的客戶端激勵計劃,以確保所有客戶端團隊在以太坊上都有重大利益。

PG 與基本工資和激勵計劃不同,因為它旨在使其成員可以出現在基於ETH 的各種項目通證上,而不是ETH 本身。公會由協議工程師、研究員和很多協調協議工作的人組成,例如我自己。現在大概有100 名成員。

簡單來說,公會允許贊助者捐贈Token,然後隨著時間推移, Token 會給到接受者。接收者集是可以更新的,這使得新的貢獻者可以定期被加進來,而已經覺得厭倦的人也可以定期被移除。

這個公會是一個早期實驗,但如果成功了,可以成為對像Gitcoin 和追溯性公共產品資助這種專注於底層的倡議的補充。

在Gitcoin grant 的成功後,PG 的下一步是測試智能合約架構。與此同時,將開始尋找初始捐贈者。我們的計劃是用有限的捐款運行PG 一年,以確保技術和治理部分都順利進行。希望這個試點都能證明我們可以在以太坊上創建新的機制來協調公共產品和資金!

後續工作

我們的首要任務還是合併,並重新把重點放在測試上。在接下來的一個月裡,我們希望能最終敲定實行,運行多個短期的開發者測試網,並從應用、基礎設施和工具提供商收集反饋。其他事情(上海昇級、執行層規範、協議公會) 也應該在同時繼續推進。

請期待一兩個月後的更新,同時,我們也將有機會在Devconnect 上面對面討論所有這些問題——阿姆斯特丹見!

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts