1. 什麼是數據可用層?
數據可用性的概念不同於去中心化文件系統和數據庫,這一點在以太坊和Celestia網站上有所闡述。
- 以太坊:數據可用性,是指要保證區塊提議者發布的區塊,區塊中所包含的所有交易數據,對於其它網絡參與者來說是可用的。
- Celestia:數據可用性與最新區塊中發布的數據是否可獲取相關。
然而,去中心化文件系統和數據庫主要確保用戶存儲的數據可以訪問。他們和數據可用層解決的問題不一樣。
當然,數據可用性和去中心化存儲也有共通之處,技術上他們都使用了糾刪碼、Proof of random access等驗證方法來驗證數據的可用性。
2. 數據可用性的技術如何?
目前有多類數據可用層,包括:
- 以太坊。 ETH 作為第二層Rollup的DA(數據可用性)層。
- 以Celestia為代表的模塊化區塊鏈。 Celestia 是一個專門設計的DA 層,僅處理數據可用性,並不執行交易。它在2022年掀起了模塊化區塊鏈的潮流。這樣的模塊化區塊鏈還有Avail等項目。
- EigenDA 和其他DA 產品。通過委員會確保數據可用性。
以太坊
以太坊已經是L2 Rollup的DA層。以太坊Rollup把二層的交易數據打包、提交到以太坊智能合約中,由以太坊來存儲L2的數據,並保證這些交易數據的數據可用性。
雖然rollup 可以通過鏈下計算擴展ETH 的吞吐量,但它們的容量受限於L1 ETH 區塊鏈數據吞吐量。因此,Rollups 要使用以太坊作為數據可用性層,以太坊需要增加其數據存儲和處理能力。
以太坊在積極推進Danksharding升級,Danksharding可以提升以太坊存數據的能力,使ETH成為更強大的DA層。
- 在Danksharding的計劃裡,數據可用性被委託給各個分片,每個驗證者只需要為其分片運行完整節點,並以輕客戶端容量運行其他分片。分片增加了Rollup的數據空間,因為存儲數據的工作被拆分到不同的分片中。
- Proto-danksharding(EIP-4844)是Dankshading的一個初步實現, 預計今年下半年上線。 Proto-danksharding定義好了關於數據塊Blob的新的交易類型,以及驗證Blob所需要的預編譯代碼,實現了大部分Danksharding的核心邏輯。每個blob 的大小約為125kB,而塊只有90kB。目前,每個塊最多可以掛載八個blob,導致額外存儲1MB。 Danksharding中驗證者做了分片後,只需要下載部分Blob數據;Proto-danksharding里數據是沒有被分片的,驗證者仍然要下載並直接驗證所有Blob的數據可用性,因此這是Danksharding中的一步。 EIP4844 實施後,Blob 可以在相同的gas 消耗下存儲比Calldata 多10 倍的數據。 Rollup 的數據將來可以存儲在Blob 中,將交易費用降低一個數量級。一旦完全實施Danksharding 將變得更加便宜。
- 總的來說,Danksharding能讓以太坊的數據存儲能力提升,使得ETH被用做DA的成本下降,從而成為更強大的DA層。
Danksharding的技術原理:
- 現在以太坊上的數據全部存在鏈上,強制區塊生產者將所有交易數據發佈到鏈上,並讓驗證節點下載。 Danksharding引入了一種數據Data blob,存儲在鏈下,只把數據的KZG承諾放在鏈上。存儲時間縮短至1-3 個月,blob的空間大一個就有~125kB(ETH區塊大小只有~90kB)。因此數據存儲時間變短,數據量變大。
- 節點驗證一個blob就是查詢blob是否可用,即是否能從網絡中下載到它。 Danksharding依靠數據可用性抽樣來驗證網絡是否已看到blob 的全部內容。
- 由於數據存儲時間縮短,因此可檢索性降低,即對一個月以前的歷史blob的查詢能力降低。為了安全性,EVM不能訪問鏈下的Blob數據,只能訪問Blob的鏈上承諾,防止久遠Blob無法訪問導致EVM運行失敗。
- 為了驗證Blob數據的可用性,ETH使用了數據可用性採樣的檢驗方法。對數據進行多輪隨機抽取少量樣本,驗證其可用性。這使得區塊鏈節點不需要下載完整的Blob就可以驗證其可用性。
- 通過使用糾刪碼技術來冗餘數據片段,來提高數據的可恢復性,且糾刪碼和數據可用性採樣結合,能防止節點隱藏數據。
以Celestia為代表的模塊化區塊鏈DA層
Celestia 是一個模塊化區塊鏈,僅對交易進行排序和發布,而不執行它們。通過將共識層和應用執行層解耦,Celestia 模塊化了區塊鏈技術棧並為去中心化應用程序構建者打開了新的可能性。
- Celestia 負責DA 層,由ETH等其它網絡負責共識和結算,應用程序鏈負責執行。
- Celestia 負責DA 層和共識層,而結算和執行由應用程序鏈處理。或者,結算可以使用Cevmos,而執行仍由應用程序鏈負責。
Celestia對數據可用性的驗證方法和以太坊類似,採用了二維Reed-Solomon 糾刪碼,設計了一套隨機抽樣來驗證數據、以及恢復數據的方案從而確保數據可用。
Celestia也與ETH有很大的不同。
- Celestia專心只做Rollup的DA層和共識層,而ETH還給Rollup做了結算層。
- Celestia只做DA層和共識層,不具備圖靈完備的智能合約虛擬機,不支持智能合約。
- 以太坊的Rollup不能分叉,Celestia的Sovereign Rollup是可以分叉的。
- Rollup通過橋和Celestia互通資產,由於Celestia不支持智能合約,跨鏈橋的功能有限,可能只能轉移DA Token。
Celestia的生態也發展很快。
鏈下DA層
鏈下DA層主要包括兩種
- 數據可用性委員會
- 區塊鏈生產者和可信方組成數據可用性委員會(DAC) ,DAC在鏈下存儲交易數據,不存到區塊鏈上。 DAC需要在發生爭議時提供。 DAC 成員也會發布鏈上證明,以證明上述數據確實可用。
- 比如,validiums 和plasma 就使用off-chain存儲來減少鏈上數據。
- PoS的數據可用性委員會
- 委員會存入了押金,加了獎懲機制,以提升DAC的可信程度。其它方面和上述DAC相同。
- 比如,EigenDA建立於二次質押協議EigenLayer上,吸引以太坊驗證者來參與EigenDA的數據可用性保證工作。
3. 現在有哪些數據可用層?
目前,有多個數據可用性項目,包括:
- ETH:目前,ETH 作為L2 optimistic rollups 和zk rollups 的數據可用性層。下半年EIP4844(Proto-Danksharding)上線將利好L2的發展,他會提升以太坊存數據的能力,降低存儲成本。
- Celestia: Celestia 主要為共識和數據可用性層設計。 Celestia 的測試網絡於2022年6月上線,Celestia帶火了區塊鏈模塊化。 Celestia 需要建立自己的生態系統,並與Ethereum 建立競爭關係。目前已經發展出了一些生態項目。
- Avail: Avail 最初由Polygon 在2022年6月發布。然而,在其創始人離開Polygon 後,Avail 成為了一個獨立的模塊化區塊鏈項目,並發布了一個測試網。和Celestia類似Avail 是一個獨立的共識和DA 層,就像Celestia 一樣。 Avail 曾經計劃將主網橋接到Polygon 並使用MATIC 作為基礎貨幣。與Celestia 代幣相比,MATIC 是一個更成熟的代幣。
- EigenDA: EigenDA 是一個基於以太坊的DA 層,通過ETH 重新抵押激勵驗證器維護DA網絡,消除了Celestia 所需的啟動負擔。
- 其他鏈下DA: Validium將交易數據存儲在鏈下,用ETH做共識和結算。隨著Celestia 和Danksharding 的廣泛採用,Validium的採用可能會逐步降低,甚至退出。
總結
- 數據可用性層是擴展區塊鏈的一種有前途和重要方法。以太坊是Layer 2 Rollup的數據可用層。 Celestia希望建立一個比以太坊更純粹的數據可用層。還有一些鏈下的數據可用層方案如EigenDA等。
- 下半年EIP4844的上線使得ETH成為更強大的DA層,Celestia的主網也可能於今年下半年上線。目前的數據可用性產品各有優勢,值得我們今年密切關注。
- Celestia 的技術仍需要市場驗證,未來ETH 和Celestia 在技術上也可能會相互靠攏。