作者:Stanford Blockchain Club 來源:W-SOURCE 翻譯:善歐巴,金色財經
引言
自其誕生以來,區塊鏈和加密貨幣一直致力於透過提供更廣泛的存取權和去除中介來改變金融格局。隨著時間的推移,web3的發展擴大了其應用場景,強調了區塊鏈技術在創建一個創作者繁榮、用戶掌控數據的互聯網中的潛力。
在確保去中心化的同時,賦能終端使用者的基礎設施的關鍵部分是確保資料儲存在一個有韌性、抗審查的資料庫中。儘管集中式資料庫方便且熟悉,但它們未能提供必要的安全保障,並且需要資料庫所有者的許可,限制了全球範圍的應用。
分散式資料儲存系統透過建立一個儲存、管理和共享資料的節點網路來滿足對容錯性和高韌性儲存的需求。去除中央權威的需要,並以P2P的方式分發數據,增強了安全性和透明度。分散式儲存系統通常基於區塊鏈或類似技術,傾向於透過冗餘和可用性來複製資料。
儘管分散式儲存系統依靠未使用的儲存容量,提供了安全性、資料韌性以及潛在的成本效益,但它們在法規和互通性方面面臨挑戰。
對於真正開放和可存取的網絡,分散式儲存是必不可少的。任何儲存系統的關鍵方面是如何證明資料被儲存和維護的方式。對使用者來說,更重要的問題是,資料如何被證明是儲存和維護的?這是透過數據證明來解決的。
總體而言,我們區分了兩種類型的證明:
-
確定性證明:允許資料持有者為特定資料建立證明,以證明其創建並匹配資料的雜湊值。這種類型的證明僅公開使用資料作為輸入產生的雜湊。
-
機率證明:依賴機率來展示基礎數據高度可能可用。這是一種理性地展示某一特定假設的確定性程度的證明,適用於已發布並在必要時可檢索的數據。
本文其餘部分將討論三種不同系統中證明資料儲存和完整性的設計選擇。首先是專注於高容量和可擴展資料的Tagion,然後討論去中心化儲存網路Filecoin如何確保資料的規模化儲存。最後,本文將探討專注於儲存和提供區塊鏈資料的Celestia。
Tagion
架構
Tagion是一個去中心化網絡,致力於高容量交易,目標是建立一個基於技術和民主治理的獨特貨幣系統。該專案依賴創新的資料庫架構和加密技術,以實現大規模。它不是區塊鏈,而是使用DART資料庫優化儲存的分散式帳本。 Tagion的證明機轉是確定性證明的一個例子。
DART資料庫的核心功能是作為一個分散式雜湊表,根據雜湊鍵對資料進行儲存。隨著資訊儲存的增加,該結構自然會產生更多分支,每個分支支援多達256個組合檔案和子分支。
除了類似分散式雜湊表,Tagion的基礎設施也可以理解為稀疏默克爾樹(SMT)。 SMT是基於鍵值對的認證資料結構,支援標準資料庫操作,如查找、插入、更新和刪除。每個鍵值對代表一個葉子,透過遞歸地哈希子節點到默克爾根來派生父分支的哈希。
SMT透過讓證明者能夠在無需存取不相關資料元素或下載特定資料片段的情況下驗證元素的存在,顯著提高了效率。此外,樹中值的獨立性允許以任意順序更新,而不會改變樹的最終結構。
Tagion的系統利用包含所有子分支哈希的根哈希,以最小的計算快速驗證資料狀態。為進一步增強處理能力,系統可以為特定生態系統創建子DART,類似分片區塊鏈。這些指定節點管理資料子集,增加吞吐量,並使網路能夠根據不同應用定制,類似於應用鏈。
使用DART建立一個無狀態系統,無需維護系統轉換的完整歷史記錄。這意味著可以刪除數據,整體上降低儲存需求,並透過輕量化潛在地增加系統的去中心化。
Tagion採用HiBON(雜湊不變二進位表示物件)進一步促進預存程序,確保資料在進入時保持雜湊不變,簡化了基於關聯雜湊的資料檢索。哈希不變性指的是資料在處理順序不同的情況下總是會產生相同的哈希。這是一種被驗證的技術,用於加速資料庫中的資料檢索和寫入。
透過這些機制,Tagion不僅安全地儲存數據,還有效地驗證其在網路中的包含和完整性。
資料完整性
Tagion的所有子系統都會進行所謂的隨機遊走,檢查資料是否按需儲存和提供。未通過保留驗證挑戰的節點將被排除在網路之外。
所有檔案都包含時間戳,需要支付費用以延長存放時間。在遊走過程中,系統會檢查是否收到付款,如果沒有,則刪除數據,釋放空間。
Filecoin
Filecoin是一個去中心化儲存網絡,透過其原生代幣Filecoin激勵礦工提供儲存容量。為了賺取這些獎勵,礦工必須產生證明,以驗證他們的儲存能力。
Filecoin的基本儲存單位稱為磁區,具有標準大小和提供者可延長的生命週期。該設計在安全性和可用性之間進行了精心平衡。 Filecoin上儲存的所有使用者資料都是加密的,多個副本分佈在網路上,確保礦工無法存取檔案內容。
礦工在Filecoin網路中的影響力與其提供的儲存量成正比,這也使他們可以參與網路的共識機制。 Filecoin虛擬機器負責執行智慧合約,並促進市場操作,例如將儲存提供者與使用者配對。
Filecoin的架構是模組化的,允許節點根據需要作業系統的特定部分。例如,一個節點可以只作為儲存節點,而不參與市場操作。
為了確保資料完整性和可用性,Filecoin依賴兩種演算法:儲存證明和複製證明。
儲存證明
Filecoin中的礦工生成證明,以驗證他們在任何給定時間持有資料副本。透過挑戰來實現這一證明:系統向礦工提出問題,只有在擁有數據的情況下才能正確回答。
為了確保礦工不會只在提出挑戰時複製數據,挑戰設計為在不可預測的時間間隔內隨機針對數據的不同部分。隨機性和時間間隔的不確定性結合,使得礦工在提出挑戰時才取得資料變得不可能、不經濟且不理性。
時空證明(PoSt)
Filecoin引入了時空證明(PoSt),以確保持續的儲存和資料可用性。時空證明透過向礦工提出加密挑戰,驗證在時間間隔內的儲存。只有在文件儲存在指定時間框架內時,礦工才能通過挑戰。
PoSt包括兩種類型的挑戰:
-
贏得時空證明(Winning PoSt):礦工驗證他們在特定時間儲存了資料副本,通常是在演算法選擇礦工挖掘下一個區塊時。短期截止時間確保他們擁有數據。
-
視窗時空證明(WindowPoSt):一種重複性挑戰,礦工提交證明,表明他們按要求維護了資料。只在提交資料時封存資料對礦工來說會更昂貴。
封存是複製證明演算法的一部分,計算密集型,使理性礦工希望盡可能減少封存需求。
複製證明
封存是複製證明演算法的一部分,計算密集型,鼓勵礦工減少封存頻率。複製證明確保用戶,礦工在其實體硬體上創建並儲存了唯一的副本。此證明包括:
-
數據本身
-
封存資料的礦工
-
封存的時間和日期
-
資料封存時的區塊高度
要求礦工產生兩種證明為用戶提供了文件安全儲存的保障,且只有提供實際儲存的礦工才能獲得獎勵。由於證明過大無法上鍊,礦工產生零知識簡潔非交互性知識論證(zkSNARK),然後提交到鏈上,使Filecoin成為最大的zkSNARK用戶,每天生成600萬到700萬個證明。
整體而言,Filecoin結合了確定性證明(PoRep)和機率證明(PoSt)的方法,採用混合方法。
Celestia
本文的第三個例子是Celestia,一個所謂的數據可用性區塊鏈,為模組化區塊鏈提供執行和數據存儲,允許它們將核心功能外包出去。
隨著以太坊Rollup的興起,像Celestia這樣的資料可用性解決方案因其提供比以太坊歸檔節點更便宜的Rollup交易資料儲存替代方案而受歡迎。
證明數據可用性
與Filecoin不同,Celestia不為終端用戶提供儲存解決方案,而是專注於解決資料可用性問題。數據可用性確保區塊鏈數據已正確發布。通常,區塊鏈節點必須下載整個區塊以驗證可用性,這是一個資源密集型過程,可能會妨礙驗證。
為了簡化這個過程,Celestia採用資料可用性抽樣(DAS)。此方法涉及輕節點僅下載一小部分數據,直到達到預定的置信水準。如果樣本中的數據都可用,則認為數據已發布,作為數據可用性的機率證明。
其工作原理如下:
-
提案者創建一個數據區塊。
-
將區塊資料拆分為k×k的區塊,形成一個矩陣。
-
透過加入奇偶校驗資料擴展此矩陣,使用Reed-Solomon編碼建立一個2k×2k的矩陣。此類編碼允許從資料的子集還原整個資料集。
-
計算並組合擴展矩陣的每行和每列的獨立默克爾根。
-
最後,將所有這些組合根的梅克爾根添加到區塊頭中的區塊數據承諾中,確認數據的可用性。
為了驗證可用性,輕節點隨機抽取擴展矩陣中的唯一座標,然後向完整節點查詢對應於這些座標的梅克爾證明的資料區塊。如果響應正確,則表示整個區塊的數據有很高的機率是可用的。
節點隨後將接收到的帶有正確默克爾證明的資料區塊廣播到網路的其餘部分。只要抽樣足夠,節點可以重建整個區塊,使Celestia可以更依賴資源有限的節點進行驗證,有助於去中心化。
在撰寫本文時,Celestia仍然很新。然而,數據可用性抽樣是一項可能在Celestia之外被採用的技術,以太坊核心開發者正在討論將其添加到協議中以幫助擴展。
結論
總之,分散式網路中用於儲存和驗證資料可用性的各種方法正在運作並被積極使用。
Tagion使用DART資料庫,透過分片來提高吞吐量並支援由稀疏默克爾樹保護的專門子生態系統的發展。
Filecoin的架構利用兩種不同的演算法,時空證明和複製證明,使礦工能夠驗證並證明他們可靠地儲存了資料。這些證明隨後以零知識證明的形式記錄在鏈上。
Celestia作為資料可用性層,利用Reed-Solomon編碼將資料區塊擴展為矩陣。這種結構允許輕客戶端進行隨機抽樣以確認資料可用性,繞過下載整個資料集的需要。
隨著分散式儲存系統格局的不斷演變,Tagion、Filecoin和Celestia各自提出了確保資料完整性、可用性和可存取性的獨特策略。這些平台共同為建構支援去中心化網路的韌性資料發布和儲存系統做出了重要貢獻。