解讀數據可用性賽道:如何講好模塊化區塊鏈的敘事?

原文標題:《 一文讀懂數據可用性賽道的發展現狀》

原文作者: 0x1

數據可用性(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 Token持有人(監護人)保護。他們通過簽署區塊來跟踪zkPorter 端的狀態,以確認zkPorter 賬戶的數據可用性。監護人使用zkSync Token 參與權益證明(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 層的責任。

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

Total
0
Shares
Related Posts