DA 不儲存歷史資料?資料可用性不等於永久可用性

Kyle
分享
DA 不儲存歷史資料?資料可用性不等於永久可用性

資料可用性 (Data Availability, DA) 不等於永久儲存?區塊鏈沒有永久儲存資料的義務?本文將會以白話文釐清外界對資料可用性層的種種誤解,DA 的角色是提升安全性而不是儲存歷史資料。

保存歷史資料不等於安全性?

在市場爭論是否該將資料可用性建構在外部專案例如 Celestia 或是保留在以太坊的同時,其實並不是為了爭論歷史資料要儲存在哪,還是攸關網路安全的問題。

(觀點|資料可用性層 (DA) 競爭將呈現多元發展)

廣告 - 內文未完請往下捲動

部分讀者可能會有疑問:「Layer2 的歷史資料儲存與安全性不是相同意思嗎?」其實歷史資料對於 Layer2 安全性並不是最重要的考量,Vitalik 所堅持的東西並不是歷史資料儲存。

若有上述問題,代表對於資料可用性層的用途與定義搞錯了。

(Layer2 交易紀錄儲存位置的差異是什麼?鏈下資料可用性 (DA) 發展介紹)

資料可用性是什麼

資料可用性不是什麼

資料可用性並不保證所有的歷史數據永久提供用戶或是節點調用,資料可用性專案包含 Celestia 或是 EigenDA 提供的是一個暫時的儲存空間,與 Arweave 永久保存資料的去中心化儲存設施有根本上的不同,雖然本質上都是提供硬碟。

(Celestia (TIA) 主網啟動|模組化區塊鏈未來的機會與挑戰)

由於現有的主流 Rollups 將以太坊視為 DA 並將完整的交易資訊壓縮後上鏈,才會讓外界誤以為資料可用性代表永久儲存。但其實包含近期坎昆升級 (Dencun) 所帶來的 EIP-4844,也將會開始刪除過舊的 Rollups 交易資料,因為本來上鏈的目的就不是為了永久儲存

DA:資料可用性僅確保資料完整發布

資料可用性僅保證區塊被最終性 (finality) 確認前的調用,提供 Ethereum 針對有爭議的區塊仲裁時的評斷依據。因此也有人認為要將此名稱更改為資料發布 (Data Publication, DP)。

例如 Arbitrum 上某個節點發現其他節點傳輸的區塊有錯誤而發布詐欺證明,此時需要有一份正確的資料給 Ethereum 去運算而後仲裁,若沒有 DA 確保資料可用性,詐欺證明機制將無法進行。

如果當一個交易已經被最終性確認,例如在以太坊網路中已經過 2/3 以上節點確認的區塊 (大約是擁有 60 個以上的新區塊成為最長鏈),就會被最終性確認,被最終性確認的區塊將永遠不可被更改。

最終確認後網路上不會再有任何爭議只有共識,相關交易的 DA 就再也用不到了,這也就是為什麼 EIP-4844 決定將定期刪除這些資料。因為永久儲存跟目的無關。

DS:資料儲存與歷史索引

或許會有部分的讀者會覺得很奇怪,既然資料可用性的意思是確保資料有完整發布到網路上,過了一段時間後就會被刪除或是不保證可以存取到,那麼如果因為特殊原因要調用 Rollups 完整交易的歷史紀錄該怎麼辦?這時談的才是資料儲存 (Data Storage) 的面向。

但其實,區塊鏈歷史資料儲存並不是一個非常重要的議題。

只要所有節點中有任何一方因為利害關係或是其他原因,就會主動保留完整的交易資料。例如:

  • 區塊鏈瀏覽器:因為這是本業的關鍵資源
  • Rollups 專案:因為這是服務用戶的一個環節
  • 熱情用戶:因為希望產業更好

另一方面,大多數節點的設計都會保留區塊頭資料 (裡面有交易區塊Hash值),代表拿到某方提供的完整歷史資料時,還可以輕鬆驗證真實性。

綜上述,資料儲存與歷史索引的假設接近 1/N,只要網路規模夠大 (N個節點),只要找得到一個節點願意提供完整資料,幾乎可以保證任何人一定可以從某個地方拿到正確的歷史資料。

資料可用性為什麼重要

接下來來說明為什麼 DA 對於 Rollups 或是 validium 非常重要,以至於 L2BEAT 將 DA 視為五大風險模型之一。

Layer2 風險模型五大指標 (資料來源)

詐欺證明機制

上述有提到,詐欺證明機制需要仰賴完整的交易資訊才可以進行。

甚至在極端情況,所有節點都串通並停止向某誠實節點傳送資訊,這時若沒有確保資料可用性,誠實節點將無法辨別是網路連線不穩定或是網路正在受到攻擊,也無從反擊,詐欺證明的 1/N 信任假設將無法成立。

validium 逃生艙需要最新狀態

大多數 Layer2 網路都會有抗審查的提款機制,例如逃生艙 (Escape Hatch),也就是當用戶提款的請求被排序器長期忽略或是惡意拒絕,且強制提款函數同樣被節點忽略沒有收到回應幾天後,用戶所發起的緊急按鈕,

當逃生艙功能被啟動後,將暫停網路一段時間,此時網路上所有交易都無法進行,不過可以讓用戶依照狀態樹 (state root) 進行提款,以達到抗審查的提款機制。

不過 Validium 要取得最新的狀態樹,此時至少需要有一個節點願意提供,為了提升用戶資產安全性,若擁有可靠的 DA,那麼將可以讓用戶更確保能拿到狀態樹並提款。

(validium 是一種 Layer2?validium 受到以太坊社群的重新檢視)

資料可用性是網路安全重要支柱

因此由上述兩個場景,可以理解資料可用性在 Layer2 的生態中,就算不負責永久儲存資料,仍扮演著非常重要的安全組件。

資料可用性層的功能不是為了提供完整的交易歷史資訊,而是藉由提供交易被最終確認前的狀態,確保網路順利運作與用戶資產安全,成為 Layer2 安全模型的重要關鍵。

若沒有 DA,在極端情況下,不論有多麼設計精良的交易證明機制 (詐欺證明、零知識證明),不論設計的多精良,基本上都無用武之地。資料可用性就是這麼重要,也難怪許多以太坊開發者不認同外部 DA。

(Vitalik 希望 2024 年會有 10 個達到 Stage 1 的 L2,這是什麼意思?)

在專案坊大肆宣傳其 zkEVM、詐欺證明、生態發展的同時,也需要時時謹記這些最基礎的設施是否能確保安全。