以太坊Dencun升級主網上線日期已經確定為3月13日!這是開發者多年努力的結果,終於實現了。每次以太坊升級都伴隨著一波熱潮,回顧上一次上海升級是在2023年4月12日,與POS相關的專案都受到了市場的追捧。
根據以往的經驗,我們可以預見這次Dencun升級也會有提前佈局的機會。然而,由於Dencun升級涉及的技術內容相對複雜,並不能像上海升級那樣用一句話 “以太坊從PoW轉向PoS” 來概括,難以抓住佈局的重點。
因此,本文將用通俗易懂的語言解釋Dencun升級的技術細節,為讀者梳理本次升級與資料可用性(DA)和Layer 2等相關內容之間的關聯。
本次Dencun升級中最重要的提案是EIP-4484,標誌著以太坊在以去中心化方式擴展套件的道路上邁出了重要的一步。通俗來講,目前以太坊二層需要將二層發生的交易提交到以太坊主網的calldata中,供節點驗證二層網路出塊的有效性。
然而,這樣做帶來了一些問題。儘管交易資料已經被盡可能地壓縮,但二層龐大的交易量再乘以以太坊主網高昂的儲存成本基數,對於二層節點和使用者來說仍然是一筆不小的開銷。這種價格因素會讓二層失去大量使用者,流向側鏈。
而EIP-4484則建立了一個更便宜的新型儲存區域BLOB(Binary Large Object, 二進位制大型物件),並通過一種新的交易型別”BLOB-Carrying Transaction”來替代之前需要存入calldata的交易資料,從而幫助以太坊生態的二層實現節約Gas成本。
BLOB資料比類似大小的普通以太坊calldata成本更低的原因是,以太坊執行層(EL, EVM)實際上無法訪問BLOB資料本身。相反,EL只能訪問BLOB資料的引用,而BLOB本身的資料只能由以太坊的共識層(CL,又稱信標節點)下載和儲存,儲存起來耗費的記憶體與計算量遠小於普通以太坊calldata。此外,BLOB還有一個特性,只能儲存有限的一段時間(通常為約18天),並且不會無限膨脹。
與區塊鏈永久的帳本相反,BLOB是暫時的儲存,其可用時間為4096個紀元,即大約18天。過期後,大多數共識客戶端將無法檢索BLOB中的特定資料。但是,它之前存在的證據將以KZG承諾的形式保留在主網上,並永久儲存在以太坊主網上。
BLOB的儲存有效期的選擇是在儲存成本和有效性之間做出的折衷方案。對於Optimistic Rollups等專案,有7天的故障證明(Fraud Proof)的時間窗口。而BLOB中所儲存的交易資料正是Optimistic Rollups發起挑戰時所需要的資料。因此,BLOB的有效期必須保證Optimistic Rollups的故障證明可以訪問。為了簡單起見,以太坊社群選擇了2的12次冪(4096個紀元由2^12推導而來,一個紀元大約6.4分鐘)。
理解EIP-4484和BLOB之間的關係對於理解資料可用性(DA)方面的作用非常重要。EIP-4484是一種新型交易,而BLOB則可以理解為一種針對Layer 2臨時儲存交易的位置。兩者的關係可以理解為,前者中的大部分資料(即Layer 2交易資料)儲存在後者之中。剩下的資料,即BLOB資料的承諾(Commitment),則會存在主網的calldata之中。也就是說,承諾是可以被EVM讀取的。
可以將承諾想像為將BLOB中的所有交易構建成一個Merkle樹,然後只有Merkle根,即承諾,可以被合約訪問。這樣做可以巧妙地實現:雖然EVM無法得知BLOB的具體內容,但EVM合約可以通過知曉承諾來驗證交易資料的真實性。
Rollup技術通過將資料上傳到以太坊主網來實現資料可用性(DA),但這並不是為了讓L1的智能合約直接讀取或驗證這些上傳的資料。上傳交易資料到L1的目的僅僅是為了讓所有參與者都可以檢視這些資料。在Dencun升級之前,Op-rollup會將交易資料作為calldata釋出到以太坊。所以任何人都可以使用這些交易資訊來複現狀態,驗證二層網路的正確性。
然而,Rollup交易資料需要便宜且公開透明。calldata並不是為二層專門存放交易資料的好地方,而BLOB-Carrying Transaction則是為Rollup量身定製的。交易資料只有在少數情況下才會用到,例如對於Optimistic Rollup,當出現不誠信問題時,使用者可以利用交易資料發起交易挑戰(Fraud proof)。對於ZK Rollup,上傳資料只是為了讓使用者自己計算出完整狀態,在二層節點無法正確運行時啟用逃生艙機制(Escape Hatch)。
因此,將交易資料放在BLOB元素中,儘管合約無法訪問,但主網合約可以儲存這個BLOB的承諾。這樣,如果挑戰機制需要某一筆交易,我們只需提供該筆交易的資料,只要能對應上,這就能說服合約並將交易資料提供給挑戰機制使用。
這樣一來,既利用了交易資料的公開透明性,又避免了將所有資料提前錄入合約的巨大gas成本。通過僅記錄承諾,達成交易資料可驗證性的同時又極大優化了成本。這是Rollup技術上傳交易資料的一個巧妙且高效的解決方案。
需要注意的是,在Dencun實際操作中,並沒有採用同Celestia類似的Merkle樹的方式生成承諾,而是採用了巧妙的KZG(Kate-Zaverucha-Goldberg,多項式承諾)演算法。相比於Merkle樹證明,KZG Proof的生成過程相對複雜,但其驗證的體積更小,驗證步驟也更簡單。然而,KZG Proof需要進行可信任設定且不具備防量子計算攻擊能力。Dencun使用了Version Hash的方法,如果需要可以更換其他驗證方法。
對於現在熱門的DA專案Celestia,其採用的是Merkle樹變體。相比於KZG,Merkle樹變體在一定程度上要依賴節點的誠信,但有助於降低節點之間計算資源的門檻,維持網路的去中心化特徵。
EIP-4484的引入不僅降低了成本,也引出了安全隱患,但同時也帶來了新的機會。為了補足安全缺失,我們需要一個無需信任的儲存方案,這就是Ethstorage。Ethstorage可以以完全去中心化的方式延長DA BLOB的可用時間,補上了EIP-4484後Layer 2的安全短板。此外,Ethstorage還能解決NFT和DeFi等dApp的大量資料儲存需求,並且有助於去中心化dApp前端的需求。
目前,Ethstorage仍處於初期網測試階段,但它的前景非常值得關注。
相關報導:
– 從Pandora的爆紅,解讀ERC-404協議怎麼推動以太坊NFT革命
– .com變成錢包地址,以太坊域名合作網域註冊商龍頭GoDaddy,ENS跳漲15%
– 富蘭克林坦伯頓再攻以太坊現貨ETF!貼出「雷射眼」擁抱加密社群,大讚SOL有巨大潛力