基於區塊鏈技術的去中心化儲存網路: 一份調查

Abstract

當我們探討區塊鏈技術應用於去中心化儲存網路(DSN)時,我們將依序研究三篇來自IEEE Transaction期刊的論文。這些論文提出了各自對於DSN的解決方案。DSN之所以受到青睞,是因為相較於中心化儲存網路,它具有許多優點。其中一大優點是可以避免單一中心節點故障導致所有資料無法存取的問題。此外,區塊鏈的三大特性(去中心化、不可竄改性和高透明度)有助於解決過去在中心化儲存網路中出現的問題。此外,區塊鏈中的智慧合約應用也使得管理分散式節點更加簡便,並且可以透過智慧合約自動獎勵誠實的儲存節點,同時剔除並懲罰不誠實的儲存節點。在這三篇論文中,我們將看到賽局理論在以區塊鏈為基礎的去中心化服務中的重要性,並且這些論文的作者們也針對過去繁瑣的儲存驗證機制(POS)提出了各自的解決方案。接下來就讓我們在這篇survey paper當中繼續深入探討吧!


Introduction

過去在許多的研究論文中,我們都可以看到中心化儲存系統的限制,像是單點故障的脆弱性、客戶數據被少數的中心化儲存服務供應商濫用,以及少數幾間中心儲存化服務公司在市場上對於價格和規則上的壟斷控制。因此,去中心化儲存網路(DSN)作為一個可能的解決方案被提出來,這種網路能夠允許小型的儲存服務提供商參與到市場當中,並且可以透過區塊鏈技術來儲存檔案資訊,並使用部署在區塊鏈上的智慧合約來根據預先設定的規則自動移動檔案和資產。

目前,去中心化儲存網路領域的專家正在尋找多種方法以透過去中心化儲存網絡來顛覆現有的雲端儲存服務市場。首先,這些去中心化儲存網絡很可能是基於自由市場運作,並開放大眾參與。因此,任何人都可以參與該去中心化儲存網絡,而不是依賴單一的節點或儲存服務供應商,並且資料會在多個節點之間進行複製。此外,公鑰加密也是區塊鏈整合的天然伴隨特性。伺服器通常會在儲存資料前進行加密,因此只有合法的私鑰所有者及其同意共享的客戶端才能執行解密。這個過程使得這些去中心化儲存服務更能抵抗審查和操縱,即使在資料洩露的情況下,攻擊者也會因為缺乏私鑰而無法利用被洩露的資料。

而透過去中心化網路來儲存資料作為過去集中式儲存網路的替代方案,點對點儲存正成為一種具備顛覆性的力量。以下則是採用去中心化儲存網路的儲存系統所具備的一些優點[4]:

  • 高可靠性
    • 去中心化網路使用多個伺服器來傳送和儲存資料。資料的冗餘副本被儲存(消除了單點故障的影響)。在硬體故障或檔案丟失的情況下,檔案的備份副本將可被存取使用。此外,每筆共享資料都分配了一個唯一的hash值。透過增加這一額外的保護層,資料變得更加安全。
  • 低部署成本
    • 去中心化資料儲存系統大大降低了硬體和儲存成本。在去中心化環境中,對於儲存節點的性能要求降低,這減少了對高性能硬體和軟體的昂貴投資需求。此外,在去中心化網路中可能有數百萬個節點來儲存資料。因此,可用的儲存空間會有顯著的增加。去中心化儲存系統可以持續利用所有閒置的儲存空間,減少浪費並避免投資新的儲存設備。與傳統的集中式雲端儲存相比,整體儲存成本有著顯著的降低。
  • 提高檔案存取速度
    • 與傳統的集中化儲存相反,去中心化儲存系統依賴點對點技術。在高峰流量時,資料傳輸不會透過單一的中央伺服器來進行。資料的多個副本會被儲存在不同的節點位置,客戶端可以選擇具有資料副本的節點,因此檔案整體下載速度會更為快速。
  • 負載均衡
    • 基於區塊鏈的去中心化儲存系統遵循負載均衡原則。伺服器可以本地緩存資料以避免反覆訪問伺服器。這樣不僅可以減輕伺服器的負擔,還可以緩解網路的流量壓力。除了傳送和優化資料外,非集中式的伺服器還能減少中央化儲存系統所形成的瓶頸。
  • 公平的市場價格
    • 當有數百萬個節點時,去中心化存儲系統會形成完全競爭,微型儲存服務供應商也能夠參與市場與其他大公司競爭。單個節點在儲存服務市場充分競爭下,而無法收取更高的價格,因此價格在所有節點之間基本上會呈現均勻分布的狀況,彼此價格不會有太大的落差。最重要的是這個市場確保只有高品質的節點能夠生存和競爭。
  • 提高安全性和隱私
    • 去中心化資料儲存系統提供的高安全性是其最顯著的優勢。共享資料會使用hash值或公私鑰將原始資料加密並分解為更小的塊,然後分散式網路中的節點會彼此共享這些原始資料的副本。整個過程確保了資料免受來自惡意攻擊者的攻擊。此外,任何儲存的資料中都不包含原始資料擁有者的資訊,而這與集中式儲存系統相比是不一樣的。

儘管我們在上面看到許多關於去中心化儲存網路的儲存系統所具備的優點,但是去中心化網路也很容易受到各種惡意攻擊的影響,這些惡意攻擊可能影響任何去中心化網路儲存系統,以下是可能對去中心化儲存網路的惡意攻擊及相應解決方案[4]:

  • Spartacus攻擊
    • 在Kademlia上(Kademlia是一種分散式雜湊表(DHT)技術,用於在分散式網路中儲存和檢索資料。它使用一個基於距離的路由演算算法,將資料儲存在最接近其hash值的節點上。),可能遭受Spartacus攻擊或稱為身份盜竊。任何節點都可以透過複製節點ID來假冒成其他節點,並接收針對該節點的一些資訊。要防範這種攻擊手法可以要求節點和資料的所有消息都必須簽名,節點ID實現為ECDSA公鑰hash加密,則如果惡意攻擊者試圖進行攻擊,這將防止攻擊者成功簽署資訊或參與去中心化網路儲存系統。
  • Sybil攻擊
    • Sybil攻擊則涉及設定大量節點來透過丟棄消息或竊取消息來破壞整個網絡。由於Sybil攻擊依賴於冗餘消息和具體的距離度量,因此在Kademlia上進行這類攻擊實際上有些困難。大多數消息發送給網路中每個節點的至少三個相鄰節點,這些相鄰節點則根據其節點ID選擇。當攻擊者控制網路當中的50%節點時,Sybil攻擊成功隔離僅剩的少數誠實節點。使得去中心化儲存網路的可靠性和性能顯著下降,儘管網路仍然會繼續運行,但大部分節點會由協同的Sybil節點所組成。
  • Google攻擊
    • 這是一種由擁有充分資源的國家進行的假設性攻擊,類似於Sybil攻擊。由於在實務上難以預測Google的行動,所以防禦Google攻擊可能十分具有挑戰性。而防禦Google攻擊的唯一方法是創建一個資源與惡意攻擊者相當的網路。目標是在那個層次上建立網路,但這將需要大量資源,且這些資源將無法持續的保證被供應。
  • Honest GEPPETTO攻擊
    • 這是Google攻擊的一種變形,主要是針對儲存設備。惡意攻擊者在網路中經營大量魁儡節點,隨著時間的推移來累積信任和有效合約。等到達到一定門檻,惡意攻擊者會將每個節點從網路中移除或操縱這些傀儡節點執行對資料的扣押攻擊。與之前的攻擊一樣,一個大型的網路可以使這類攻擊無效。在此之前,透過相關性分析節點可以部分解決這個問題。當停機時間、延遲和其他屬性應用於貝氏推斷時,資料所有者應將資料分佈在盡可能多的不相關節點上。
  • Eclipse攻擊
    • Eclipse攻擊透過確保所有向外流量都連接到惡意節點來隔離網路中的一個或一組節點。Eclipse攻擊可以誘使惡意節點正常運行,只遮蔽特定重要消息。攻擊者需要生成密鑰對,直到找到三個密鑰的hash值比相鄰最近節點的非惡意鄰居的ID更接近目標ID,並保護這個位置免受ID更近的新節點攻擊。在實務上網絡中通常有許多節點,使這類攻擊成為一個隨著節點增加,而難度成比例增加的工作量證明問題。因此為了防禦Eclipse攻擊,應該增加網路整體的節點總數量。
  • 扣押字節攻擊
    • 像扣押字節攻擊這樣的儲存特定攻擊透過惡意儲存服務提供者拒絕傳輸data segment或segment part來勒索資料所有者進行額外付款。透過在多個節點之間冗餘存儲segment,資料所有者可以保護自己免受扣押字節攻擊。如果客戶端保持其糾刪編碼秘密,則惡意儲存服務提供者節點無法確定最後一個字節。這種攻擊的實際應用大部分透過冗餘儲存來解決。然而,冗餘儲存不是一個完整的解決方案。多個惡意節點必須合作才能打破冗餘儲存的防禦,但這在實務上很難實現。
  • 欺詐所有者攻擊
    • 資料所有者可能拒絕驗證審計的真實性,從而避免向資料儲存服務提供者支付儲存費用。儲存服務提供者節點則可能會丟棄資料所有者的data segment。由於這類攻擊,任何未來的去中心化信譽系統都將難以驗證其聲譽。目前,沒有公開可驗證的儲存證明,也沒有獨立可驗證的過程來確認是否按照計劃發送或回應了私下可驗證的審計,任何信譽系統仍然面臨欺詐客戶的問題。

在接下來的段落內容當中,我會首先簡要的說明這三篇IEEE Transacrion期刊論文當中會提到的一些重要的Related Work,接著我會分成三個段落去分別介紹這三篇期刊論文的重要內容概述,以及我閱讀完這三篇論文後所各自提出的一些心得內容。最後,我則會針對本次的研究主題作個簡單的結論。


在這個段落中,我會概要的介紹這三篇IEEE Transaction期刊論文當中的重要核心內容,在這個段落中,我們會主要聚焦在區塊鏈、智慧合約和星際檔案系統(IPFS),至於在這三篇論文當中有提到的其他相關技術則部會在這邊進行介紹,對技術細節感興趣的話,請參閱Reference所引用的六篇論文參考資料。

  • Blockchain [5]
    • 區塊鏈技術是基於P2P網路的技術。區塊鏈是紀錄交易的分散式分類帳,並以去中心化的方式運作,因此不存在任何中央監督機構。區塊鏈網路中的每個節點都會經常同步分散式分類帳。區塊鏈使用密碼學來增強其安全性,區塊鏈中使用的是密碼hash值機制,因此儲存在區塊中的資料無法被輕易修改。如果修改了一個區塊的資料,則該區塊之後的每個區塊的資料都應該使用新的hash值重新計算,這在實務上幾乎是不可行的。而不可竄改性是區塊鏈的基本應用之一,區塊鏈支援透明和不可竄改的交易,這些交易也很容易進行監督。除此之外,區塊鏈還可以分成幾種類型,包括公有鏈、私有鏈或聯盟鏈等等。比特幣則是公有區塊鏈的一個著名例子,在公有區塊鏈上任何人都可以挖礦並進行交易並加入網路。而在私有區塊鏈中,將有一個組織負責管理交易並決定誰可以被允許加入網路。當多個組織聯合起來決定實作區塊鏈時,負責維護區塊鏈的職責將由這些組織們共同承擔,這類區塊鏈應用則被稱為聯盟區塊鏈。
  • Smart Contract [6]
    • 以太坊是區塊鏈的其中一個著名分支,而以太坊的一個重要組成部分是智慧合約。智能合約在近來變得日益普及(尤其是在前幾年風靡一時的非同質化貨幣NFT的發行也是透過智慧合約才得以發行)。它最早由計算機科學家和密碼學家Nick Szabo在1990年初首次提出,當時是作為一種數字交易協議。它解釋了客戶如何輸入資料或價值,並對機器進行限制性操作(例如自動售貨機)。簡單來說,智慧合約通常是客戶程式、演算法或協議,可用於驗證、確認或進行不可逆轉的交易。這是一個明顯的範式轉變,不誠實的組織希望在他們的協議中獲得信任,使計算機系統正確運作。而一個良好執行的智能合約可以實現無需第三方的眾籌。因為第三方的介入往往使系統變得集中化,所有的信任都集中在一個組織中。由於在區塊鏈中部署的智慧合約是不可更改、公開且具有權威的,因此干擾智慧合約的執行幾乎是不可能的。當前最大的區塊鏈分支以太坊目前支援自2014年起特別設計的智慧合約。而Solidity則是一種特別流行於以太坊的智慧合約開發的程式語言之一。在過去幾年裡,跨界不安全的程式犯罪導致了巨大的經濟損失和社會惡化,這對於智慧合約的正確開發、驗證和執行造成了問題。
  • InterPlanetary File System (IPFS) [5]
    • IPFS(InterPlanetary File System)是一種分散在多台電腦或伺服器上的文件儲存系統。它解決了現有文件儲存系統的安全性、可靠性和可擴展性問題。IPFS提供了高吞吐量,用於訪問文件的儲存。在挖礦操作中,先前的hash值將被添加到新區塊中,第一位計算出區塊hash值的礦工將與其他區塊鏈節點共享。然後,其他節點將驗證該礦工所挖出的區塊的真實性。在實務上,圖像文件使用ipfs api儲存在IPFS分散式文件系統中。其中將使用SHA-256演算法生成hash值,並使用加鹽的程序將消息摘要轉換為十六進制格式。而消息摘要(MD)和hash值會被共同組合成內容地址的hash值,然後儲存到區塊鏈網路中。IPFS會建立46字節長的hash值,因此與傳統文件儲存系統相比,儲存空間消耗相對較少。在這個提議的系統中,礦工將收集交易,並將有效的交易進行挖礦並儲存到IPFS分散式網路中,然後生成新的區塊到區塊鏈網路中。IPFS將為儲存的交易提供唯一的hash值,透過使用這個唯一的hash值,其他節點可以訪問該交易。

An Incentive-Compatible Mechanism for Decentralized Storage Network

Introduction

  • 儲存服務提供商的中心化架構引起了一系列擔憂:

    • 資料中心更容易受到單點故障的影響。
    • 公司可能濫用客戶的個人資料以獲取更多利潤。
    • 價格和規則僅由少數大公司主導,導致壟斷。
  • 去中心化儲存網路(DSN)- 優勢:

    • 微型儲存服務提供商也可以參與儲存服務市場。
    • 資訊儲存在一個電腦網路中。(區塊鏈技術)
    • 利用區塊鏈智慧合約,可以開發各種激勵機制,根據預先設定的規則自動移動數位資產。
    • 客戶可以透過向網路支付費用來外包資料的儲存。
    • 儲存服務提供商與網路分享其儲存資源,作為回報可以獲得額外報酬。
    • 為了滿足資料保密性,客戶的資料在客戶端執行端到端加密,儲存服務提供商無法訪問解密密鑰。(消除控制資料的中心實體。)
    • 微型儲存服務提供商可以出租其過剩的儲存資源,提高網路吞吐量並降低資料中心的維護成本。
  • 去中心化儲存網路(DSN)- 挑戰:

    • 如何通過儲存服務提供商來驗證資料的正確存儲?
    • DSN平台應該配備一個儲存證明(PoS)方法,以監控儲存服務提供商的誠實行為。(在儲存服務合約期間定期執行PoS)
    • 然而,持續的儲存證明驗證是昂貴的,並且容易受到惡意儲存服務提供商的攻擊,該攻擊者向DSN的節點提交PoS,同時拒絕為客戶提供服務。
  • 去中心化儲存網路(DSN)- 改進:

    • 在本篇論文中,作者們提出並分析了一種新型的去中心化儲存方法,當中不需要不斷驗證儲存服務,只需要在受到客戶挑戰(challenge request)時進行一次性驗證。
    • 作者們還設計了一種新的激勵兼容機制,使得參與者通過真實地選擇其行動來達到最佳結果。
    • 更具體地來說,作者們設計了一個非合作的重複動態賽局,使得儲存服務提供商誠實地分享儲存的資料是唯一的次賽局完美均衡。
    • 作者們利用區塊鏈智慧合約和預言機網路來強制執行所提出的儲存賽局的規則。消除持續的儲存驗證顯著改善了DSN的性能,並支援客戶免受服務拒絕攻擊。

Overview

  • 簡而言之,去中心化儲存網路DSN配備了兩個主要組件,即支付結算和儲存驗證:
    • 在支付結算模組中,DSN向客戶收取儲存服務費用並支付給儲存服務提供者。如果儲存服務提供者未能提供儲存服務,DSN可以對其進行處罰並相應地賠償客戶。
    • 在驗證模組中,DSN驗證儲存服務提供者是否準確提供儲存服務。為此,儲存服務提供者應向DSN提交儲存證明,DSN驗證此類證明的正確性。
  • DSN利用公共區塊鏈技術來執行儲存合約。區塊鏈技術為各方提供了一個無需單一可信第三方即可進行支付的可接受平台。因此,在區塊鏈啟用的DSN方案中,沒有單一方可以控制任何儲存合約。在DSN儲存服務中,客戶可能會在將資料提交給儲存服務提供者之前對其進行加密,以保護資料的機密性。此外,DSN可以透過在網路中的多個節點中儲存資料,提供冗餘性、高可用性和故障切換功能。作者們假設儲存服務提供者管理其儲存資源,包括冗餘性、服務器位置、備份服務、網路頻寬等,以最大化其按照服務水準協議(SLA)的回報。基於區塊鏈的DSN的整體方法就如下圖1所示,客戶端向儲存服務提供商要求資料儲存服務,後續可以透過部屬在區塊鏈上的智慧合約,來進行相關儲存費用的支付,以及提供儲存服務的驗證。
  • 機制設計目標:
    • 區塊鏈平台獨立性:提出一個兼容的儲存方案,可以插入現有的通用區塊鏈平台,具有智慧合約執行兼容性。
    • 防止服務拒絕攻擊:保護DSN網絡免受該類欺詐性儲存服務提供者的影響。
    • 鏈上效率:所提出的方案應該在不影響安全期望的情況下,最小化鏈上儲存和計算成本。
    • 計算請求:許多儲存服務期望計算客戶的請求數量,以動態計算儲存服務的成本。

Proposed Incentive-Compatible Mechanism

  • 作者們機制設計的目標是為DSN中的儲存服務制定一套規則,以滿足前面提到的要求。一個機制可以通過一個賽局𝑔 : 𝑀 → 𝑋來指定,其中𝑀是可能的輸入消息集合, 𝑋是機制可能的輸出集合。在儲存系統模型中,玩家是儲存服務提供者和儲存需求客戶。作者們假設玩家是理性且自利的,他們的目標是最大化他們的利潤。一個理性的玩家會選擇特定的策略來增加他的效用。儲存客戶玩家的效用基於支付儲存服務費用,以及將資料儲存外包給儲存服務提供者後的資料可訪問性的成本或效益。
  • 在設計用於去中心化儲存網路的機制時,需要回答以下問題:
    • 機制如何驗證儲存服務提供者分享資料的誠實行為?
    • 儲存資料服務的支付通道是什麼?
    • 機制該如何向客戶收費?
    • 機制該如何懲罰儲存服務提供者因資料丟失或服務品質低而遭受損失?
  • 一個單純的模型是透過一個可信的第三方(TTP)來調解客戶和儲存服務提供者之間的關係。在這種情況下,客戶從TTP請求資料,TTP從儲存服務提供者那裡接收資料。TTP可以透過儲存資料的hash值來檢查資料的完整性,並在從儲存服務提供者接收資料時進行驗證。然而,由於需要TTP作為每個請求和響應的中間人,所以這種方法效率低下、昂貴且不可擴展。為了解決這個問題,去中心化儲存網路依靠區塊鏈平台作為一個可信第三方,以消除單一中央實體來管理系統。此外,去中心化儲存網路將可信第三方在資料恢復過程中的介入最小化,以便客戶可以直接從儲存服務提供者那裡檢索資料。然而,去中心化儲存網絡會不斷驗證儲存服務提供者的儲存證明,以確保儲存服務提供者真實地儲存資料:
    • 對於網路來說,持續驗證儲存是昂貴的。
    • 不誠實的儲存服務提供者可以成功地向去中心化儲存網路提交儲存證明,同時拒絕向客戶提供服務。
  • 為了解決這些問題,在作者們所提出的模型中,去中心化儲存網路不會持續驗證儲存服務,而是在客戶提交挑戰請求時進行驗證。(當不誠實的儲存服務提供者拒絕提供資料或者發送不正確的資料時,客戶可以向可信第三方發送挑戰請求。)在作者們所提出的機制中,客戶與儲存服務提供者之間的互動可以建模為一個非合作的重複動態賽局:
    • 一旦儲存服務合約開始,在賽局的第一階段,儲存服務提供者可以選擇共享資料或不共享資料的策略。
    • 客戶可以選擇挑戰或不挑戰儲存服務提供者。挑戰意味著客戶向DSN提交挑戰請求,表明儲存服務提供者未共享資料。
    • 在收到挑戰請求後,DSN執行儲存驗證。一旦儲存服務提供者受到挑戰,那麼他的策略集就是儲存證明或不儲存證明。
  • 作者們機制設計的目標是確保這個非合作的重複動態賽局的子賽局完美均衡是(儲存服務供應商願意共享資料,並且客戶不挑戰儲存服務供應商的儲存證明)。客戶和儲存服務提供商的儲存合約可以表示成下圖的非合作重複動態賽局,其中儲存服務提供者可以選擇是否分享資料,而客戶可以選擇是否挑戰儲存服務提供商,樹狀圖的末端節點的S和C分別代表的是儲存服務提供商和客戶從賽局中獲得的payoff,並且這個payoff是經由utility function根據雙方採取的策略計算出來的。

  • 因此,作者們希望儲存服務提供者在資料未被共享時選擇𝑆ℎ𝑎𝑟𝑖𝑛𝑔,客戶應資料未被共享的情況下選擇𝐶ℎ𝑎𝑙𝑙𝑒𝑛𝑔𝑒。為了實現這個目標,機制應該在資料未被共享時激勵客戶選擇挑戰,然而,挑戰請求是昂貴的。為了支付挑戰的成本,所提出的機制設計成證明策略強制要求將資料副本發送給客戶,以提高挑戰策略在不共享的情況下的收益。接下來以𝑃表示儲存服務提供者無法提供儲存服務的機率。讓𝑉表示對客戶訪問資料的價值。那麼,客戶選擇挑戰的預期效用可以表示為下方的式子。
  • 下面的圖是作者們定義在非合作動態賽局中,兩位賽局參與者在彼此的策略選擇下,所能得到的payoff值,其中的賽局均衡點是在share-nochallenge,此時的payoff總和是最大的。
  • 作者們是利用智慧合約作為第三方信任來管理客戶和儲存服務提供者之間的協議。智慧合約由區塊鏈技術驅動。區塊鏈由點對點網絡管理數位分類帳。在提出的模型中,首先客戶和儲存服務提供者達成儲存協議。該協議包括以下資訊:合約期限、資料的merkle root、儲存服務的費用、資料交付時間和補償。資料的merkle root儲存在鏈上,將用於資料驗證。將整個資料儲存在區塊鏈上成本過高,因此使用merkle tree來最小化儲存驗證過程的成本。
  • 這邊要注意的是區塊鏈平台是一個獨立的網路,無法從外部系統中提取或推送資料。這個問題被稱為Oracle問題。為了解決這個問題,所以提出了Oracle網路。Oracle網路為區塊鏈提供了一個信任的來源,用於訪問區塊鏈外的資料。作者們所提出的方法中不同組件之間的互動就如下方的圖所示。可以看到,資料傳輸是在鏈外完成的。唯一的鏈上操作是挑戰請求。值得注意的是,在這個方法中,儲存服務提供者應該將受挑戰的資料發送給Oracle網路,而Oracle網路將資料轉發給客戶。這種設計有兩個主要原因。首先,它防止了作者們之前解釋過的服務拒絕攻擊。這是因為如果儲存服務提供者拒絕為客戶提供服務,則若儲存服務提供者能夠通過證明,客戶在挑戰請求中將收到資料的副本。因此,儲存服務提供者在向DSN證明儲存的同時無法拒絕向客戶提供服務。其次,當儲存服務提供者尚未共享資料時,機制應該為客戶提供提交挑戰的激勵。通過轉發資料,作者們為選擇挑戰策略的客戶的回報增加了價值,以達到作者們在之前討論的期望的次賽局完美均衡。
  • 資料傳輸是在鏈外完成的。唯一的鏈上操作是挑戰請求。值得注意的是,在這個方法中,儲存服務提供者應該將受挑戰的資料發送給Oracle網路,而Oracle網路將資料轉發給客戶。這種設計有兩個主要原因:
    • 防止服務拒絕攻擊。儲存服務提供者在向DSN證明儲存的同時無法拒絕向客戶提供服務。
    • 當儲存服務提供者尚未共享資料時,機制應該為客戶提供提交挑戰的激勵。
  • 為了提高方法的效率,作者們考慮了挑戰請求的不同級別。作者們認為,當客戶和儲存服務提供者同意將資料分割為特定數量的segement時,在挑戰階段,客戶可以提交一組segement的挑戰。當client覺得收到的資料不完整的時候,可以不必要求驗證完整的資料完備性,而是可以抽查特定資料片段(data segment),並藉此改善整體DSN的效率。
  • 給定安全參數λ,PoS方法是一個包含四個機率多項式時間(PPT)演算法包含(Setup、Challenge、Prove、Verify)的位元組:
    • (𝑑, ℎ) ← 𝑆𝑒𝑡𝑢𝑝(1^λ, 𝐷, 𝑠𝑧)。該演算法以安全參數𝜆、外包資料𝐷和segement大小𝑠𝑧作為輸入。該演算法輸出用於驗證證明和最大資料段數ℎ的資料摘要𝑑。
    • 𝑐 ← 𝐶ℎ𝑎𝑙𝑙𝑒𝑛𝑔𝑒(ℎ)。該演算法以最大資料段數ℎ作為輸入,並輸出挑戰數字𝑐。
    • 𝜋 ← 𝑃𝑟𝑜𝑣𝑒(𝐷_𝑐, 𝑐)。該演算法以相應的資料段𝐷_𝑐和挑戰數字𝑐作為輸入。該演算法輸出用於證明與挑戰數字𝑐對應的資料段儲存的證明𝜋。
    • 0/1 ← 𝑉𝑒𝑟𝑖𝑓𝑦(𝑑, ℎ, 𝑐, 𝜋)。該演算法以資料摘要 𝑑、Merkle Tree高度ℎ、挑戰數字𝑐 和證明𝜋作為輸入。如果證明𝜋是有效的證明,則輸出1,否則輸出0。
  • 第一個作者們從PoS方法中要求的屬性是完備性,即方法的演算法輸出的證明對於一個有效的敘述被正確驗證的機率除以可忽略的,它可以用下面的式子來表示,如果一個PoS方法是完備的,則會滿足下面的條件。
  • 第二個屬性是挑戰聲明,它捕捉到一個惡意的挑戰者無法生成一個挑戰c ,即使證明者持有整個文件也無法回答。它可以用下面的式子來表示,如果一個PoS方法是挑戰聲明的,則會滿足下面的條件。
  • 第三個屬性是證明聲明,它捕捉到即使具有所有其他文件片段,一個惡意的儲存證明者也無法生成有效的證明,如果它不持有被挑戰的文件片段,它可以用下面的式子來表示,如果一個PoS方法是可被證明的,則會滿足下面的條件。
  • 密碼學基本構建區塊: 作者使用一個具有碰撞抗性和難以逆向運算的加密安全hash函數𝐻← 𝐻𝑎𝑠ℎ(𝑥)。數字簽名: 作者使用標準的EU-CMA安全數字簽名函數,其中包含三個函數,分別是產生公鑰和私鑰的函數、簽章的函數,以及驗證簽章有效性的函數。
  • 完整性直接來自協議。挑戰的聲明性來自設置函數中驗證的最大挑戰數。證明的聲明性來自hash值是一個抵抗碰撞和具有恢復難度的hash函數。很明顯,如果有一個破壞證明聲明性的對手,作者們使用這個對手來破壞hash值的碰撞抵抗性,這就會與假設相矛盾。下面的圖則是一個merkle tree的簡單例子。
  • 作者們選擇merkle tree來構建基於PoS的主要原因主要有兩個:
    • 在分散式設定中,作者們希望沒有信任的設定和更少的公共參數,這限制了RSA和雙線性配對解決方法的使用。
    • 在激勵層中已經考慮了證明和驗證的成本。所提出的方法的主要關注點是摘要資料大小,因為摘要資料需要儲存在鏈上。
    • 在這一點上,merkle tree是一個很好的解決方法,因為作者們只需要在鏈上存儲merkle root,這是一個hash值。
  • 然而,由於惡意的儲存服務提供者可能會拒絕發送資料,客戶應該在成功交付資料後發送簽名確認消息。另一方面,惡意客戶也可能拒絕發送簽名確認消息。
    • 為了解決這個問題,一種簡單的方法是將資料分成更小的segement,並在收到上一個消息確認後發送下一部分資料。
  • 在應用層中,這種方法的成本太高,因為每個確認消息都應該被簽署和驗證。此外,無法保證客戶發送最後一個消息的確認。
    • 為了解決問題,有一個簡單的方法,在提出的方法中,作者們遵循了提出的非合作重複動態賽局理論方法來挑戰儲存服務提供者。在所提出的模型中,客戶只發送一個簽署的請求消息。
    • 對於記錄請求的次數,儲存服務提供者只需要提交最後一個簽署的請求消息。要注意的是請求消息包括一個計數器,紀錄到目前為止客戶提交的請求數量。

Implementation

  • 作者們是使用Solidity(版本0.8.7)程式語言來實現所提出的智慧合約。在區塊鏈解決方法部分,作者們選擇了Kovan,這是以太坊的測試網路,用於智慧合約的開發。作者們是使用Remix IDE來開發、部署和管理智慧合約。在實作過程中,作者們使用了Chainlink的Oracle,這是目前最著名的Oracle網路,佔據了Oracle市場的大部分,並且作者們已經在GitHub儲存庫中分享了他們的實作。考慮到gas費用和昂貴的鏈上計算成本,作者們僅在鏈上記錄基本資訊,包括智慧合約保費、合約期限、補償率和文件的merkle root值。

  • 智慧合約具有以下兩個主要功能:

    • 記錄儲存任務:在客戶和儲存服務提供者之間達成承諾後,合約將根據設計的資料結構,在鏈上記錄雙方簽署的基本資訊。
    • 解決挑戰請求:一旦客戶提交了一個挑戰特定文件segement的鏈上請求,作者們需要與off-chain資料建立連接。
  • 一個基本的Oracle請求模型包括四個部分:Chainlink客戶端、Oracle合約、off-chain Oracle節點和外部adapter。

  • Chainlink客戶端

    • 它是一個上層合約,使智慧合約能夠被構建並發出請求。完整的請求需要Oracle地址、job ID和callback function。通過job ID,Oracle知道要執行哪些任務;在完成任務後,Oracle將響應發送到callback function。
  • Oracle合約

    • 負責處理鏈上請求並發出包含請求訊息的事件。off-chain的Oracle節點將監控事件,一旦Oracle合約收到作業結果,它會使用callback function將結果返回給Chainlink客戶端。
  • off-chain的Oracle節點

    • 與Oracle合約並行執行。它會監聽由鏈上Oracle合約發出的事件,並使用發出的資料執行作業。在這裡,該節點將向外部adapter發送GET請求,獲取儲存服務提供商是否通過挑戰的結果,然後將布林值得結果透過transaction提交回Oracle合約。
  • 外部adapter

    • 向儲存服務提供商發送請求,參數為文件ID和客戶端選擇的特定資料segement number。儲存服務提供商將挑戰的資料segement與計算的merkle path一起返回給外部adapter。
    • 外部adapter使用merkle path和該資料segement的hash值處理響應,以計算merkle root並將其與鏈上儲存的值進行比較。之後,它會將挑戰結果提交給Oracle合約。
  • 外部adapter是以JavaScript編寫,並在Node.js中作為HTTP服務器運行。對於儲存服務提供商,作者們將其模擬為Node.js中的HTTP服務器。它提供外部API來計算merkle root,提供對原始文件的訪問,並生成merkle path。在隨後的實驗中,作者們使用了一台搭載Apple M1 Pro CPU和32GB內存的macOS(版本12.0.1)筆記本電腦,對所提出的方法進行了性能分析。作者們對大小為10 MB、50 MB、100 MB、500 MB和1 GB的各種大小的文件進行了評估。計算時間是根據文件的不同segement大小進行計算的。具體而言,作者們比較了文件讀取時間、merkle root計算時間、merkle path生成時間和merkle path驗證時間這四個維度之間的比較。

  • 下面的圖顯示的是文件讀取時間、merkle root計算、merkle path生成和merkle path驗證的計算成本,分別針對大小為10 MB、50 MB和100 MB的文件。

  • 下面的圖則顯示的是大小為100 MB、500 MB和1GB的文件和圖6的相同設置。可以看出,隨著segement大小的增加,文件讀取時間、merkle root計算和merkle path生成的計算成本呈遞減的趨勢。merkle path驗證速度快,其時間隨著segement大小的增加而減少。而當相同segement大小的文件大小增加時,文件讀取時間、merkle root計算和merkle path生成的時間同步增長。相反,merkle path驗證時間幾乎保持不變,非常小。

  • 論文中所提出的方法分為兩個層面,即激勵層和PoS層:

    • 在激勵層中,玩家被激勵誠實地參與儲存賽局。為此,作者們使用智慧合約來強制執行賽局規則,使其具有激勵兼容性。
    • 在PoS層中,系統在客戶提交挑戰請求後驗證儲存服務。該驗證模組是使用智慧合約中的預言機網路來實現,因此所提出方法的安全性仰賴於智慧合約和預言機網路的安全性。
  • 作者們使用了Chainlink預言機網路,這是目前最廣泛使用的預言機網路。設計中需要預言機網路的要求可以被視為所提出方法的一個局限性。這主要是因為所提出方法的安全性會取決於所採用的預言機網路的安全性。

  • 對於儲存服務提供商和儲存驗證者而言,PoS的計算成本很低且可以忽略不計。所提出方法的主要好處在於網路不會持續驗證儲存服務,而僅在儲存服務客戶提交挑戰請求時進行一次性驗證。預計系統在合約存續期間不需要執行PoS,除非儲存服務提供商未能提供儲存服務。需要注意的是,對於每一個更新請求(更改資料),儲存在鏈上的merkle root也應該被更新。在這種情況下,智慧合約應該驗證客戶和儲存服務提供商的簽名,以確保雙方都同意更新。因此,所提出的方法最適用於儲存歸檔資料,對於具有頻繁更改請求的資料儲存效率低下。將方法改進為更有效處理更新請求可以被視為未來的研究方向。

Conclusion

  • 在這篇論文中,作者們介紹了一種新穎的賽局理論機制,用於去中心化儲存網路,允許客戶挑戰儲存服務提供商。這使得作者們能夠消除對持續驗證儲存服務提供商的要求,進而提高DSN的性能。此外,客戶受到了服務拒絕攻擊的保護,該攻擊是其中有一個不誠實的儲存服務提供商向網路提交儲存證明,同時拒絕為客戶提供服務。本篇論文所提出的模型可插入任何具有智慧合約執行能力的區塊鏈平台。作者們利用智慧合約和預言機網路來管理儲存合約的規則,並使用Solidity語言和Chainlink預言機網路實現了所提出的方案。性能的實驗結果展示了所提出方法的適用性。

Discussion

  • 這篇論文的核心在於將賽局理論與設計去中心化網路相結合。然而,論文中設計的賽局可能過於理想化。在現實中,惡意的儲存服務提供商可能獲得的利益比智慧合約處罰的部分更多,導致論文中所描述的理想賽局均衡情況可能不會發生。由於考慮到在區塊鏈上的實際部署成本,這篇論文是在以太坊測試網上實作的。因此實驗過程中所能評估的指標非常有限,可能無法完全反映實際情況。

Blockchain-Based File Replication for Data Availability of IPFS Consumers

Introduction

  • 區塊鏈技術雖然提供了安全性和透明度,但面臨著像是鏈上儲存容量的限制。因此,為了應對區塊鏈的儲存限制,常常會將星際檔案系統(IPFS)作為區塊鏈的儲存層。然而,IPFS缺乏隱性機制來確保資料的可用性,使其容易受到節點維護或故障的影響。確保長期資料可用性對於各種應用至關重要,例如具有長期儲存價值要求的非同質化代幣(NFTs)。將資料複製到其他節點是一種實用且簡單的方法,可用於保護資料免受硬體故障的影響,並提高資料的可用性。保留資料的備份副本不僅增強了資料的可用性,還提高了資料檢索效率。
  • 先前在點對點(P2P)網路中使用的複製方法也可以用於增強IPFS網路中的資料可用性。然而,先前的複製方法存在一些限制。這些複製方法可以分為兩類,即集群(Cluster)和複製合約(Replication Contract)。集群,例如將複製系統分成集群,每個集群負責本地資料儲存和維護,優化儲存使用。然而,集群缺乏靈活性,無法適應對等可用性或儲存容量的不均衡分佈,或P2P網路系統的動態變化。在複製合約中,例如,對等節點在系統內尋找複製夥伴建立複製合約,實現互相複製資料。複製合約容易受到其他對等節點自私行為的影響,導致高可用性對等節點的資料可用性增加,而低可用性對等節點的資料可用性降低。
  • 為了實現整體資料可用性的最佳化,同時保證靈活性,本篇論文引入了一種基於區塊鏈的文件複製機制。透過利用區塊鏈記錄文件複製過程中使用的對等節點資訊,所提出的機制確保了真實性和可信度。與先前的方法不同,本篇論文所提出的機制採用了受Arweave啟發的文件複製演算法,該演算法會根據預定規則自主複製來自其他對等節點的文件,優先處理可用性較低的文件。透過系統範圍的規則限制對等節點的自私行為,從而對所有對等節點的資料可用性進行了均衡優化。此外,文件複製機制還包括一個用於判斷和排除不誠實對等節點的智慧合約,促進了對等節點之間的誠實合作。智慧合約允許對等節點自主判斷和排除不誠實的對等節點,而無需涉及任何第三方,從而增強了複製系統的去中心化和對等節點之間的自治性,同時降低了運營成本。

Overview

  • 本篇論文所提出的機制採用了一種優先複製系統中較低可用性文件的複製演算法。複製將持續進行,直到所有文件的可用性都得到優化。因此,所提出的機制可以有效地在複製系統中實現整體資料可用性的最佳化。該機制利用區塊鏈儲存文件複製演算法使用的對等節點資訊。區塊鏈的不可篡改性確保了資訊的真實性和可信度。這些資訊包括對等節點的可用性、關鍵文件的內容識別符(CIDs)和大小、共享儲存空間大小以及IPFS對等節點的ID。對於每個文件,區塊鏈上存在一個複製者池,其中文件所有者是最初被添加到該池中的對等節點。
  • 本篇論文所提出的機制要求對等節點按照其貢獻的比例消耗儲存資源。如果對等節點共享的儲存空間大小與其關鍵文件大小之和的比例未達到預定值𝑃,則區塊鏈上的智慧合約將拒絕輸入。(對於一個對等節點而言,𝑃的值與其可用性成反比,文件可用性越大,P就會越小,也就代表文件已經不需要再被複製)然而,如果一個對等節點秘密地刪除副本,並且隨後被檢測到,則將受到欺詐的指控。因此,系統中應該有一個安全的監控協議來監測對等節點的可用性,以便對等節點檢查其他對等節點的可用性。被指控欺詐的對等節點將被智慧合約審判,如果被判有罪,將被智慧合約排除在文件複製系統之外。
  • 下面的圖顯示了作者們所提出機制的基本概念。文件複製系統是由節點或對等節點組成,代表獨立的IPFS使用者。對等節點會為其關鍵文件分配儲存空間,並為與其他對等節點共享提供額外的儲存空間。每個對等節點都希望提高其關鍵文件的可用性。與先前提出的方法不同,作者們提出的機制採用了一種優先文件複製系統中可用性較低文件的複製演算法。文件複製將持續進行,直到所有文件的可用性都得到了最佳化。因此,作者們的機制可以有效實現文件複製系統內的整體資料可用性優化。作者們的機制利用區塊鏈來儲存由文件複製演算法使用的對等節點資訊。

Arweave-Inspired File Replication

  • 本篇論文所提出的文件複製演算法靈感來自於Arweave的賽局理論設計,用於永久存儲。Arweave是一個穩定、成熟且廣泛應用的經濟可持續資訊永久性協議。Arweave透過區塊織和隨機訪問摘要證明 (SPoRA)的巧妙組合來實現這一宏偉目標。在區塊織中,每個區塊都與兩個前置區塊相關聯:區塊鏈中的前一個區塊,以及來自區塊鏈先前歷史的一個區塊,稱為“callback區塊”。對於礦工要成功挖掘一個新區塊並收到相應的代幣獎勵,他必須首先驗證callback區塊。驗證的唯一方法是將其儲存下來。SPoRA 鼓勵礦工儲存較為“稀有”的區塊,而不是儲存很好複製的區塊,因為有限的礦工可以競爭同一水平的獎勵,當選擇稀有區塊時。
  • 在文件複製演算法中,作者們將文件𝑓的可用性𝐴(𝑓)定義為其複製者(包括擁有者)中至少有一個可用的事件的機率。𝐴(𝑓)可根據其複製者的可用性 {𝑟_1,𝑟_2, …,𝑟_𝑗}來計算並以下方的數學表達式來計算。當一個對等節點的複製品少於其共享存儲容量時,它會定期複製可用性最低的文件。透過複製增加文件的可用性。顯然,文件的複製越多,其可用性就越高。但是,這將增加儲存開銷的成本。考慮到對等節點之間的儲存容量限制和文件可用性的需求,所提出的演算法設置了一個滿足的可用性閾值𝑇_𝐴。 如果文件可用性𝐴(𝑓)>𝑇_𝐴,則𝑓將不會包含在任何對等節點的複製列表中,也就不會被任何對等節點複製。
  • 下面是文件複製演算法的pseudo-code,當p太大的時候,表示文件的可用性不足,需要其他的對等節點幫忙複製副本。而p和文件的可用性是成反比的,當文件可用性越大,p就相對越小,也表示有越多對等節點有該文件的副本。在下面的迴圈中,當需要複製的文件序列是空的時候,則會選擇鄰居對等節點的文件加入序列。接下來當文件複製序列不是空的時候,會先將序列當中的複製文件序列以可用性大小進行排列,而當特定文件的可用性A(f)小於設定的閾值T_a,則系統中的對等節點會開始協助建立文件的副本,並且當文件副本複製成功時,就會加入文件的副本池當中。

Dishonest Peer Judgement

  • 在文件複製系統中,有可能遇到不誠實的對等節點。這些對等節點可能會從事不誠實行為,像是秘密丟棄它們手上的文件副本(因為儲存這些文件會消耗它們的資源)或提供虛假資訊和故意降低文件的可用性。在本篇論文中,作者們首先使用賽局理論分析了這種情況,然後介紹了所提出的機制如何利用智慧合約有效地判斷和排除不誠實的對等節點。
  • 博弈理論分析: 文件複製系統中的每個對等節點都有兩個選擇:對等節點可以選擇合作$(C)$,例如儲存其他對等節點的文件以幫助它們提高資料可用性,或者缺席$(D)$,例如秘密丟棄其他對等節點的文件以節省自己的資源。
  • 下面的小圖表示的是兩個對等節點在賽局中的payoff矩陣,我們可以從中知道短期的均衡會落在$(D,D)$,此時兩個對等節點的payoff都是1,但在長期均衡賽局,長期的賽局均衡點則會轉而落在$(C,C)$,此時兩個對等節點的payoff都是2。
  • 賽局理論分析: 總的來說,從事不誠實行為可能會帶來短期收益。如果對等節點𝑎發現其一個副本對等節點𝑏的行為不誠實,例如丟棄了a的文件,則a不僅會丟棄b的文件(如果a存儲了b的文件),還會通知其他對等節點有關b不誠實的情況,這可能導致將𝑏排除在文件複製系統之外。
  • 不誠實的對等節點判斷和排除: 儘管理性的對等節點應該進行誠實的合作,但對於對等節點定期檢查其副本的忠誠度仍然是必要的。一個對等節點可以合理地每隔幾個小時或甚至一天檢查其副本。IPFS提供了根據文件的CID通過基於Kademlia的DHT找到文件提供者的功能。這種機制可以作為檢查文件儲存狀況的手段。因此,區分試圖欺騙的對等節點和只是離線或遇到暫時故障的對等節點是很重要的。不能因為暫時失去連接或故障就將對等節點標記為不誠實。作者們建議,如果兩次失敗檢查之間的時間長於預定的時間T,那麼該對等節點就可以被視為不誠實。為了保持問責制和透明度,每次檢查的結果應該記錄在區塊鏈上。所提出的機制主要應用智慧合約來有效地判斷和排除不誠實的對等節點,避免涉及任何第三方實體。值得注意的是只有潛在受害者有權發起投票來確定對等節點是否誠實,並且只有其不誠實行為的其他潛在受害者可以參與投票過程。
  • 下面的第2個演算法就是在做對等節點的資格審查,演算法會透過對等節點的ID和Address,經過hash function比對誰是潛在的受害對等節點,並以此決定誰有資格對特定的對等節點發起不信任投票,以及有哪些對等節點擁有不信任投票的投票權。
  • 因為系統中可能存在有應參與投票但不參與投票過程的對等節點。所以,智慧合約不要求所有對等節點都參與投票,而只要有超過半數的投票者投票"不誠實"或一半的投票者投票 “誠實”,就可以確定最終結果。這提高了投票過程的效率。整個不誠實對等節點的判斷和排除的過程就如下面的圖所示。
  • 下面是智慧合約上針對特定節點發起不信任投票和排除過程的pseudo-code,整個流程可以分為3個步驟:
    1. 投票發起者將其指控為不誠實的對等節點的IPFS Peer ID和該對等節點的不誠實性質 D_A傳送到智慧合約。D_A有三種可能的值:“DR”,表示秘密刪除文件副本;“IA”,表示提供不準確的可用性或故意降低可用性;“IS”,表示提供不準確的文件大小。身份驗證程序完成後,智慧合約將發起投票,將投票權授予投票者,並創建通知以通知投票者。重要的是,投票發起過程不能重複。如果發起失敗,將創建通知以通知投票發起者。這確保了在發起嘗試失敗時對用戶的透明度和反饋。
    2. 身份驗證程序完成後,投票者投票(“誠實"或"不誠實”)。每位投票者只允許一次投票,並禁止多次投票。投票者投票後,將剝奪其投票權以防止多次投票嘗試。如果一個投票者試圖投多次票,其請求將被拒絕。這確保了投票過程的完整性。
    3. 如果超過一半的投票者投票為"不誠實",智慧合約將暫停投票,並將被指控的對等節點標記為不誠實的對等節點,刪除其資訊,並向系統中的所有對等節點廣播其不誠實行為。此舉有效地將該對等節點排除在文件複製系統之外。如果一半的投票者投票為"誠實",智慧合約也將暫停投票,使被指控"不誠實"的對等節點得到平反。

Performance Evaluation

  • 在實驗過程用來對比的文件複製演算法:
    • 複製契約:樂觀查詢、實用查詢
    • 複製契約&集群:明確點擊
  • 為了對所提出的演算法進行全面評估,作者們在以週期為驅動的P2P模擬器PeerSim上實作了這些演算法。作者們的目標是評估該演算法在大規模P2P網路中不同的流動水平下的性能。作者們以一個基本假設開始了對P2P文件複製系統的模擬:所有對等節點的離開、到達、斷開和重新連接都是完全獨立的。該P2P網路擁有10,000個對等節點。為了簡單起見,每個對等節點都擁有一個需要複製的單個重要文件,而且所有這些文件的大小都相等,而每個實驗都持續了9,000個週期。
  • 在實驗中,每個對等節點都與特定的配置文件相關聯。隨後,對每個節點的可用性添加了具有𝜎=0.1的高斯noise。最後,將文件可用性限制在3%~97%的範圍內,下面的這張表就是不同狀態的對等節點的分布狀況,而不同狀態的節點也有各自不同的可用性。
  • 根據前面表格的對等節點的狀態分布狀況,我們可以將表格產生的對等節點分佈以下圖的直方圖來表示,而每個對等節點的可用性在整個模擬過程中都保持不變。
  • 下面的圖的(a)部分顯示不同對等節點可用性對平均文件可用性的影響。顯然,明確的點擊產生了多樣的文件可用性範譜:高度可用的對等節點的文件可用性高於99%,而可用性低於約50%的對等節點的文件可用性低於99%(隨著對等節點可用性的降低,文件可用性也降低),而最不可用的對等節點幾乎不受複製的影響,文件可用性低於15%。在樂觀查詢中,只有最可用的對等節點的文件可用性高於99%,其他對等節點的文件可用性幾乎不變,因為很難找到協助複製文件的夥伴。實用查詢的結果是,所有對等節點的文件可用性都高於45%,而某些對等節點,包括高度可用的對等節點和可用性較低的對等節點,其文件可用性都高於99%。除作者們的算法外,所有方法都無法保證整體資料可用性的優化。相反,作者們的演算法使所有對等節點的文件可用性都高於99%,實驗結果表明作者們的演算法能夠實現整體資料可用性的優化。
  • 下面的圖的(b)部分描述所有方法的平均副本數與對等節點可用性之間的關係。我們可以觀察到,在樂觀查詢中,除了最可用的對等節點外,基本上沒有副本存儲在其他對等節點上。由於具有高文件可用性的對等節點具有更多的複製文本夥伴,因此實用查詢呈現了與上圖(a)部分相似的趨勢。我們還可以觀察到,明確的點擊和作者們的演算法都表現出穩定性。在作者們的演算法中,即使在對等節點的儲存容量沒有任何限制的情況下,大多數對等節點的平均副本數仍保持在大約4個左右,而在明確的點擊中,大多數對等節點的平均副本數保持在大約6個左右。這些結果證實了作者們的演算法產生了更少的文件副本和更低的儲存成本。
  • 下面的圖顯示作者們所提出演算法的替代版本在T_A=7、T_A=8和T_A=9的情況下都具備有效性,所有10,000個文件都成功達到了令人滿意的可用性。為了簡化實驗結果,作者們在這邊選擇展示100個文件的結果,結果也表明所提出的演算法的替代版本也可以優化系統內的整體資料可用性。
  • 下面的圖顯示系統中所有文件的平均可用性與對等節點的加入/離開率之間的關係。除作者們所提出的演算法外,其他演算法的表現都在更高的節點變動率下急劇下降,因為離開的那些對等節點可能擁有文件副本。由於作者們所提出的演算法具有最佳進展的優勢,在複製文件過程的每一步都最大化了整體資料可用性的優化,因此其表現不太受節點變動的影響。從實驗結果也證明了所提出的演算法對節點變動的強大穩健性。

Conclusion

  • 本篇論文提出了一種基於區塊鏈的文件複製機制,其中IPFS用戶可以相互幫助防止硬體故障並提高資料可用性。該提出的機制包括一個受Arweave啟發的文件複製演算法和智慧合約,用於資訊收集和更新,以及不誠實對等節點的判斷和排除。此機制利用區塊鏈來記錄文件複製演算法使用的對等節點資訊,以確保真實性和可信度。機制會優先複製可用性較低的文件,直到由IPFS用戶組成的複製系統中的所有文件都達到滿意的可用性。此外,該機制可以透過利用區塊鏈資訊和每個對等節點的文件複製的獨立性,動態適應複製系統的變化。用於判斷和排除不誠實對等節點的智慧合約允許對等節點公平地判斷被指控不誠實的對等節點,並有效地將不誠實的對等解點排除在文件複製系統之外,從而促進了對等節點之間的誠實合作,而無需涉及任何第三方。
  • 本篇論文提出的機制實現了整體資料可用性的優化,並提供了靈活性。實驗結果展示了該機制與其他方法相比的優異性。它在整個複製系統中實現了顯著的資料可用性改善,減少了儲存開銷,並表現出優秀的抗干擾能力。其低開銷和卓越的效果尤其適用於像IPFS這樣的P2P資料網路的部署。此外,智慧合約是在Truffle框架中編譯和部署的。智慧合約的可行性已經經過了全面的測試和驗證。

Discussion

  • 在實務應用中,隨著網絡中的對等節點數量增加,本篇論文所提出的機制的可擴展性可能會面臨挑戰。將區塊鏈用於資訊記錄和智慧合約可能會導致可擴展性問題,特別是在大型網路中。transaction數量和區塊鏈大小的增加可能會影響系統的整體性能和效率。在區塊鏈上實作智慧合約需要運算資源。根據所選的區塊鏈平台(例如以太坊),執行智慧合約和在區塊鏈上儲存資料的成本可能會很高。這可能會在資源受限環境中對資源消耗造成挑戰,並可能限制所提出的機制的可行性。

Towards Practical Auditing of Dynamic Data in Decentralized Storage

Introduction

  • 分散式儲存(DS)的開放性要求有說服力的技術手段,以確保使用者的遠端儲存資料保持完整。時至今日,幾乎每個分散式儲存的相關應用都在其設計的核心擁有內建的資料審計機制,其中一個審計者會定期驗證儲存節點的外包資料的隨機部分(chunks),並根據審計結果對節點進行獎勵或懲罰。但將關鍵的資料儲存審計功能委派給任何單一方來執行都違反了去中心化的原則。大多數分散式儲存相關應用都依賴於一個通用的區塊鏈作為公正的公共審計員。在區塊鏈上,它可以驗證節點提交的儲存證明,並以公平的方式解決各方之間的潛在支付爭議。這種被稱作鏈上審計的架構要求儲存證明和審計員狀態盡可能佔去較小的儲存資源。而經典的儲存證明(PoS)方案則提供了一個充滿可能性的解決方案,因為它們可以生成高度緊湊的證明,並且紀錄審計員的狀態僅需微不足道的儲存空間,但是這種方法僅對靜態資料有儲存證明的保證。
  • 在學術方面,過去已經提出了一系列動態儲存證明方法,適用於傳統的雲儲存。但是其中一些基於安全原因在鏈上審計的架構中本質上不適用。而對於分散式儲存的上下文潛在適應性的動態儲存證明方案可以分為兩個主要類別。
    • 第一類設計結合同態標籤和身份驗證資料結構(ADS)來保護外包資料,同時允許以次線性成本進行有效更新。它們的主要缺點是儲存證明的所需儲存空間較大。
    • 第二類設計可以生成與經典的靜態儲存證明方法相比較的較短證明。但是它們需要審計員維護具有高更新成本的動態狀態,這對於鏈上審計來說太昂貴了。
  • 總而言之,在分散式儲存新興背景下的動態資料的實際審計仍然是一個大部分尚未被探索的問題。在本篇論文中,作者們研究了動態儲存證明的設計空間,並觀察到技術細節圍繞著索引資訊的處理。透過適當的索引轉換機制,可以將靜態儲存證明轉換為動態儲存證明,同時保留前者的緊湊存儲證明。這個機制在審計協議中導入了一個不普通的索引狀態給各方,其中關鍵的技術挑戰是如何管理這個索引狀態,使得它可以在一個資源敏感的公共區塊鏈中被實際維護,當中的每個字節都至關重要。

Overview

  • 一個分散式儲存系統是由多個層次構建而成。從架構上看,資料審計層位於基礎儲存層和上層激勵層之間,將它們黏合在一起。它與底層儲存系統進行交互並提供必要的支持,即提供外包(上傳)資料保持完整的證據,並確保區塊鏈激勵機制的正確運作。在作者們的設計中,儲存節點是個別進行審計的,這意味著原始資料的所有者將與不同的儲存節點簽署單獨的合約。這是合理的,因為去中心化網路中的節點通常不會以協調的方式工作,不同節點在容量和承諾的服務品質上有所不同。作者們是使用公共區塊鏈作為去中心化的基礎設施,並且不考慮設計基於儲存證明的共識協議,類似於一些現有提出的方法那樣。
  • 區塊鏈的鏈上審計功能是透過一個我們稱為審計合約的智慧合約來實現的。它包含了用於儲存合約設置、資料審計、更新等功能。審計合約當中應該定義介面來處理離鏈方(off-chain)之間的爭端,並與分散式儲存的激勵機制進行交互,而該激勵機制可以在其他智慧合約中實現。在所提出的架構中,原始資料所有者會在其本地端設定資料的審計協議。而在儲存證明的相關文獻中,這種私有設定(private-setup)被默認考慮。作者們強調這一區別,因為它導致了不同的安全性影響,特別是當一個人想要獲得對相同資料的多個副本的完整性保證時。在公共設置(public-setup)中,儲存節點可以透過儲存比所需更少的資料來欺騙原始資料的所有者。而在私有設置(private-setup)中,原始資料所有者本身可以使用不同的密鑰對資料副本進行加密,使它們彼此獨立,以解決上述問題。
  • 作者們提出的系統模型包括三個對象,分別是本地資料儲存的原始資料擁有者、協助建立檔案儲存副本的儲存節點和監督雙方的鏈上審計智慧合約。而資料審計層是建立在底層存儲層之上,為分散式儲存架構中的上層激勵層提供服務。下面圖片當中的箭頭表示主要的資料流動。虛線則表示正常的資料檢索過程。
  • 作者們假設區塊鏈平台是可信的,並且用於審計的智慧合約是被正確實作的。他們不考慮針對區塊鏈本身的攻擊。而資料所有者和儲存節點彼此互不信任。為符合分散式儲存開放經濟的原則,作者們也考慮到了惡意的資料所有者。他們可能會虛假的指控儲存節點,以獲得智慧合約強制執行的潛在補償。最後,作者們假設各方之間的通訊通道是經過身份驗證的。在先前的研究表明,在公共儲存審計的設定中,第三方審計員可以通過反覆挑戰儲存證明來從中恢復原始區塊。在分散式儲存的情況下,這是否會構成嚴重問題是值得辯論的,因為那裡儲存的資料幾乎總是默認加密的。在所提出的設計中,作者們可以方便地使用現有的構造來實例化底層的儲存證明方法,使儲存證明成為零知識,從而防止鏈上資料被惡意恢復。

On-Chain Auditing of Dynamic Data

  • 作者們試圖解決資料動態性的問題,同時保持儲存證明方法的效率。他們的關鍵思想是將chunk與替代索引資訊綁定在一起,這種索引資訊對於資料動態性不敏感。理想情況下,一個chunk的更新應該只會影響到其自身的標籤。作者們稱這種索引為偽索引(pseudo-index),用p_i表示,對應於chunk f_i。對於所提出的設計要能正確運作,邏輯索引和偽索引之間必須有一對一的對應關係。而這種映射應該要被存儲在某種資料結構中,引入了一個非普通的狀態需要由參與儲存證明方法的各方保持。它允許各方獲取必要的索引資訊,用於標籤計算、證明生成和驗證,以及更新的操作。這種方法可以將任何靜態儲存證明方法轉換為動態方法。只要在任何時候使用的所有偽索引都是不同的,並且(公開的)審計員始終保持正確的狀態,資料完整性或可檢索性的安全保證就保持不變。
  • 索引映射是以顯性的形式(index i和pseudo index p_i)來儲存,無論使用的資料結構是什麼,插入和刪除操作的時間複雜度始終是O(n)。作者們發現索引映射可以透過鏈表優雅地編碼。假設鏈表的每個節點按正確的順序存儲一個資料chunk。那麼,一個chunk的邏輯索引就是它在鏈表上的位置,偽索引可以設置為其節點的地址。在更新過程中,索引映射會由鏈表自動維護。鏈表不需要儲存實際的chunk,因此我們可以使用僅儲存指標(和其他小的meta data)的普通數組來實現它。作者們稱該結果為簡潔資料結構的偽索引鏈表(PIL,Pseudo Index Linked List)。
  • 相同的偽索引(pseudo-index)隨著時間的推移可以分配給不同的chunk。這創造了一種relay attack的可能性,其中儲存節點使用與索引匹配的過時、無效的chunk來偽造證明。為了確保新鮮度,作者將每個chunk的最新更新時間關聯起來,並將時間戳(time stamp)作為狀態的一部分儲存起來。他們用IS表示所得到的狀態。需要注意的是,審計員可以直接使用它們的偽索引(或等效地使用IS的陣列索引)來抽樣chunk。儲存節點能夠將挑戰(challenge)中的偽索引映射回邏輯索引,並像往常一樣生成證明。由於審計員不需要進行索引轉換,現在它只需要保持一個與其他兩方的IS一致的時間戳陣列即可。作者們將這樣一個最小的陣列表示為A_ac。審計員可以輕鬆地使用從客戶端發送的偽(陣列)索引和時間戳來更新A_ac。
  • 在OAD(On-Chain Auditing)中,作者們是用一個單一的PIL來管理索引狀態,現在他們則嘗試為每個segement添加一個單獨的PIL。一個segement管理一系列連續的邏輯chunk索引的索引映射,這些segement本身是自然排序的。一個全域的邏輯chunk索引可以用segement索引和segement內的局部邏輯chunk索引的形式唯一地表示。這種設計產生了一種雙層結構:一個PIL用於segement索引,以及另一組PIL用於chunk索引。segement導致了兩個獨立的狀態:包含一組用於chunk索引映射的IS+和用於segement資訊管理的IS-。因此,作者們提出了第二個鏈上審計協議OAD+。它與OAD之間的主要區別在於它們如何處理索引資訊。在這裡,AC(Audit Contract)依賴於從SN(Storage Node)發送的驗證chunk索引信息來驗證儲存證明的有效性。

Data Abstraction for Auditing

  • 頻繁的資料重新定位可能會導致嚴重的碎片化問題,造成許多未被充分利用的chunk和性能影響。理想的設計應該將chunk的變更限制在它們自身之內,並保持所有chunk的平衡和高度利用狀態。儘管存在這些複雜的因素,但審計所需的實際內容非常簡單:只需要將資料視為一系列有序的chunk。資料是如何由底層存儲系統組織和儲存對審計協議來說並不重要。透過提供適當的資料抽象層,作者們可以將審計與資料存儲解耦,使得所提出的審計協議可以部署在任意存儲系統上。另一個好處是,作者們發現在操作中,這個小的資料抽象層可以完全存在於主要記憶體(main memory)中。這使得對審計協議和儲存系統進行性能優化的準確分析更加容易。
  • 從下面這張圖可以看到透過作者們提出的Data Abstraction Layer,在本篇論文中所提出的兩種審計協議,可以被應用在各種不同的資料儲存設備或系統上。
  • 這個資料抽象設計的核心是作者們提出的輕量級審計chunk(LAC,Lightweight Audit Chunk)。LAC儲存虛擬的資料片段。一個LAC的容量是它可以容納的最大虛擬資料量,它的大小等於它當前儲存的所有三位元組的長度之和。一個LAC不一定是滿的,也就是它的大小可以小於或等於它的容量。一個對象可以跨越多個LAC,並且總是將一個對象分配到一個最小必要數量的連續LAC中。這可以有效減少資料碎片化和管理開銷,因為三位元組的總數被最小化了。而LAC可以被自由修改、插入或刪除,以滿足審計協議的需要。更新一個LAC涉及操作meta data三位元組,但不涉及實際資料,因此具備非常高的效率。

Evaluation

  • 作者們是在C++中實現了他們的協議以進行評估。他們依賴於mcl函式庫來實現主要的加密操作。為了128位元的安全性,他們使用曲線BN12-381來實現儲存證明方法。同樣的曲線也被用來實現BLS簽名協議OAD+。他們還構建了資料抽象層並將其插入到原生Linux文件系統中以了解其對性能的影響。作者們使用了一個測試平台,搭載有Intel E-2174 CPU(3.8GHz,8核心)和64GB RAM。它具有一個4TB容量和7200 RPM的HDD。而所有實驗都在單核心上執行。除非另有說明,否則每個圖表的資料點都是在100次獨立運行中進行平均。對於I/O相關的實驗,作者們則始終都會清除Linux系統的頁緩存,以確保操作系統不會將文件緩存在內存中,而無法呈現真實的實驗結果。
  • 下方的表格展示了在相同的128位元安全性和1TB文件下的具體儲存證明大小。ICPOR的儲存證明大小相等於一個chunk加一個tag的大小。 DPDP的儲存證明大小則接近於一個chunk加上c個tag和c個長度為log(n)的ADS驗證。可以從表中看出,雖然ICPOR可能適用於具有小chunk的鏈上審計,但使用DPDP(以及一般的基於ADS的設計)是不切實際的,因為其儲存證明大小總是太大。相比之下,OAD和OAD+生成的儲存證明則要小得多,而可以很好地支援現實世界的區塊鏈平台。
  • 下方的圖則顯示了從1GB到1TB大小的文件對應的審計狀態的大小,從結果可以看到,所提出的審計協議可以找到一個最佳的chunk大小,使得給定文件大小的狀態大小最小化。對於1TB文件和256KB的chunk大小,OAD+產生了一個0.78MB的狀態,且m = 100;對於64KB的chunk大小,則產生了一個0.25MB的狀態,且此時m = 1000。值得注意的是,這樣小的狀態大小甚至可以與基於ADS的方法的證明大小相媲美。這是對需要O(n)狀態的設計的一個顯著改進。(這邊OAD+中的參數m是用來調整IS-索引狀態大小)
  • 下方的圖顯示在一次審計過程中,對於1TB資料的儲存證明的生成時間。與靜態審計協議相比,動態審計協議需要對狀態進行線性掃描以找到正確的索引,而OAD+還需要對索引位元組的簽名進行聚合。正如圖中所觀察到的,由於小chunk size需要大量線性掃描工作,成本是顯而易見的。但隨著chunk大小的增長,這種成本會迅速減小。從64KB的chunk大小開始,動態審計協議的性能幾乎與靜態審計協議一樣好。
  • 下方的圖顯示資料擁有者的本地資料更新成本。這裡作者們只考慮插入操作,因為它在三種更新操作中是最昂貴的一種。除了計算新的tag之外,審計協議還需要尋找相應索引狀態的PIL,並找到插入的正確位置。從實現評估的結果可以看到尋找相應索引狀態的PIL過程在OAD的本地資料更新成本中佔據主導地位,但不是造成在OAD+中本地資料更新成本高昂的主要原因。
  • 下方的圖顯示資料擁有者的審計協議設定時間。OAD的成本基本上應該與靜態審計協議構造相同,因為其索引狀態初始化是可以忽略不計的。而OAD+則需要額外的成本來對索引位元組進行簽名,但其整體設定成本仍然會由底層儲存證明所主導。
  • 下面的表格概述作者們實驗中所使用的資料集。其中四個是使用FileBench生成的,並遵循gamma分佈,平均文件大小為1MB、2MB、5MB和10MB。最後一個是從GitHub Clone的Linux代碼庫,並去除.git文件夾。
  • 在下面的圖中作者們評估了不同chunk大小的資料抽象層構建時間。結果顯示,即使對於會導致大數量chunk的最小chunk大小,設置1TB資料集也只需10秒。這樣的低成本是由於構建資料抽象層僅需要讀取文件的meta data而不是它們的實際檔案內容所導致的。
  • 作者們在下面的圖中顯示加載隨機chunk的時間。理論上,I/O成本應該與chunk大小成正比,這種一般趨勢在圖中是可見的。然而,對於較小的chunk,在兩個較大的資料集的結果上顯示了相反的方向。這是由於對chunk的順序掃描以訪問它們。我們可以透過在支援快速查找的資料結構中儲存chunk的指標來提高查找性能。
  • 除此之外,作者們還測量在儲存節點上寫入更新文件所需的成本,這包括在chunk中更新相關的三位元組。估計的成本與將文件僅寫入硬碟的時間相對應。作者們考慮文件大小從1KB到1GB的範圍,對於每個大小,他們從FB-1TB數據集中隨機抽樣文件,而下面圖中的結果表示,對於所有文件大小和chunk大小,這種成本都是可以忽略不計的(因為overhead都小於1%)。

Conclusion

  • 新興的去中心化儲存範例展示了巨大的潛力。為了激勵謹慎的用戶,這樣的系統必須提供強大的資料完整性保證,同時支援完整的資料動態性以提高可用性,而在這方面很少有人研究過。本篇論文則對現有資料審計解決方法在滿足新範例方面的不足進行了深入研究。為了填補研究領域上的空白,作者們開發了一系列針對動態資料進行了優化的鏈上審計協議,並展示了它們的實際效率。隨著具有強制可審計性的去中心化儲存的趨勢持續增強,作者們希望他們的研究成果能夠激發更多對這一激勵人心的技術的可用性方面進行研究的動力。

Discussion

  • 這篇論文的主要缺點在於在資源敏感的公共區塊鏈中去管理索引狀態的挑戰,其中的每一個字節都很重要。所提出的機制在實現鏈下(off-chain)也就是資料擁有者(OW)和儲存節點(SN)之間的更新效率上面臨挑戰。此外,所提出的方法需要審計員維護複雜度O(n)具有高更新成本的動態狀態,這對於鏈上審計來說太昂貴了。這限制了它們在用戶數量和資料量不斷增長的實際去中心化存儲網路中的應用。並且在動態儲存證明方案中使用身份驗證資料結構(ADS)導致的大型證明大小是一個重大挑戰,這使得儲存證明由於其大小對於鏈上審計而言變得不切實際。以上這些缺點突顯了在去中心化存儲網路中審計動態資料還是有更有效和實用的解決方法的需求。

去中心化儲存網絡(DSN)的限制

儘管去中心化儲存網路系統具有潛力,但它仍然存在一些缺點。由於這項技術正處於起步階段,所以研究人員正在尋找解決其挑戰的方法。以下是基於區塊鏈的去中心化資料儲存網路系統所面臨的一些挑戰:

  • 缺乏信任
    • 使用P2P技術,資料以去中心化的方式存儲,繞過了集中式的規定。但是由於在資料丟失或交易丟失時缺乏相關的問責機制,去中心化網路可能難以讓企業和消費者信任。由於缺乏對去中心化網路的信任,去中心化網絡的開發者正在努力增加最高級別的安全性,而新技術可能需要時間來贏得企業的信任。
  • 開發的複雜性
    • 在開發基於區塊鏈的去中心化儲存網路時,共識機制會變得更為複雜。儲存證明(Proof-of-Storage,PoS)基於共識機制,透過驗證遠端文件的完整性,PoS確保了文件的真實性。為了解釋這一點,系統中的每個節點必須證明其提交的資料使其有資格添加新記錄。否則,使用者會認為區塊鏈網路的共識機制是有問題的。雖然設計的共識機制相對複雜,但正如任何開發者會告訴使用者的那樣,這是值得關注的應用。
  • 安全問題
    • 儘管去中心化儲存系統具有很強的安全性,但惡意的節點仍可能透過發動集中攻擊來破壞和潛在地摧毀整個去中性化儲存網路系統。而基於區塊鏈的去中心化儲存系統目前仍在開發中,以防止這些惡意攻擊。
  • 需要時間進入主流
    • 去中心化儲存無疑解決了集中式儲存的常見問題。與傳統的主流儲存系統相比,去中心化儲存具有許多優勢。而要被廣泛採用,去中心化儲存網路系統必須提供優於現有市場的服務。但是目前這項技術仍處於起步階段,直到它在企業中得到更廣泛的使用之前,它都將保持其在市場上的小眾地位。

研究挑戰與未來方向

由於這項以區塊鏈為基礎的去中心化儲存網路技術仍處於初期階段,因此還有許多改進之處。我們會在這個段落討論個人和組織在使用基於區塊鏈的去中心化儲存網路相關服務時面臨的問題。

  • 安全性
    • 儘管區塊鏈網路比起傳統集中式系統提供更高的安全性,但需要注意的是,區塊鏈可能無法提供完全的安全保障。由於去中心化網路比集中式網路更不容易出現安全問題,因此這些問題較少發生,但並非完全不可能發生。如果需要編輯或與第三方共享資料,則每次都必須對加密文件進行解密和重新加密,此時安全問題就可能會發生。此外,資料僅在儲存時是安全的,而在網路傳輸過程中卻並非如此。一些攻擊可能嚴重損害區塊鏈本身及其應用。例如,對使用工作量證明(Proof of Work)共識演算法的區塊鏈發動51%攻擊是可能的,擁有高運算能力的節點可以控制區塊鏈的運作,這將導致自私挖礦和雙重支付等攻擊。而透過增加系統中節點數量,可以有效防止這些攻擊,以確保沒有單一群體能控制整個區塊鏈。
  • 決策資料不足
    • 在許多公司和組織中,收集的資料被視為可供分析和處理的寶貴資源,以幫助決策。由於所有資料在儲存前都被加密,基於區塊鏈的儲存系統則無法完成此過程。公司可以授權給認證代理,將資料儲存在如Block House的基於區塊鏈的儲存系統中。因此,公司代理可以根據需要檢索和分析所有資訊。此外,擁有認證成員的私有區塊鏈不需要資料加密。透過區塊鏈,資料可以安全、可靠且可被追踪地儲存在鏈上。
  • 法律限制缺乏
    • 部署在區塊鏈上的智慧合約的合約雙方如果寫下了重要資訊和條件,就不能否認或違反該合約。儘管如此,如果發生欺詐、騙局或其他意外問題,卻沒有實務上現實的法律支持或法院系統可以依靠。
  • 可擴展性問題
    • 任何希望加入區塊鏈網路的人都可以透過成為志願節點來加入網路。隨著網路的增長,保持網路效率和安全性會變得具有挑戰性。區塊鏈網路的可擴展性問題可能導致延遲和其他問題。隨著新節點加入網路,新節點的啟動時間包含下載和分析網路歷史所需的時間,對於像比特幣這樣的舊且大的區塊鏈來說,既昂貴又耗時。
  • 訪問控制
    • 區塊鏈始終包含以前交易的記錄,可以預期大量資料將在所有節點間不斷複製,但這並不意味著區塊鏈本身就是一個資料庫。根據這兩個規範,儲存在區塊鏈上的大文件可能會膨脹。區塊鏈儲存網路無法在使用者之間共享文件。目前基於智慧合約的解決方案已被提出來克服這一問題,但它們僅適用於IPFS。

Conclusion

本文探討了區塊鏈技術在分散式儲存網路 (DSN) 中的應用。文章主要介紹了三篇 IEEE Transactions 期刊論文中提出的不同解決方案。首先,論文[1]提出了一個激勵相容的機制,允許客戶端向儲存服務提供者發起挑戰請求,而無需持續驗證儲存服務。該機制利用區塊鏈智能合約來執行儲存合約規則,並使用Oracle網絡進行儲存驗證,有效防止拒絕服務攻擊。其次,論文[2]提出了一種基於區塊鏈的檔案複製機制,利用Arweave啟發的分散式儲存算法,來優化整個系統的資料可用性。該機制採用智能合約來監測和排除不誠實的節點,促進節點之間的誠實合作。最後,論文[3]探討了如何在資源受限的公有鏈上審核動態資料,提出了兩種基於偽索引的審核協議OAD和OAD+。這些協議通過適當的索引轉換機制,將靜態儲存驗證方案轉換為動態儲存驗證方案,同時保持了緊湊的驗證開銷。總的來說,這三篇論文從不同角度探討了區塊鏈在分散式儲存系統中的應用,在提高資料可用性、防止惡意行為,以及支持動態資料審核等方面提出了有價值的解決方案。這些研究成果為未來分散式儲存網路的發展提供了重要的參考和啟示。


Acknowledgement

這份文件最初是使用繁體中文來撰寫,隨後借助ChatGPT進行翻譯,並透過Grammarly進行英文文法上的修正。此份文件的撰寫工具主要是透過Overleaf來完成,以及配合Writefull擴充功能才得以順利完成,這邊也要特別感謝論文研討課程讓我知道有Writefull這個寫論文的好用AI工具。而本份文件的內容主要是基於作者在國立陽明交通大學資訊管理研究所開設的分散式系統課程中學習到的一些主題的課外額外研究。文件內容包括作者對從三篇IEEE Transaction期刊論文中獲得的知識的個人詮釋和吸收;因此,內容的準確性不能保證。此外,我想特別感謝開授這門課程的教授,以及所有為分散式系統相關領域做出顯著研究貢獻的人們。正是因為有你們的活躍表現,我才能深入的研究這個迷人的領域。


分享到