一些區塊鍊為了實現更高的性能,在去中心化的程度上做出了妥協,但隨著發展和進化,總會出現性能跟不上需求的情況。

原文:How the Data Availability Layer can Shape the Future of Blockchain  (Huobi Research)

編譯:Evelyn,W3.Hitchhiker

封面:Photo by Conny Schneider on Unsplash

摘要

隨著區塊鏈生態系統的發展,使用 Ethereum 的成本一直居高不下。擴容解決方案,Rollup,需要將壓縮的交易數據上傳到 Ethereum 主網,以獲得數據可用性(DA),這導致鏈上存儲成本仍然高於理想水平。為了滿足 Rollup 數據可用性和降低成本的需求,已經有人試圖建立一個獨立的 DA 網絡。

DA 網絡在 Ethereum 驗證者和自己的全節點的監督下,確保 Rollup 的交易數據與它的網絡中的數據一致。它還通過輕節點採樣驗證確認這些數據在其網絡中發布,並使用數據可用性證明來說服以太坊相信 DA 網絡已經存儲和發布了這些數據。

雖然 DA 層在短期內會同 EIP-4488 和 EIP-4844 競爭,但由於其強大的可擴展性,它的普及和產生相對穩定的現金流的能力在長期看來是可行的。

從更廣泛的角度來看,數據可用性層是區塊鏈模塊化進程中的最新一步,它形成了"共識層-執行層-數據可用性層"相互分離的結構。由於區塊鏈的三難問題,在保證高度去中心化和安全的前提下,提高可擴展性的最佳方式是減少主網的任務,接入額外的執行層,然後再接入獨立的 DA 層。

這樣做的好處是,通過分工,使整體的性能大於各部分的總和。隨著時間的推移,模塊化區塊鏈可能會在性能和成本方面更好地滿足人們的期望,並反過來引導其他公鏈擁抱模塊化。

什麼是數據可用性?

1.1 數據可用性的定義和含義

隨著區塊鏈生態系統(尤其是以太坊)在過去兩年中變得更加發達,對於一個交易量在不斷增加的網絡來說,擴容已經成為一個十分關鍵的優先事項。擴容的一種方法是鏈下擴容,這意味著其他情況下,計算是在鏈下進行的,只有鏈下的狀態根和其他必要的信息才會同步到鏈上。由於大量的計算是在鏈下進行的,它減少了以太坊主網的工作量,實現了在同一時間處理更多交易的目標。最受歡迎的解決方案是 Rollup,它是最有希望實現鏈下擴展的方案,它涉及到將壓縮的交易數據上傳到主網,以確保其狀態可以得到以太坊網絡的保護,並增強安全性。

隨著 Rollups 規模的增長,需要上傳的數據量也在同步上升。一方面,這增加了以太坊的負擔,而另一方面,它也提高了 Rollups 的成本。為了降低 Rollups 的成本和 Ethereum 的壓力,一個新的想法是創建一個獨立的網絡,以較低的成本專門存儲 Rollup 的交易數據。確保交易數據發佈到這個網絡上,同時允許以太坊輕鬆訪問,這就引出了本文的主題:數據可用性問題。

數據可用性是指節點對區塊鍊網絡中交易數據進行查看和下載的需求。它要求在一定時間段內產生的所有交易數據都能被整個網絡獲取並見證。反之,它意味著不存在已經執行但沒有公佈的交易數據。數據可用性的問題適用於節點如何監控新區塊的生成,以確保該區塊的所有數據都被發佈到網絡上,並且區塊生成者沒有隱藏或歪曲信息。

數據可用性最初並不是一個問題,因為在區塊鍊網絡中,數據是自然可用的。只是在擴容跨越了一定的門檻之後,數據可用性才成為一個不可避免的話題。只有確保所有交易數據可以被訪問和下載,以太坊才能跟踪和重建 Rollup 上的狀態,也只有這樣,才有可能將 Rollup 的交易數據存儲在一個獨立的數據網絡中,降低 Rollup 的存儲成本,進一步促進擴容。

此外,數據的可用性與 Rollup 的安全性密不可分。在數據遺漏和記錄不規範的情況下,從 Ethereum 的角度看,Rollup 的狀態將無法辨別。在這種情況下,鑑於 Rollup 有可能不能完全繼承 Ethereum 的安全設置,儘管性能良好,但用戶會對 layer 2 保持警惕。

1.2 數據可用性與存儲的區別

數據可用性涉及到數據的存儲和檢索,但這個問題與存儲不一樣,兩者的重點領域不同。存儲需要在較長的時間內保持數據隨時可供檢索,在此期間,數據是有意義的。數據可用性需要確保主區塊鍊網絡產生的最新交易數據被發佈到網絡上(可能是自己的網絡以外的網絡),並易於訪問。

這裡的存儲是指存儲區塊鏈本身和鏈上應用產生的數據,不包括額外的數據,如存儲來自其他地方的圖像、文件等。只有當這兩個任務由不同的網絡分別承擔時,存儲和數據可用性之間的區別和聯繫才值得討論。如果一個主網絡要完成計算、存儲和數據可用性驗證的所有任務,那麼這個話題就顯得多餘了。

一般的存儲不適合 DA 網絡,因為存儲的對象往往是大文件,而在每個以太坊區塊區間內獲得所有 Rollups 的數據可用性所需的數據量往往甚至小於 2MB。DA 網絡可以設計成非常精細的數據採樣驗證和檢索過程,但存儲網絡不能這樣設計,否則處理大量的數據就不可行了。

以太坊是一個狀態機,交易驅動狀態變化。換句話說,無數的交易塑造了當前的狀態。每當一個狀態被改變和確認,新的狀態本質上就包含了以前的交易,這些交易被認為已經完成了它們的歷史使命。只有在需要追溯時才有必要訪問其數據。

數據可用性是存儲的先決條件。只有在網絡中完全公佈並經過驗證的交易數據才能支持執行,從而推動狀態變化,使其值得存儲。存儲是數據可用性的支柱,DA 網絡本身會產生大量的數據,這些數據可以存在於一個獨立的存儲網絡中,便於 DA 節點減輕負荷,減少操作負擔。

數據可用性的發展和實施路徑

數據可用性最初被包含在區塊鍊網絡中,然後逐漸從一體機(all-in-one)網絡中分離出來。現在,一個獨立的 DA 層即將出現。下一節將探討數據可用性的演變,並評估當前代表性項目如何實現數據可用性層。

2.1 逐步分離數據可用性

先回憶一下這裡的原則。區塊鍊網絡中有 2 種類型的節點,全節點和輕節點。全節點存儲區塊的所有內容,包括區塊頭和交易數據。他們通過驗證、包裝交易和競爭出塊權(block-out rights)來參與區塊的生產。輕節點只接受區塊頭,但不存儲交易數據或參與區塊生成。當輕節點需要使用交易數據時,它們會向全節點請求數據。以下是對數據可用性演變的逐步解釋。

在第一階段,從比特幣網絡開始(包括以太坊和其他公鍊網絡),數據的可用性被自然地嵌入到網絡中。全節點隨著時間的推移而收集和驗證交易數據,並對交易進行良好的分類和打包,然後以某種方式競爭性地獲得出塊權,將打包好的交易數據放入區塊,並向整個網絡發布。其他全節點需要驗證交易數據是否正確,以及該節點是否有權利出塊。如果驗證成功,它就會改變自己的賬本並執行交易。在這種模式下,執行交易、發布和保存交易數據都是由全節點完成的,可以執行的交易被發布,並且必須讓網絡中的所有節點都能訪問。

在第二階段,以 Plasma 技術為代表,數據可用性被移交給鏈下運營商,而以太坊本身並不存儲 Plasma 用戶的交易數據。這是第一次將數據可用性與主網絡分離的嘗試。Plasma 將數據可用性置於以太坊之外。為了實現無需信任,確保用戶可以順利地從 Plasma 取錢,或者解決爭端,用戶需要存儲一部分自己的數據,以證明他們的交易行為和資產所有權。現在回想起來,這種設計使用起來太不方便了。同樣,由於 Plasma 上的提款有 1 週的挑戰期,而且用戶體驗和資金周轉率都很差,所以它沒有成為主流技術。

在第三階段,以 Rollup 技術為代表,數據可用性回到以太坊。Rollup 在鏈下執行交易,並在壓縮後將交易數據上傳到以太坊的 calldata。Calldata 是 EVM 中一個只可讀且不可修改的區域,存儲了所有傳入函數的執行數據,包括函數參數。這樣的設計讓 Rollup 繼承了以太坊的安全性,實現了鏈下擴容的效果,使 Rollup 成為 layer 2 擴容的主流技術。除了 Rollup,這個階段還有一項技術叫 Validium,可以看作是第三階段向第四階段的過渡。它在其他方面與 ZK Rollup 相似,不同之處在於將交易數據存儲在由多個機構組成的鏈下數據可用性委員會(DAC)。這種設計是將數據可用性從以太坊中分離出來的另一種嘗試,其好處是減少存儲在以太坊中的數據量,從而減少成本。缺點是,它引入了信任假設,用戶必須相信 DAC 中至少有一個誠實的機構存在。

第四階段,以 Celestia 和 Polygon Avail 為代表,看到數據可用性再次從以太坊中分離出來。他們試圖在自己的網絡上存儲和發布 Rollup 本來會上傳到以太坊的交易數據,並組織節點來驗證這些數據是否完全發佈在網絡上。他們的目標是成為一個獨立的數據可用性層(DA 層),這可以被視為 DAC 的高級版本。

2.2 如何實現獨立的數據可用性層

Celestia 和 Polygon Avail 的想法大致相同,所以我們先以 Celestia 為例來說明整體思路。

實現一個獨立的數據可用性層需要 3 個主要步驟:Rollup 將所有交易數據傳遞給 Celestia,Celestia 在其網絡上發布所有這些數據,以太坊確認 Celestia 已經存儲和發布了這些數據,並且可以隨時訪問這些數據。

2.2.1 如何確保 Rollup 的交易數據被如實上傳到 Celestia

兩個目標之間存在著一致性:Rollup 需要通過更便宜的網絡獲得數據可用性,而 Celestia 則需要通過託管 Rollup 的交易數據獲得收入。Rollup 如實提供數據和 Celestia 如實發布和驗證數據對雙方都有利。從經濟利益的角度來看,他們會誠實經營,除非他們不想要保證金了。

那麼,有沒有一種技術方法能夠避免弊端呢?

如果 Rollup 將所有數據交給 Celestia,但後者不在其網絡上公佈,它需要依靠網絡中至少一個誠實的全節點提供欺詐證明來揭露它,這將在後面討論。這裡有一個"1/N "的信任假設,但這是一個弱信任假設,相對容易實現。如果你完全不願意信任網絡,Rollup 可以自己作為一個全節點並監控網絡的狀態。

如果 Rollup 沒有給 Celestia 正確的交易數據,Celestia 仍然會把這個數據發佈到 DA 網絡上。以太坊上的驗證者可以請求這個交易數據,並將通過它計算出來的狀態根與 Rollup 上傳到主網的狀態根進行比較,揭露欺詐行為並獲得獎勵。如果是 OP Rollup 被挑戰,它也需要發布一個欺詐證明,與挑戰者進行比較。這確保了在 Rollup 上執行交易的數據和交付給 Celestia 的數據是來自同一批次。

證明欺詐的總體思路是顯示狀態根,包括起點、終點、中間狀態和促使狀態改變的交易。第三方仲裁者必須在場,從某個狀態執行某個或某些交易,並將計算出的狀態根與之前公佈的狀態根進行比較。兩者之間的任何不一致都表明運營商有欺詐行為。

2.2.2 如何驗證 Celestia 的全節點是否發布了數據

在全節點接受了交易數據後,下一步就是驗證它是否在網絡上發布了所有這些數據。根據一般的想法,應該由 Celestia 網絡中的其他全節點進行驗證。隨著需要驗證的數據量的增加,這增加了全節點的存儲和計算能力,這也需要更先進的硬件設備,加劇了網絡的中心化。

Celestia 的想法是讓許多輕節點來分擔這一任務。通過把一批數據分成幾塊,每個輕節點只需要下載少量的數據,就能以極高的概率驗證這塊數據是否可用。這樣一來,輕節點的力量被調動起來,共同維護數據可用性網絡。此外,由於每個輕節點只需要驗證少量的數據,那麼輕節點的數量越大,可以驗證並成為網絡可用的數據就越多。當然,這也需要網絡上有足夠數量的輕節點,否則將因缺乏樣本而無法完成驗證。

輕節點驗證數據可用性的步驟如下:

1、將交易數據擴展為糾刪碼。Celestia 全節點將交易按順序排列成數據 Merkle 樹,每個葉子節點稱為一個份額,假設有 k 個份額。Celestia 將把這些數據擴展為二維 Reed-Solomon 糾刪碼,變成一個有 2k 行和列的擴展矩陣。糾刪碼(Erasure Code)是一種數據保護方法,它將數據分割成片段,把冗餘的數據塊擴展,編碼,並將其存儲在不同的位置。這個擴展矩陣不僅包括交易數據,還包括由這些數據產生的奇偶校驗數據。二維糾刪碼有一個重要的特性:只需要任何 (k+1)2 個元素就能恢復包含 (2k)2 個元素的擴展矩陣。糾刪碼被存儲在區塊體中。

2、計算擴展矩陣的行/列根和數據根。全節點為這個擴展矩陣的每一行和每一列計算一個 Merkle 根,這裡稱為行/列根,之後為所有行/列根計算幾個總 Merkle 根,稱為數據根。數據根和所有的行根和列根都需要上傳到 Celestia 區塊的塊頭中。

3、輕節點整體驗證。在收到塊頭後,Celestia 的輕節點首先使用行/列根計算 Merkle 根,並將其與塊頭中包含的數據根進行比較。如果不匹配,它直接確定數據無效;如果同意,它就進入下一步。

4、輕節點用採樣的方式進行本地驗證。輕節點在擴展矩陣中隨機選擇一些份額,例如,第 3 行和第 5 列的數據,並向全節點請求這些份額(share)的數據。全節點發送這些數據,同時還要證明這個份額屬於第 3 行或第 5 列的 Merkle 樹,即它可以提供一個路徑,通過這個路徑可以計算出這個行或列的 Merkle 根。在輕節點計算並與區塊頭中包含的行根和列根進行比較後,若匹配則意味著採樣的交易數據是可用的。如果全節點隻公布了區塊頭而沒有公佈交易數據,那麼通過這一步就可以很容易地進行驗證。在讓所有 (k+1)2 份額驗證成功後,可以判斷整個擴展矩陣是有效的。

5、廣播驗證信息。輕節點採樣驗證後,它告訴與之相連的全節點它所採樣的份額和通過驗證的行/列根。全節點也將此信息廣播給所有全節點。這就是網絡上的信息共享過程。一旦有足夠多的輕節點完成了多次採樣,網絡上就會形成一個關於特定區塊中交易數據可用性的共識。

糾刪碼已經包含了所有的交易數據,這些數據被儲存在 Celestia 區塊鏈中。正如我們將在後面解釋的那樣,這個數據量並沒有使 Celestia 變得臃腫。

糾刪碼和這套複雜的流程不是讓輕節點組直接驗證原始數據,而是設計成即使在網絡故障的情況下,如所有節點大規模故障,甚至許多輕節點癱瘓,多個輕節點保存的零散數據也可以從擴展矩陣中恢復,以確保交易數據仍然可以被訪問。

另一個原因是,由於糾刪碼可以通過部分數據來恢復完整的數據,所以一個全節點僅僅隱藏一個份額是無法掩蓋數據的。如果全節點真的有惡意,它必須隱藏 (k+1)2 個份額,這將導致矩陣的實質性變化,只需幾個樣本就能被輕節點發現。

如果某個全節點故意發出錯誤的糾刪碼,只需要一個誠實的全節點站出來,發出欺詐證明,指出應該根據證明中的數據計算出另一個數據根。它還需要重新發布一個正確的區塊,並重複上述過程來重新驗證它。

2.2.3 以太坊如何驗證數據可用性

在 Celestia 網絡內,就存儲在區塊中的數據可用性達成共識後,Celestia 要求官方法定節點(a quorum of nodes)共同簽署數據根(交易數據的 Merkle 根)以生成數據可用性證明,表明他們已經在網絡上存儲並發布了這批數據。部署在以太坊主網上的量子引力橋合約會驗證節點的簽名,如果通過,數據就被認為在 Celestia 上可用。

因為單獨的數據可用性層是為了減少上傳到以太坊主網的數據而設置的,所以以太坊不需要直接驗證數據可用性,而更像是一個最高裁決者,驗證 DA 層是否完成了它的工作。

如果 Ethereum 需要調用數據,它可以從 Celestia 網絡中請求,在那裡所有節點都有 Rollup 的交易數據,Ethereum 可以很容易地訪問。

2.2.4 Polygon Avail 的設計方法

Avail 的思路與 Celestia 基本相同,不同之處在於如何生成擴展矩陣以及輕節點如何驗證數據。

Avail 將數據組織成 n 行 m 列的矩陣後,為每一行構造一個多項式,然後為每個多項式計算一個 KZG 多項式承諾,最後將多項式和承諾都展開成 2n 行,並將這批承諾存儲在區塊頭中。當輕節點被採樣驗證時,某項承諾與原始信息(即交易數據)之間的對應關係得到驗證,就可以知道全節點是否發布了相應的數據。根據 KZG 多項式承諾的性質,輕節點只需要接受一個由原始數據生成的多項式和一個簡短的證明就可以完成驗證,而不需要下載原始數據。如果一個輕節點採樣的多個數據塊剛好在同一行,它只需要接受一個多項式承諾,這就減輕了輕節點的帶寬要求。此外,由於承諾是綁定的,即一旦計算完成就不能改變,全節點不能篡改原始數據,從而保證了驗證的有效性。

Avail 和 Celestia 都有其優勢和劣勢。Celestia 實現起來比較簡單,但由於其糾刪碼和輕節點採樣數據的規模較大,因此需要的通信帶寬略高。Avail 涉及相對複雜的加密實現,難度稍大。它的優點是糾刪碼規模小,輕節點採樣數據量小,帶寬要求低。兩者都還沒有測試網絡上線,技術上還有發展空間,所以我們需要等待測試更新。在這條賽道上可能還有其他競爭者,而成功屬於能夠以較低的成本存儲和驗證交易數據的項目——這體現在訪問它的 Rollup 用戶的低成本,以及 DA 網絡節點的低運行成本。

2.3 獨立的數據可用性層的兩個競爭對手

為了降低 Rollups 的成本,緩解 Ethereum 的壓力,一個獨立的數據可用性層正在孵化。反過來說,以太坊本身也在不斷發展,出現了兩個能解決這個問題的 EIP 提案:EIP-4488 和 EIP-4844。那麼,它們會對數據可用性產生什麼影響?

EIP-4488 提議將 calldata 的 gas 消耗量從每字節 16 減少到 3,這將使 Rollup 的鏈上存儲成本立即下降到原來的 20%。為了防止區塊空間的上限增加太多,把以太坊 p2p 網絡層推到前所未有的壓力水平,這個提案還設計了一個 calldata 佔用的上限,大約為 1.4MB。

EIP-4488 可以立即降低 Rollups 的成本,這使目前需要的變化最小化。但 Rollups 會繼續增長,而且不可能無限期地增加 calldata 的空間,因為這會給以太坊網絡帶來安全風險。這也決定了它是一個短期的權宜之計。

EIP-4844 建議引入一種新的交易格式,稱為"blob 攜帶交易(blob-carrying transactions,blob: binary large objects)"。blob 包含大量的數據,成本比 calldata 低得多。EVM 不訪問這些數據,只關心這些數據的承諾。驗證一個 blob 只需要驗證其可用性。這種交易格式與未來的全分片交易格式完全兼容。blob 存儲在信標鏈上,其中存儲數據和交易所用的 gas 是單獨計算上限和定價的。

EIP-4844 是一個積極的過渡計劃,它也是由以太坊主網提供的數據可用性。然而,它不能簡單地等同於現有的計劃。blob 是一個獨立的數據可用性層的原型,在技術上和經濟上都為獨立的 DA 空間做了準備。當全分片實現後,blob 可以遷移到分片鏈上,這時需要對信標鏈做一些改動,但 Rollups 需要的改動很小。可以說,分片之後,以太坊將實現自己相對獨立的數據可用性層,類似於 Celestia 和 Avail。

毫無疑問,這兩個提案都降低了 Rollups 的成本,都可能使其他數據可用層項目顯得成本優勢不大,導致採用率低。尤其是 EIP-4488,它沒有很多新的技術要求,易於實施,也可能搶占先機。這樣看來,獨立的 DA 層在短期內可能面臨比較大的壓力。當數據分片尚未實現時,由於網絡的可擴展性更強,DA 層可能會承載更多的數據,吸引一部分 Rollups 使用它來接收數據的可用性。

2.4 數據可用性層的經濟模型和市場潛力

由於 Celestia 和 Avail 都還處於相對早期的階段,協議的經濟模型還沒有公佈,包括獎懲機制、協議如何盈利、是否發行代幣以及如何分配。

在此,我們對獎勵和懲罰機制以及盈利模式進行了猜測。

DA 層網絡中的全節點需要抵押一些資產作為保證金。如果一個全節點故意不公佈完整的交易數據,那麼它的保證金會被罰沒。同時,這部分資產也可以作為參與共識的籌碼,押注資產數量多的節點有更大的概率獲得出塊權力,並得到一定的獎勵和手續費收入。

輕節點不被質押,不參與手續費收入分成。這樣一來,輕節點的數量會更少,而每個輕節點採樣的數據量也會稍大。輕節點可能主要由訪問 Rollup 或在其上運行的 dApp 組成,它們是直接的利益方,有動力去驗證 DA 網絡。輕節點抵押少量的資產也是可以接受的。如果採樣完成得好,他們參與手續費收入和獎勵分成,如果多次採樣的質量沒有得到驗證,則罰沒押金。由於輕節點數量眾多,獎勵需要定期積累和分配,以減少網絡壓力。

如果數據可用性層被認為是數據的臨時存儲庫,那麼網絡中所有的節點(全節點和輕節點)應該為數據存儲付費。以太坊 calldata 的成本是 DA 層收入的上限。

另外,由於大量的數據被存儲在 DA 層中,這會給區塊鍊網絡帶來嚴重的負擔。全節點可能需要定期將一些長存的數據轉移到其他存儲平台,並指示存儲平台在一段時間後刪除數據。這可能會產生一些成本。這個成本相對容易估計,Vitalik 曾經在一篇文章中估計,EIP-4488/4844 的實現每年會給以太坊增加約 2.5TB 的數據。假設這些數據需要保存 1 年,按照目前主流雲存儲的價格,全節點每年存儲這些數據的成本不到 50 美元,這些成本幾乎可以忽略不計。即使 DA 層完全接管了以太坊 calldata 的任務,甚至存儲更多的數據,這個成本仍然很低。因此,如果不考慮網絡運行的其他成本,DA 網絡的利潤率主要取決於它能提供多少數據。

因為從長遠來看,每單位存儲空間的收入似乎不會有太大變化,所以 DA 層必須增加銷售,以提高收入,這意味著要吸引更多的 Rollups 到網絡裡來。在這裡,項目組的業務發展能力非常關鍵,這也是誰能成功的關鍵因素。

最後,估計一下 DA 層作為一個整體每年能產生多少收入。下表是根據公開數據對 Rollup 的存儲成本做的粗略估計。以太坊目前每天在整個網絡中消耗 100G gas,其中每天有 1G 用於 layer 2 來上傳證明和解決爭端。由於 Rollup 已經成為 layer2 的主流技術,這個數據可以直接用在這裡。Calldata 消耗了多少 gas 很難估計,本文假設其消耗的 gas 是證明/解決爭端的 5 倍。假設一年中 ETH 的平均價格為 2500 美元,gas 的平均價格為 80 Gwei,計算出每天 Rollup 的 DA 成本約為 100 萬美元。如果在實現 EIP-4488 後,calldata 的單位 gas 消耗量變為原來的 1/5,由於成本較低,將會吸引更多的用戶使用 Rollups。假設證明和解決爭端的 gas 消耗量增加一倍,根據比例關係計算,Rollup 每天的 DA 成本仍為 40 萬美元左右,一年下來可能有 1.46 億美元的市場。這是一個由以太坊和 DA 層共享的市場,如果 DA 層的價格比以太坊略微有利,假設它得到一半的份額,它每年可以產生大約 5000 萬美元的相對穩定的現金流。這都是基於 Rollups 仍處於相對早期的事實而做出的保守估計。

如果 Rollup 實現更大的增長,成為真正"以 Rollup 為中心"的局面,Rollup 在以太坊上的證明上傳和爭端解決所消耗的 gas 可能達到每天 10G。換句話說,這意味著以太坊網絡 10% 的 gas 被 Rollup 的證明/爭端所消耗,這是完全可能的。由於技術進步,Rollup 將使用更先進的方法來減少證明的 gas 消耗量,假設減少到 50%,那麼 calldata 的 gas 消耗量需要變成原來增長比例的兩倍。此外,ETH 的價格也將上升,假設平均價格在 3500U,gas 費用保持在 80Gwei。估計 DA 層的消費可以達到每年 20 億美元。此外,如果其他區塊鏈也開發 Rollup 技術,DA 層也可以為這些鏈服務,進一步增加收入。

以上估計非常粗略,只提供了一個視覺參考。

區塊鏈的數據可用性和模塊化

3.1 區塊鏈正在模塊化

縱觀數據可用性與主網絡逐步分離的歷程,我們還可以發現另一個趨勢,那就是區塊鏈的模塊化。這是一個更大的長期趨勢,而獨立的 DA 層是這個最新浪潮長期趨勢的一部分。

區塊鏈誕生之初,網絡是單片的,它承擔了共識、計算、結算、數據存儲等所有任務。當時,鏈上生態剛剛起步,區塊鏈的處理能力大於需求,成本也不高。

計算層或執行層是與區塊鏈分離的第一個模塊。隨著區塊鏈生態系統的發展,使用區塊鏈的成本越來越高,因此,出現了擴容解決方案。鏈下擴容包含各種技術路線,其理念是將計算與結算分離。將計算移到鏈下,不必在區塊鏈上重新計算 n 次,並且可以節省區塊鏈的計算資源,從而使費用減少。雖然在鏈下完成計算也能實現結算功能,但最後的結算必須由區塊鍊主網來完成。

數據可用性層是與區塊鏈分離的第二個模塊。目前鏈下擴容仍無法將使用成本降低到公眾滿意的程度,原因之一是數據可用性仍需要消耗區塊鏈上的寶貴存儲資源。設置獨立的 DA 層可以大大減少這種資源消耗,也可以進一步降低鏈上應用的使用成本,吸引更多用戶參與。以太坊的數據分片也是一種模塊化的 DA 層,實現了同樣的功能。

將以上兩部分分開,區塊鍊主網絡唯一需要承擔的就是共識。主網需要對執行的結果和執行的依據,也就是數據的可用性達成共識。當然,結算功能也包含在共識模塊中,因為共識中最重要的部分是網絡應該同意什麼樣的結算結果。至此,一個"共識-執行-數據可用性"的結構就形成了,這個結構是相互獨立的。

3.2 模塊化是區塊鏈的自然結果

區塊鏈三難問題告訴我們,區塊鏈有三個基本屬性:去中心化、安全和可擴展性,由於技術上的限制,只能同時優化其中的兩個屬性,剩下的一個必須要犧牲掉。以太坊選擇了高度去中心化和安全,所以可擴展性成為要妥協的屬性。

去中心化是區塊鏈的核心所在。正是因為去中心化的特性,區塊鏈上的任何機構都沒有權力任意修改或消除用戶的資產;鏈上資產是有價值的,為這些資產產生的代幣發行、資產交換、借貸等是有意義的。如果沒有其去中心化的屬性,區塊鏈可能可以說是不需要存在的。而安全又是分佈式系統的命脈,所以去中心化和安全應該是這個三難問題中需要優先考慮的兩點。

確保去中心化需要許多節點達成共識,每個全節點執行相同的操作和備份相同的數據。但這是一個非常低效的過程,導致了低吞吐量和高交易費用。在這種情況下,提高可擴展性的方法是減少主網需要執行的任務,讓其他模塊承擔更多的任務—— 因此,出現了模塊化。

模塊化渴望通過分工使整體比各部分的簡單總和更有能力,這符合事物發展的一般經驗法則。分開的 Rollup 和 DA 網絡可以分別專注於執行和數據的可用性,並且可以在各自的領域自由發展,沒有任何取捨。以太坊主網只需要驗證他們的證明,而"世界計算機"已經成為"整個網絡的最高法院"。這讓人相信進一步降低成本的想法。Rollup 最小化了證明的規模和生成證明所需的資源消耗,DA 層提高了編碼和驗證的效率,也減少了上傳到主網的斷言(assertions)的大小。經過一段時間的發展,模塊化區塊鏈完全有可能在性能和成本方面達到其他高性能公鏈的水平。

一些區塊鍊為了實現更高的性能,在去中心化的程度上做出了妥協,但隨著發展和進化,總會出現性能跟不上需求的情況。目前,如果通過技術升級,形成更強大的新網絡,無疑是一種積極的情況;而在現有的技術條件下,通過更多的分工和協作,更合理地配置資源,也不失為一種好辦法。未來一段時間,以以太坊等為代表的去中心化程度高但性能低的公鏈很可能會堅定地推進模塊化進程;而其他一些公鏈也會學習以太坊的成功經驗,嘗試實施外部模塊。在經歷了分工合作的成功後,區塊鏈的模塊化可能會成為一種新的模式。

References

[1]  https://coinmarketcap.com/alexandria/article/what-is-data-availability

[2]  https://blog.celestia.org/ethereum-off-chain-data-availability-landscape/

[3]  https://blog.celestia.org/celestiums/

[4]  https://arxiv.org/abs/1809.09044

[5]  https://medium.com/the-polygon-blog/introducing-avail-by-polygon-a-robust-general-purpose-scalable-data-availability-layer-98bc9814c048

[6]  https://blog.polygon.technology/the-data-availability-problem-6b74b619ffcc/

[7]  https://eips.ethereum.org/EIPS/eip-4488

[8]  https://notes.ethereum.org/@vbuterin/proto_danksharding_faq

[9]  https://ethereum.org/en/upgrades/shard-chains/

[10]  https://dune.xyz/funnyking/L2-Gas-Consumption

[11]  https://newsletter.banklesshq.com/p/ultra-scalable-ethereum?s=r

[12]  https://hackmd.io/@alexbeckett/a-brief-data-availability-and-retrievability-faq

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