買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > KuCoin > Info

以太坊:模塊化結構下 EIP-4844 的設計邏輯_LINE Blockchain

Author:

Time:1900/1/1 0:00:00

注:本文基于 Optimism 團隊研究員、前以太坊基金會研究員 Protolambda 于今年 7 月在 EthCC Paris 所做的演講進行編譯,并參考了其他優秀的文章進行整理 (在文末列出)。

引入

合并 (The Merge) 的關鍵里程碑已于 9 月 15 日完成,根據 Vitalik 在 2021 年底發布的以太坊協議開發路線圖,下一個重要階段是 The Surge —— 解決以太坊可擴展性問題,降低交易費并提高吞吐量。The Surge 圍繞以 rollup 為中心的路線圖開發,在繼承以太坊網絡安全性的同時,進一步提高 L2 rollup 的可擴展性。

cr:https://twitter.com/ethereumcn/status/1466731320537612296?s=46&t=9yOAkX-0nd_xvSJIJ8_Pmw

本文主要介紹這一技術路線圖中的一個關鍵工作:EIP-4844 Proto-danksharding,它如何使得 rollup 所需要使用的數據變得更加便宜以及獲得更多存儲數據的容量 (capacity)。EIP-4844 是對以太坊網絡的一次升級,它將使得 rollup 的開銷降低 10-100 倍。它通過向以太坊引入一種新的交易類型來實現,這種交易類型攜帶短暫存在的 blob 數據。這種新的數據存儲方式是為了存放 rollup 的一些數據,它會比目前 calldata 的方式便宜得多。此外,4844 是完整版 Danksharding (在前面的基礎上再擴容 10-100 倍!) 的前提條件。

以太坊分片技術路線圖

對于以太坊分片設計的現狀,前以太坊基金會開發者 Protolambda 做了一個簡潔的描述:

zkSync Era已支持Paradigm創建的模塊化工具包Foundry:6月6日消息,據官方消息,開發人員現在可以使用 zkSync Era 的 Foundry alpha 版本來部署合約、橋接 L1 與 L2 間的資產、發送交易等。Foundry 由 Paradigm 等創建和維護,是一個用于以太坊開發的模塊化工具包,可增強 EVM 鏈上的安全智能合約開發。

zkSync Era 的 Foundry alpha 版本中的 zkCast 與合約交互并存入、提取或查詢區塊鏈數據,如賬戶余額或區塊信息;zkForge 使用特殊的編譯器編譯合約,并將它們部署到 zkSync Era Localnet、測試網和主網。[2023/6/6 21:19:50]

帶有 “crosslink” 的可執行的 “分片鏈” 已被淘汰,而是更新為:在信標鏈中實現 EVM;使用 “數據可用性采樣” 的以 rollup 為中心的以太坊路線圖,擴容以太坊基礎層而無需增加應用環境的復雜性。

之所以做這樣的簡化,主要有兩個原因:

避免添加更多的 L1 復雜性。分片的規范已重寫多次,許多研究都過于抽象乃至實現的日子遙遙無期,并且讓 L1 變得僵化。

而如果能夠巧用封裝復雜性和應用區塊鏈模塊化結構,以太坊基礎層作為 rollup 的數據可用性層,將計算的重任交給作為執行層的 L2。這樣 L1 只專注于解決數據問題,不同的 rollup 團隊解決各自的開發問題,從而大大地提升擴容的效率。

封裝復雜性和模塊化在以太坊上的應用

模塊化區塊鏈是擴容中一個非常重要的概念。模塊化意味著“封裝復雜性”,這允許我們在不同的模塊中添加可擴展性。根據 Vitalik 的文章《協議設計中的封裝復雜性和系統復雜性權衡》中的解釋,當一個系統包含著一些復雜的子系統,但對外提供一個簡單的“接口”時,就會出現“封裝復雜性”;當系統的不同部分甚至不能完全分離,并且相互之間具有復雜作用時,就會出現“系統復雜性”。

Cosmos生態應用鏈Noble將原生USDC引入模塊化區塊鏈Celestia:5月31日消息,Cosmos 生態應用鏈 Noble 宣布將原生 USDC 引入模塊化區塊鏈 Celestia,為 Celestia 提供對原生穩定幣和其他加密資產的直接訪問,開箱即用。此外,Noble 將為 Celestia 上的 Sovereign Rollups 引導穩定幣流動性,Sovereign Rollup 開發人員可以直接訪問和使用 USDC 和其他開箱即用的穩定幣進行 Gas 和鏈上交易,并將能夠在專用區塊鏈上啟動一個新應用程序,在 Noble 上鑄造 USDC,通過 IBC 或 Hyperlane 連接他們的區塊鏈,啟動便宜且快速的穩定幣交易。[2023/5/31 11:49:54]

2020 年 10 月,Vitalik 發布了文章《以 Rollup 為中心的以太坊路線圖》,確定了為 L2 rollup 擴容協議保駕護航的基本思路:將執行層 (L2) 和數據層 (L1) 分離,以太坊共識層 (L1) 為其提供安全保障。

分離執行層和數據層的好處是,數據層的發展可以保持相對穩定,而執行層 (即 rollup) 則可以更加多自主性、更加創新地快速迭代,無需獲得 L1 核心開發者社區的的許可進行升級。

上面簡單介紹了以 rollup 為中心的以太坊路線圖中的區塊鏈分層情況,那在 PoW 與 PoS、L1 與 L2 之間的模塊化架構是怎樣的呢?

cr: Protolambda

圖中展示了合并前的單一型 PoW 鏈 vs. 合并后的 L1 共識層 (PoS) 和 L1 執行層 (EVM) 之間的模塊化關系。而 PoS 和 EVM 之間的合并技術是通過一個叫做 ”Engine API“ 的東西實現的。下圖是合并后完整客戶端的樣子,中間的 API 使得以太坊共識層 (PoS) 和執行層 (PoW) 之間可以實現通信。這是以太坊主網上的首個模塊化設計。

Optimism推出模塊化組件OPStack,支持構建自定義鏈“op-chains”:10月18日消息,以太坊二層解決方案Optimism推出模塊化組件OP Stack,支持組裝構建自定義鏈“op-chains”以適應任何用例,此外通過共享排序和消息傳遞層,未來“op-chains”之間的界限將會消失,形成一個單一的邏輯鏈“Superchain”,從而將集體的資源開放給插入“Superchain”的許多不同的“op-chains”。[2022/10/18 17:30:00]

cr: Danny Ryan

那么 L1 和 L2 之間是如何連接的呢?

可以看到上圖中,L1 和 L2 之間會有一個 API,它們分別是兩套軟件。

這是以太坊加上欺詐證明和有效性證明之后的示意圖,相當于將 L2 作為一個執行層連接以太坊 EVM,然后你維持當前的 L2 執行層。但這也會有一個問題,因為就算可以堆疊執行層,但是這樣效率不高,所以我們需要一個數據層。

如上示意圖,L1 作為數據層,L2 負責執行計算。

數據可用性是擴容的關鍵瓶頸

以太坊目前面臨的一大瓶頸就是數據可用性,這是我們接下來一年里增加可擴展性所需要提高的范疇。

模塊化區塊鏈網絡Celestia推出模塊化研究員支持計劃:8月11日消息,模塊化區塊鏈網絡Celestia推出模塊化研究員(Modular Fellows)支持計劃。模塊化研究員將獲得技術支持和超過三個月津貼,以建立他們選擇的項目。目前潛在項目創意包括新的執行層、Rollup基礎設施、DeFi協議的模塊化版本、NFT平臺和域名服務。模塊化研究員需是對模塊化區塊鏈有深刻理解并有開發經驗的工程師。首批共計10個名額。[2022/8/11 12:18:19]

首先我們看一筆 rollup 交易包含哪些開銷:

執行開銷 (網絡中所有節點執行交易并且驗證其有效性的開銷)

存儲/狀態開銷 (使用新的值更新區塊鏈 “數據庫” 的開銷)

數據可用性開銷 (將數據發布至 L1 的開銷)

其中,前兩筆開銷都是 Rollup 網絡上的花費,占總開銷的比例非常低。而數據可用性開銷才是擴容的關鍵瓶頸。

我們為什么需要這種數據呢?

保證數據的可用性可以讓任何人都可以無需許可地重構狀態。

L2 提供的可擴展性是通過將執行檢查和保證數據安全這兩項工作分離而獲得的。這讓我們有機會同步以及獲取驗證狀態的數據,而這個過程中定序器不會對其有直接影響。

目前,rollup 上傳數據到 L1 都是以 calldata 的形式。這種方式非常貴,calldata 是一種沒有修剪過的非常沒有效率的數據形式,需要以一種迂回的方式將數據存放在以太坊,一個非 0 字節就需要花費 16 gas。所以出現了兩種粗暴的降低這種開銷的方法:

calldata 壓縮,不少 rollup 項目都已經開始研究壓縮 calldata 的算法并集成到他們的系統中。

EIP-4488,將每個非 0 字節的 calldata 開銷從 16 gas 降低到 3 gas。

模塊化區塊鏈網絡Celestia已啟動其首個測試網Mamaki:5月25日消息,模塊化區塊鏈網絡 Celestia 已啟動其首個測試網 Mamaki,測試網支持用戶操作節點、接收測試網 Token、從驗證者節點獲得授權以及在錢包之間發送交易。

Celestia(此前為 LazyLedger)是第一個模塊化區塊鏈網絡。它是一個可插拔的共識和數據可用性層,使任何人都可以快速部署去中心化的區塊鏈,而無需引導新的共識網絡的開銷。Celestia 首席運營官 Nick White 表示,Celestia 是一種用于 Web 3 的云計算網絡,用戶能夠在共享共識層的特定應用鏈上啟動去中心化應用程序。[2022/5/26 3:42:04]

但是使用 calldata 的方式始終是不可持續的,因為這會帶來 L2 不需要的遺留開銷。那么有沒有更優雅的方法呢?

數據可用性、數據可恢復性、長期數據可用性等等這些不同類型的名詞,它們之間的差異就是可用性的時長各不同。譬如說,你希望這些數據的可用時間足夠長來挑戰定序者、重構狀態。事實上,你不需要數據是永遠可用的。在以太坊的假設中,存儲超過一年的數據,用戶可能在某個地方找到它,可能會將它同步到某個點,而不需要一直追溯到創世區塊。

而 EIP-4844 這個提案則是讓我們能夠對數據做一些修剪,因為在這個提案下,數據只需要保留其可用性足夠長的時間,讓誠實的網絡參與者重構完整狀態并且挑戰定序器。

EIP-4844 Proto-danksharding

EIP-4844 提議什么呢?

將數據可用性添加至以太坊且不會破壞可組合性,也就是說我們可以在 L1 有一個執行層,同時可以在上面添加數據可用性。

如圖所示,我們現在有 L1 共識層、L1 執行層、L1 數據層、L2 執行層。在這樣的分層架構下,我們獲得了封裝性,然后我們不同的團隊可以針對不同的問題,并單獨地提高某一層的可擴展性。

引入新的交易類型 Blob-carrying Transaction

EIP-4844 引入一種新的交易類型,這種交易類型與普通以太坊交易相比多了一個 blob 的位置用來存放 L2 的數據。比較獨特的是,Blob 數據在一個月之后就會被節點刪除,從而很大地節省了存儲空間。

那么我們如何添加這種數據呢?

圖:一個 “Blob” 的生命周期,cr: Protolambda

我們稱這種數據為 “blob”,這是一種非常模糊的數據形式,類似于一種字符串。“Blob” 會被附加到一筆交易中,這筆交易就像其他交易一樣在以太坊系統中運行。

但附加的內容具有自己的生命周期。請看上圖圖示:首先,rollup 運營者會納入普通的交易,生成 L2 交易捆,目前是通過 calldata 的方式將交易 batch 直接發送至 L1。而有了 4844 之后,新增了一種攜帶 “blob” 數據的交易類型 “blob 交易”。這個 “blob 交易” 負責支付交易費,將承諾 (commitment) 包含進交易中以有效地證明該 blob 中存在的任意數據。但是附加的內容 (即 blob 數據) 本身是與 “blob 交易” 分離的,可以把這種數據看作是一個挎斗 (sidecar)。

(Sidecar 在不改變主應用的情況下,會起來一個輔助應用,來輔助主應用做一些基礎性的甚至是額外的工作。這個 sidecar 通常是和主應用部署在一起,所以在同樣環境下運行。這其中還有一些性能上的考慮,sidecar 如果和主程序網絡通信上有延遲就會造成性能問題。這個輔助應用不一定屬于應用程序的一部分,而只是與應用相連接。這就像是挎斗摩托車,每個摩托車都有自己獨立的輔助部分,它隨著主應用啟動或停止。因為 sidecar 其實是一個獨立的服務,我們可以在上面做很多東西,例如 sidecar 之間相互通信、或者通過統一的節點控制 sidecar ,形成網絡服務 Service Mesh。來源:https://blog.csdn.net/lxlmycsdnfree/article/details/126286243)

blob data vs. calldata

要想知道兩者的區別,我們首先要了解以太坊合并前以及合并后的區塊組成。

上圖為合并后的信標區塊,執行層被包裹在共識層里,而 EL 最核心的部分就是 ExecutionPayload (執行負載)。

EL 和 CL 分別負責兩個主要功能,前者執行 EVM,后者負責 PoS 共識。信標區塊中包含 EL  的ExecutionPayload,外層的狀態根為信標鏈狀態的更新,EL 內的狀態根則是 EVM 賬戶狀態更新。

現在我們重新來看 Calldata 和 blob data 之間的區別。

首先,這兩種數據類型有不同的生命周期。Calldata 存在于 “execution payload” 中 (普通的 L1 交易),而 blob 數據存儲于共識層中。也就是說 “blob” 存儲在一個 Prysm 節點或者 Lighthouse 節點中,而不是在 Geth 中。然后這些共識層節點會在特定一段時間之后對 blob 數據進行修剪。

“Blob” 在網絡的運作流程如下圖所示:

定序器提供數據 ->

L1 敲定數據 ->

將 Blob sidecar 從 Blob 交易中分離出來 ->

Blob 交易中的執行發生在 Execution Payload 中 ->

rollup 驗證狀態所需要的數據則去到另一側的數據庫中,L2 驗證者可以下載這些 sidecar 并同步 L2。

Blob 有兩個顯著的特點:

第一就是不被合約讀取,下圖是一筆 blob 交易的樣子,可以看到 EVM 不會讀取 blob。

就像前面所介紹那樣,blob data 存儲在共識層節點中,和 calldata 需要被合約讀取所消耗的資源相比要便宜得多。

第二就是,一個月后,共識層節點會對 blob 內的值進行刪除。區塊空間一直以來主要都由交易占用著,而隨著 L2 的發展,L1 基礎層轉而成為 L2 的數據層,calldat 就會占用更多的區塊空間。能夠定期刪除 blob 數據的話,可以很好地解決 L1 狀態膨脹的問題。

總結

隨著 Rollup 技術的逐漸完善,數據可用性成為各個解決方案更進一步擴容的瓶頸。而 L1 作為一個為 Rollup 保駕護航的基礎層,它不僅可以為 rollup 提供安全保障,還可以充當 rollup 的數據層,讓可擴展性實現指數級的提升。Proto-danksharding 作為完整版 Danksharding 的前提條件,通過引入 攜帶 “blob data” 的交易類型這樣的一個新設計,讓基礎層更無壓力地存放 L2 數據,同時不影響數據可用性的安全性。

金色早8點

1435Crypto

區塊律動BlockBeats

吳說區塊鏈

金色財經

比推 Bitpush News

blockin

Block unicorn

Foresight News

Odaily星球日報

Bankless

DeFi之道

Tags:BLO以太坊ROLROLLLINE Blockchain以太坊幣今日價格行情美元TrollCoinroll幣是什么意思

KuCoin
ANC:金色觀察 | Binance能贏下第二次穩定幣戰爭嗎?_BANCC

金色財經 區塊鏈10月24日訊 今天,FTX創始人SBF在社交媒體稱Binance此前將USDC轉換為BUSD,預示著第二次大規模穩定幣戰爭已經開始,但這次不同的是.

1900/1/1 0:00:00
DEFI:對話 Hop Protocol:構建可擴展代幣跨鏈橋_EFI

本文轉自公號:老雅痞 信息來源自substack,略有修改,作者Aylo Chris Whinfrey是Hop Protocol的創始人,他正在解決該領域最復雜的挑戰之一:橋接.

1900/1/1 0:00:00
加密貨幣:沃爾瑪 vs. 星巴克:跨國巨頭如何將Web3帶入主流_WEB

金色財經 區塊鏈11月6日訊 被譽為下一代互聯網的Web3好似黑暗中的一道曙光,掀起了一股傳統品牌的參與熱潮.

1900/1/1 0:00:00
DEF:借貸還將在DeFi進化_WDEFI幣

DeFi從數字貨幣背后的區塊鏈技術中汲取靈感,不受單一的中心化來源的控制。DeFi之所以與眾不同,是因為它將區塊鏈的使用從簡單的價值轉移擴展到更復雜的金融應用.

1900/1/1 0:00:00
CBD:易綱談央行數字貨幣:對個人敏感信息匿名化處理 第三方不可見_bdc幣目前價格

10月31日,央行網站發布易綱行長在“2022年香港金融科技周”活動上的講話。全文如下各位來賓,女士們、先生們: 大家好! 感謝余偉文總裁的邀請.

1900/1/1 0:00:00
CRYPT:Web3創投圈:機會、困境、理性、泡沫_CRY

2022已接近尾聲,緊跟風口的投資圈卻深感迷茫,疫情下的新消費陷入沉寂、大熱近兩年的生物醫藥迎來二級市場冷靜期、TMT投資人相繼轉向新標的,種種跡象不難顯示出.

1900/1/1 0:00:00
ads