以太坊 Dencun 升級主網上線已正式確定在 3 月 13 日啟動,本文將用通俗易懂的語言去解釋 Dencun 升級的技術細節,為讀者梳理本次升級與資料可用性 DA 和 Layer 2 等賽道之間的脈絡。
(前情提要:以太坊Dencun升級日期敲定!3月13日正式啟動,開發者:多年努力終於實現…)
(背景補充:坎昆升級動態》最後測試網Holesky今晚啟動,Dencun三月上線以太坊主網?)
目前以太坊坎昆升級主網上線已經正式確定在 3 月 13 日。每次以太坊升級幾乎都會伴有一波主題行情,追溯以太坊的上一次還是 2023 年 4 月 12 日的上海升級,POS 相關的專案都受到了市場的追捧。
如果按照先前經驗,本次 Dencun 升級也會有提前佈局的機會。
而由於 Dencun 升級背後涉及的技術內容比較晦澀,並不能像 Shanghai 升級那樣用一句話 「以太坊從 PoW 轉向 PoS」 一言以蔽,難以抓住佈局的重點。
因此,本文將用通俗易懂的語言去解釋 Dencun 升級的技術細節,為讀者梳理本次升級與資料可用性 DA 和 Layer 2 等賽道之間的脈絡。
EIP 4484
EIP-4844 是本次 Dencun 升級中最重要的提案,標誌著以太坊在以去中心化方式擴展套件的道路上邁出了切實而重要的一步。通俗來講,目前以太坊二層需要將二層發生的交易提交到以太坊主網的 calldata 之中,供節點驗證二層網路出塊的有效性。
這樣做帶來的問題是,雖然交易資料已經被儘可能的壓縮,但二層龐大的交易量再乘以以太坊主網高昂儲存成本基數,對於二層節點和二層使用者來講依舊是一筆不小得開銷。光是價格因素,就會讓二層失去大量使用者,流向側鏈。
而 EIP 4484 建立了一個更為便宜的新型的儲存區域 BLOB(Binary Large Object ,二進位制大型物件),並用一種可以指向 BLOB 儲存空間的名為 “BLOB-Carrying Transaction” 的新交易型別來替代升級之前需要存入 calldata 的交易資料,幫助以太坊生態二層實現節約 Gas 成本。
BLOB 儲存便宜的原因
眾所周知便宜是要付出代價的,BLOB 資料比類似大小的普通以太坊 Calldata 成本更低的原因是,以太坊執行層(EL, EVM)實際上無法訪問 BLOB 資料本身。
相反,EL 只能訪問 BLOB 資料的引用,而 BLOB 本身的資料只能由以太坊的共識層(CL,又稱信標節點)下載和儲存,儲存起來耗費的記憶體與計算量遠小於普通以太坊 Calldata 。
而且 BLOB 還有一個特性,只能儲存有限的一段時間(通常為約 18 天),並不會像以太坊帳本大小那樣無限膨脹。
BLOB 的儲存有效期
與區塊鏈永久的帳本相反,BLOB 是暫時的儲存,其可用時間為 4096 個紀元,即大約 18 天。過期後,大多數共識客戶端將無法檢索 BLOB 中的特定資料。但是,它之前存在的證據將以 KZG 承諾的形式保留在主網上,並且永久儲存在以太坊主網上。
為什麼選擇 18 天?這是在衡量儲存成本和有效性之間的折衷方案。
首先要考慮此次升級最直觀的受益物件 Optimistic Rollups(如:Arbitrum 和 Optimism,),因為根據 Optimistic Rollups 的設定,有 7 天的故障證明(Fruad Proof)的時間視窗。
而 blob 中所儲存的交易資料,正是 Optimistic Rollups 發起挑戰的時候所需要的資料。
因此,Blob 的有效期必須要保證 Optimistic Rollups 故障證明可以訪問,為了簡單起見,以太坊社群選擇了 2 的 12 次冪(4096 個紀元由 2^12 推導而來,一個紀元大概 6.4 分鐘)。
BLOB-Carrying Transaction 與 BLOB
理解這兩者之間的關係,對於理解 BLOB 在資料可用性(DA)方面的作用十分重要。
前者是 EIP-4484 提案的整體,是一種新型交易,而後者可以理解成一種針對 layer 2 臨時儲存交易的位置。
兩者關係可以理解為,前者中的大部分資料(layer2 交易資料)儲存在後者之中。而剩下的資料也就是 BLOB 資料的承諾(Commitment)則會存在主網的 calldata 之中。也就是說,承諾是可以被 EVM 讀取的。
可以將 Commitment 想像為將 BLOB 中的所有交易構建成一個 Merkle 樹,然後只有 Merkle 根也就是 Commitment 可以被合約訪問。
如此做可以巧妙的實現:雖然 EVM 無法得知 BLOB 的具體內容,但 EVM 合約可以通過知曉 Commitment 進而可以驗證交易資料的真實性的目的。
BLOB 與 Layer2 的關係
Rollup 技術通過將資料上傳到以太坊主網來實現資料可用性(DA),但這並不是為了讓 L1 的智慧合約直接讀取或驗證這些上傳的資料。
上傳交易資料到 L1 的目的,僅僅是為了讓所有參與者都可以檢視這些資料。在 Dencun 升級以前,如上文所述,Op-rollup 會將交易資料作為 Calldata 釋出到以太坊。所以任何人都可以使用這些交易資訊來複現狀態,驗證二層網路的正確性。
不難看出,Rollup 交易資料需要便宜 + 公開透明,Calldata 並不是為二層專門存放交易資料的好地方,而 BLOB-Carrying Transaction 才正是為 Rollup 量身訂製的。
讀到這裡,可能大家心裡有個疑問,這種交易資料看起來並不重要,它有什麼用?
其實,交易資料只有在少數情況才會用到:
對於 Optimistic Rollup,基於信任假設,有一定可能會出現不誠信問題,此時 Rollup 上傳的交易記錄才派上用場,使用者可以利用這個資料發起交易挑戰( Fraud proof);
對於 ZK Rollup,零知識證明已經證明狀態更新是正確的,上傳資料只是為讓使用者自己計算出完整狀態,在二層節點無法正確運轉時啟用逃生艙機制(Escape Hatch,需要完整的 L2 狀態樹,最後一節會講到)。
這意味著,交易資料被合約實際使用的場景非常有限。即使在 Optimistic Rollup 的交易挑戰中也只需要當場提交證明交易資料 「存在過」 的證據(狀態),而不需要那一筆交易詳情事先就儲存在主網。
所以如果我們把交易資料放在 BLOB 元素中,雖然合約無法訪問,但主網合約可以儲存這個 BLOB 的 Commitment。
將來如果挑戰機制需要某一筆交易,我們只需提供該筆交易的資料,只要能對應上。這就能說服合約,並將交易資料提供給挑戰機制使用。
這樣既利用了交易資料的公開透明性,也規避了把所有資料提前錄入合約的巨大 gas 成本。
通過僅記錄 Commitment,達成交易資料可驗證性的同時又極大優化了成本。這是 Rollup 技術上傳交易資料的一個巧妙且高效的解決方案。
需要說明的是,在 Dencun 實際操作之中,並沒有採用同 Celestia 類似的 Merkle 樹的方式產生 Commitment,而是採用巧妙 KZG (Kate-Zaverucha-Goldberg,多項式承諾 )演算法。
相比 Merkle 樹證明,生成過程 KZG Proof 的過程相對複雜, 但其驗證的體積更小,驗證步驟也更簡單,但缺點是需要進行可信任設定(ceremony.ethereum.org 現如今已經結束)且不具防量子計算攻擊能力(Dencun 使用了 Version Hash 的方法,如果需要可以更換其他驗證方法)。
對於現在大熱的 DA 專案 Celestia ,其採用的正是 Merkle 樹變體,相比 KZG,有一定程度要依賴節點的誠信,而卻有助於降低節點之間計算資源的門檻要求,維持網路的去中心化特徵。
Dencun 的機會
Eip4844 為二層降本增效的同時,卻也引出了安全隱患,這也帶來新機會。
要想理解原因,我們需要聊回上文提到的逃生艙機制 或者 強制取款機制。
在 Layer 2 節點失能時,這種機制可以保證使用者資金安全回到主網。啟用這個機制的前提是使用者需要獲得 Layer 2 完整的狀態樹。
按照正常情況,使用者只要找一個 Layer2 全節點索要資料,生成 merkle Proof ,再提交給主網的合約,以證明自己提款的正當性。
但不要忘了使用者想要啟動逃生艙機制退出 L2 恰恰是因為 L2 節點作惡,節點都作惡了,那大概率就不會從節點哪裡獲取到想要的資料。這就是 Vitalik 常提到的資料扣留攻擊。
EIP-4844 之前,主網上記錄了永久的 Layer2 記錄,在沒有 Layer2 節點可以提供完整的鏈下狀態時,使用者可以自己部署一個全節點。
這個全節點可以通過與以太坊主網獲取 Layer 2 排序器在主網上釋出的所有歷史資料,使用者就可以構造出所需的 Merkle 證明,將證明提交給主網上的合約,就能安全地完成 L2 資產撤離。
而 EIP-4844 之後,Layer 2 資料只存在以太坊全節點的 BLOB 中,18 天之前的歷史資料將被自動刪除。
因此,上一段中的通過同步主網獲取整棵狀態樹的方法不再可行,想要獲取 Layer 2 的完整狀態樹,只能通過第三方為愛發電的儲存了以太坊 BLOB 全部資料(本該 18 天自動刪除)的主網節點,或 Layer 2 原生節點(很少)。
由此 4844 上線後,使用者通過完全可信的方式獲取 Layer 2 完整狀態樹將會變得十分困難。
使用者沒有穩定途徑獲取 Layer 2 狀態樹,就沒法在極端條件下進行強制提款操作。因此,4844 一定程度上造成了 Layer 2 的安全短板 / 缺失。
要補足這塊的安全缺失,我們需要擁有有正向經濟迴圈的無需信任儲存方案。這裡的儲存,主要是指以一種無需信任的方式保留以太坊中的資料,和過去的儲存賽道不太一樣,因為還存在 「無需信任」 這個關鍵字。
Ethstorage 就可以解決無需信任這個問題,得到了兩輪以太坊基金會的資助。
可以說這個概念真正的可以迎合 / 彌補 Dencun 升級的賽道,非常值得關注。
首先,Ethstorage 最直觀意義在於,能夠以完全去中心化的方式延長 DA BLOB 的可用時間,補上了 4844 後 Layer 2 的安全最短板。
此外,大多數現有的 L2 解決方案主要側重於擴展套件以太坊的計算能力,即增加 TPS。然而,在以太坊主網上安全儲存大量資料的需求激增,特別是由於 NFT 和 DeFi 等 dApp 的流行。
例如,鏈上 NFT 的儲存需求非常明顯,因為使用者不僅擁有 NFT 合約的代幣,還擁有鏈上影象。Ethstorage 可以解決將這些影象儲存在第三方會帶來額外的信任問題。
最後,Ethstorage 還能解決去中心化 dApp 的前端的需求。目前現有的解決方案主要是由中心化伺服器(帶 DNS)進行託管,這種設定使網站容易受到審查和其他問題的影響,如 DNS 劫持、網站駭客攻擊或伺服器崩潰,龍捲風現金等事件就是證明。
現在 Ethstorage 還在初期網測試階段,看好這一賽道的前景的使用者可以體驗一下。
📍相關報導📍
從Pandora的爆紅,解讀ERC-404協議怎麼推動以太坊NFT革命