現有的這些數據可用性解決方案是探路人,但我總感覺這些方案還是差些興奮點。

作者: 0x1,IOBC Capital 

數據可用性(Data Availability)主要存在於輕客戶端節點相對全節點的語境下。對於輕客戶端節點的數據可用性問題,行業內已經達成共識——採用糾刪碼(erasure codes)來解決。

不僅輕客戶端節點有數據可用性問題,Layer1+Layer2 的敘事也好,Modular Blockchain 的敘事也罷,都會存在數據可用性問題。

目前來看,行業裡針對數據可用性問題,主要有以下三個方面的方案:

一、在 L1 鏈上存放數據的降成本方案——EIP-4488 和 EIP-4844

以太坊用 Rollup 擴容時做一筆交易,主要有三類費用:執行費用(網絡中所有節點執行交易並且驗證其有效性的費用)、存儲/狀態費用(更新新狀態的費用)、數據可用性費用(將數據發佈到 L1 的費用)。其中,數據可用性費用佔大頭。

目前 Rollup 上傳數據到 L1 是以 Calldata 的形式,這種方式非常貴。所以提出了 EIP-4488,可以將每個非 0 字節的 Calldata 成本從 16Gas 降低到 3Gas,但其實這個費用仍然挺高的。

然後,又提出了 EIP-4844 提案,即 Proto-Danksharding。引入了一種稱為 Blob carrying Transactions 的交易格式。這種交易格式與普通的交易格式相比,多了一個 Blob 的位置可以用來存放 L2 的數據。而且,Blob 數據在一個月後會被節點刪除,從而大幅節省了存儲空間。

Blob 這種交易格式能夠提供比 Calldata 更廉價的數據可用性。主要有兩方面原因:一方面,Callda 存在於 Execution Payload 中,而 Blob 數據存儲於 Prysm 節點或者 Lighthouse 節點中(而不是在 Geth 中),相比而言 Calldata 需要被合約讀取時所消耗的資源要多很多;另一方面,Blob 數據是短期存儲,一個月後節點會刪除 Blob 數據。

總而言之,這可以理解為 Ethereum 在 L1 鏈上降低數據可用性成本的一個方案。

另外,也提了一個配套的驗證數據可用性的方案——數據可用性抽樣(DAS,Data Availability Sampling),節點通過 DAS 檢查,可以只下載一些隨機選擇的塊來驗證一個塊是否已發布。由於 DAS 可以對區塊數據做並行化驗證,所以未來數據分片(Data Sharding)的數量即使很多,也不會增加單個驗證節點的負擔,反而會刺激更多驗證節點加入,從而保證驗證節點的充分去中心化。為了實現 DAS,引入了糾刪碼技術;同時為了確保糾刪碼被正確編碼,又引入了 KZG 多項式承諾(KZG Polynomial Commitments)。

上述一系列解決方案之後,Ethereum 節點(或者輕客戶端)只需要隨機下載一部分數據塊,就能驗證所有數據是可用的。

二、執行層 Rollup 推出的數據可用性方案

目前頭部的執行層 Rollup 也有自己的數據可用性解決方案,以 StarkEx、zkSync2.0、Polygon zkEVM 等為例。

StarkEx

StarkEx 是一個用於創建許可的、特定於應用程序的擴容解決方案框架。目前有包括 dYdX、Immutable、Sorare、DeversiFi、Reddio 等項目採用 StarkEx 解決方案。

StarkEx 具有多種數據可用性模式:Rollup、Validium、Volition。這三種模式都是基於有效性證明。在 Rollup 模式中,所有數據都在鏈上提交(data on-chain);在 Validium 模式中,數據保持在鏈外(data off-chain),只有對最近狀態的承諾以及該狀態的有效性證明提交到鏈上;Volition 模式是一種混合模式,在這種模式下用戶可以自行選擇單個交易粒度的數據存儲模式是鏈上還是鏈下。

由於 Validium 的數據保持在鏈外,只需要把最近狀態的承諾和證明提交上鍊,所以 Validium 交易費用更低,同時 TPS 也更高,但代價是 StarkEx Validium 的運營商(Operators)可以凍結用戶的資金。StarkEx 引入了一個獲得許可的數據可用性委員會(DAC,Data Availability Committees),DAC 必須通過其法定人數對狀態的每次更新進行簽名來確認它已收到數據。目前在 StarkEx 中,DAC 由 8 名參與者組成。

zkSync

zkSync2.0 引入了一個新的整體架構,提供 zkRollup 和 zkPorter 兩種賬戶的混合。但這兩部分也是可組合和可互操作的:zkRollup 端的合約和賬戶能夠與 zkPorter 端的賬戶無縫交互,反之亦然。從用戶的角度來看,唯一明顯的區別是 zkPorter 賬戶的費用便宜 100 倍。

zkRollup 狀態具有鏈上數據可用性,zkPorter 則採用鏈下數據可用性。具體而言 zkRollup 的數據可用性在 L1,zkPorter 的數據可用性在 L2。其中,zkRollup 的交易數據通過 Calldata 發佈到 Ethereum,這個就是常規操作,有特色的是 zkPorter 的數據可用性方案。

zkPorter 通過結合 zkRollup 和分片思想的混合方法來處理數據可用性。它可以支持任意多個分片,每個分片都有自己的數據可用性策略,由分片的智能合約定義。分片的選擇在個人賬戶級別進行控制。相當於把數據可用性委託給各個分片,這些分片可以自由選擇不同的解決方案。

zkPorter 的分片主要包括:Shard 0、Guardians Shard 和 Protocol X Shard。

Shard 0 是一個簡單的 zkRollup shard,具有底層以太坊 L1 的完整數據可用性和安全保證。所以 Shard 0 是 zkPorter 內部運行成本最高的分片,大約是在主網上交易成本的 1/100。

其他分片則是在自己的智能合約上定義自己的數據可用性策略。zkPorter 的分片交換鏈上數據可用性,使交易成本進一步降低 10-100 倍,TPS 增加超過基礎分片。zkPorter 引入了一種可選的驗證器機制——zkPorter Guardians——這種機制使得協議能夠邀請協議利益相關者作為協議分片上的數據可用性保證人

zkPorter 的數據可用性由 zkSync 代幣持有人(監護人)保護。他們通過簽署區塊來跟踪 zkPorter 端的狀態,以確認 zkPorter 賬戶的數據可用性。監護人使用 zkSync 代幣參與權益證明(PoS)。這也就是所謂的數據可用性的加密經濟保證。

Polygon zkEVM

Polygon zkEVM 是一種基於加密證明的去中心化以太坊 Layer2 擴容方案,可為交易提供驗證和快速確定性。和 Polygon Avail 一樣都是 Polygon 推出的擴容方案,側重點有所不同。雖然他們推出了 Polygon Avail 這種通用的數據可用性方案,但 Polygon zkEVM 還是設置了自己的數據可用性方案。

Polygon zkEVM 也是採取混合模式的數據可用性,可以選擇 Validium 或者 Volition。Validium 模式下,數據存儲在鏈下,只有有效性證明在鏈上發布;Volition 模式下,對於某些交易,數據和有效性證明都保留在鏈上,對於其餘交易則只有證明在鏈上。

Scroll

當然,也有尚未設計自己的數據可用性方案的 zkRollup,比如 Scroll。

其 CTO Ye Zhang 在接受鏈捕手採訪時表示,“Scroll 暫時沒有設計專門的數據可用性方案。對以太坊技術的時間線還是比較樂觀的,不論是 Danksharding 還是 Proto-Danksharding。其次,引入額外的數據可用性方案會讓系統整體的安全性有一定的妥協,所以我們認為長期來看最好還是用以太坊作為原生的數據可用層。”

二、數據可用性的通用解決方案

除了 Ethereum L1 和 Rollup L2 在解決數據可用性問題及降低數據可用性成本外,還有一些項目也在嘗試推出數據可用性的通用解決方案。這類項目有望在未來的模塊化區塊鏈中承擔起數據可用性層的重要作用。目前主要有 Celestia 和 Polyon Avail 兩個項目。

Celestia

Celestia 是一個模塊化區塊鏈,專注於數據可用性層。Celestia DA 層有兩個關鍵特徵:數據可用性採樣(DAS)和命名空間默克爾樹(NMT)。DAS 使輕節點無需下載整個區塊即可驗證數據可用性;NMT 使 Celestia 上的執行和結算層能夠下載僅與它們相關的交易。Celestia 要成為一個獨立的數據可用性層,有三個核心事項:

  • Rollup 將所有交易數據傳遞給 Celestia;
  • Celestia 在其網絡上發布所有這些數據;
  • Ethereum 確認 Celestia 已經存儲和發布了這些數據,並且可以隨時訪問。

總而言之,Celestia 通過糾刪碼(Erasure Code)+欺詐證明+經濟約束和激勵機制實現了這個通用的數據可用性解決方案。

Polygon Avail

Polygon 是一個生命力很強的項目,其團隊規劃和研發能力非常強。Polygon 經歷了擴容技術方案從狀態通道、Plasma 到 Optimstic Rollup、zk Rollup 的演變,Polygon 團隊內部也探索了多種擴容方向,現在也仍然保持著多個擴容方向的推進,比如:Polygon Avail、Polygon Zero、Polygon Miden、Polygon zkEVM 等。Polygon 就像是一個 Layer2 聚合器,聚合了多種擴容方案。

Polygon Avail 是一個旨在解決以太坊擴容方案的數據可用性的項目。官方在官網上將 Polygon Avail 定義為一個模塊化區塊鏈,對應數據可用性層。

Avail 可以為任何輕客戶端提供數據可用性的高保證,當然在官方文檔中也直言 “並不比任何其他網絡為輕客戶端提供更高的 DA 保證”。Avail 專注於通過利用 KZG 多項式承諾、糾刪碼和其他技術來允許輕客戶端高效且隨機地小樣本採樣,從而證明區塊數據可用而無需下載全部區塊以驗證其完全可用性。

與 Celestia 一樣,Polygon Avail 也是一個通用的數據可用性解決方案。與 Celestia 不同的是,Celestia 採用欺詐證明確保糾刪碼正確,而 Polygon Avail 則採用 KZG 承諾。Celestia 實現起來比較簡單,但由於其糾刪碼和輕節點採樣數據的規模較大,因此需要的通信帶寬略高。Avail 涉及相對複雜的加密實現,難度稍大。它的優點是糾刪碼規模小,輕節點採樣數據量小,帶寬要求低。

總結

以上三個方面的方案都是旨在解決鏈上數據可用性問題,或在 L1 上引入存放數據的新方式,或以模塊化的視角看待區塊鏈的發展然後去做通用的數據可用性層,或在 L2 上設計 Data off-chain 的廉價數據可用性方案。圖片我感覺這些方案在未來很長一段時間會共存。Layer1+Layer2 的架構下,“Blob” 取代 “Calldata” 承接 Layer2 的數據可用性,Validium、Volition、zkPorter 則以有限相關方範圍內的經濟約束和激勵機制確保 Layer2 本身也具備數據可用性解決方案。模塊化區塊鏈的敘事下,Polygon Avail 和 Celestia 類通用的數據可用性方案則以相對更加去中心化的方式,在未來承擔起 DA 層的責任。

同時,更希望能看到更多優秀的創業團隊在數據可用性領域的探索。現有的這些數據可用性解決方案是探路人,但我總感覺這些方案還是差些興奮點。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。