從入門到高階:一文洞察IPFS

IPFS是一個點對點(p2p)文件共享系統,旨在從根本上改變信息在全球及全球範圍內分發的方式。

IPFS由通信協議和分佈式系統中的多項創新組成,這些創新相結合產生了無與倫比的文件系統。

因此,要試圖瞭解IPFS達到的全部廣度和深度,重要的是要了解使之成為可能的技術突破。

从入门到高阶:一文洞察IPFS

通信協議和分佈式系統

對於兩個人交換信息,他們需要通用的規則集來定義信息的傳輸方式和時間。這些規則被廣泛稱為通信協議,但是這很繁瑣,因此我們將其簡稱為語言。

如果您去過一個不是自己母語的國家,您可能會遇到“通信協議”的失敗。

計算機就是這種情況。

它們無法相互通信,並作為孤立的計算設備存在,直到1980年代初發明瞭第一批用於計算的通信協議。

“協議要傳達什麼編程語言就是計算”

在計算機中,通信協議通常存在於多層的捆綁包(稱為協議套件)中。例如,Internet協議套件由4個層組成,每個層負責特定的功能。

除了通信協議之外,要理解的重要關係是計算機之間互連的基本結構。這就是所謂的系統架構。

存在兩種類型是“客戶端-服務器網絡”和“對等網絡”。

當前,互聯網由依賴於Internet協議套件的“客戶端-服務器”關係主導。其中,超文本傳輸協議(HTTP)是通信的基礎。

1.數據存儲在集中式服務器中,並通過基於位置的尋址進行訪問。

這使分發、管理、保護數據以及擴展服務器和客戶端的容量變得更加容易。但是,在安全性,隱私性和效率方面存在許多弱點:對服務器的控制轉換為對數據的控制。

這意味著在服務器的控制下任何一方都可以訪問,更改和刪除您的數據。這可能是對服務器具有合法權限的實體,也可能是惡意黑客。

2.在基於位置的尋址中,通過數據的位置而不是其內容來標識數據。

這種限制意味著即使必須在更近的位置獲得相同的數據,也必須一直走到特定位置才能訪問一條數據。

但是客戶端服務器模型和HTTP在其大部分歷史中已經相當可靠地為互聯網服務。

這是因為HTTP Web對於在文本和圖像之類的小文件中移動非常有效。要知道,在網絡的前二十年中,平均網頁的大小僅從2KB增加到了2MB。

从入门到高阶:一文洞察IPFS

資源

HTTP非常適合加載網站,但它並不是為傳輸大量數據(例如音頻和視頻文件)而設計的。

這些限制使替代文件共享系統的出現和並逐漸成為主流。如Napster主要傳輸音樂,BitTorrent可以傳輸電影以及幾乎所有東西。

回到2018年,點播高清視頻流和大數據已經變得無處不在;我們將繼續生產和消費越來越多的數據,並開發越來越強大的計算機來處理它們。

雲計算的重大進步幫助維持了這一過渡,但是用於分發所有這些數據的基本基礎架構基本上保持不變。

星際文件系統

IPFS嘗試通過新穎的p2p文件共享系統解決客戶端-服務器模型和HTTP Web的缺陷。

該系統是幾種新的和現有的創新的綜合。

IPFS是由Protocol Labs創建的一個開放源代碼項目,Protocol Labs是一家針對網絡協議和以前的Y Combinator啟動的研發實驗室。Protocol Labs還開發了互補系統,例如IPLD和Filecoin。

全球數百名開發人員為IPFS的發展做出了貢獻,因此其編排一直是一項艱鉅的任務。

以下是主要組成部分

1.分佈式哈希表

散列表是一種數據結構,其存儲信息作為鍵/值對。

在分佈式哈希表(DHT)中,數據分佈在計算機網絡中,並進行有效協調以實現節點之間的有效訪問和查找。

DHT的主要優勢在於分散性,容錯性和可伸縮性。

節點不需要中央協調,即使節點發生故障或離開網絡,系統也可以可靠地運行,DHT可以擴展以容納數百萬個節點。這些功能共同構成的系統通常比客戶端-服務器結構更具彈性。

2.大宗交易

流行的文件共享系統Bittorrent能夠依靠創新的數據交換協議成功地協調數百萬個節點之間的數據傳輸,但僅限於torrent生態系統。

IPFS實現了該協議的通用版本,稱為BitSwap。

BitSwap可作為任何類型的數據的市場,這個市場是Filecoin的基礎:基於IPFS構建的p2p存儲市場。

3.默克爾·戴

merkle DAG是Merkle樹和有向無環圖(DAG)的混合。

默克爾樹可確保在p2p網絡上交換的數據塊是正確,未損壞和未更改的。通過使用密碼哈希函數組織數據塊來完成此驗證。這只是一個接受輸入並計算與該輸入相對應的唯一字母數字字符串(哈希)的函數。

容易檢查輸入是否會導致給定的哈希,但是很難從哈希中猜測輸入。

从入门到高阶:一文洞察IPFS

各個數據塊稱為“葉子節點”,這些數據經過散列形成“非葉子節點”。然後可以將這些非葉節點進行組合和哈希處理,直到所有數據塊都可以由單個根哈希表示。

這是一種更簡單的概念化方法:

从入门到高阶:一文洞察IPFS

DAG是一種對沒有周期的信息的拓撲序列進行建模的方法。DAG的一個簡單示例是家譜。Merkle DAG基本上是一種數據結構,其中散列用於引用DAG中的數據塊和對象。

這創建了幾個有用的功能:

IPFS上的所有內容都可以唯一標識,因為每個數據塊都有唯一的哈希。再加上數據是防篡改的,因為對其進行更改會改變哈希值,如下所示:

从入门到高阶:一文洞察IPFS

IPFS的中心宗旨是在通用merkle DAG上對所有數據進行建模。很難誇大此安全功能的重要性。

4.版本控制系統

Merkle DAG結構的另一個強大功能是,它允許您構建分佈式版本控制系統(VCS)。最受歡迎的示例是Github,它使開發人員可以輕鬆地同時在項目上進行協作。

Github上的文件使用merkle DAG存儲和版本控制。它允許用戶獨立地複製和編輯文件的多個版本,存儲這些版本,然後將編輯內容與原始文件合併。

IPFS對數據對象使用類似的模型:只要可以訪問與原始數據相對應的對象以及任何新版本,就可以檢索整個文件歷史記錄。

假設數據塊存儲在整個網絡的本地並且可以無限期地緩存,這意味著IPFS對象可以永久存儲。

此外,IPFS不依賴對Internet協議的訪問。數據可以分佈在覆蓋網絡中,覆蓋網絡只是建立在另一個網絡上的網絡。這些功能非常引人注目,因為它們是抗審查網絡中的核心元素。

IPFS對我們生活的改變,可能是促進言論自由以對抗全球互聯網審查風行的有用工具,但我們也應該認識到不良行為者有可能濫用權力。

从入门到高阶:一文洞察IPFS

5.自認證文件系統

IPFS的最後一個基本組成部分是自認證文件系統(SFS)。它是一種分佈式文件系統,不需要特殊權限即可進行數據交換。

這是“自我認證”,因為提供給客戶端的數據通過文件名(由服務器簽名)進行認證。您可以通過本地存儲的透明性來安全地訪問遠程內容。

IPFS在此概念的基礎上創建了行星際名稱空間。它是一個使用公用密鑰加密技術對網絡用戶發佈的對象進行自我認證的SFS 。前面我們提到,IPFS上的所有對象都可以唯一標識,但這也擴展到了節點。

以下是IPFS關鍵組件的快速回顧

1. 使用分佈式哈希表,節點無需中央協調即可存儲和共享數據;

2. IPFS允許使用公共密鑰加密技術對交換的數據立即進行預身份驗證和驗證;

3.Merkle DAG可實現唯一標識,防篡改和永久存儲的數據;

4.您可以通過版本控制系統訪問已編輯數據的過去版本。

从入门到高阶:一文洞察IPFS

簡單的概念框架

那麼,為什麼所有這些都很重要?

IPFS提供高吞吐量,低延遲,數據分發。它也是分散和安全的。這打開了幾個有趣且令人興奮的用例。它可用於將內容傳送到網站,使用自動版本控制和備份在全球存儲文件,促進安全的文件共享和加密的通信。

以下是基於IPFS構建的項目

Origin,共享經濟的點對點市場;

阿卡莎,下一代社交網絡;

Balance3,一個三項記賬平臺;

BlockFreight,一個開放的全球貨運網絡;

Digix,一個用於標記實物黃金的平臺;

Infura,DApp 的基礎架構提供商;

Livepeer,一個去中心化的實時視頻流媒體平臺;

UPORT,自主權識別系統。

這些應用程序的多樣性證明了IPFS在幾種不同用例中的多功能性。它也被用作公共區塊鏈和其他p2p應用程序的補充文件系統。

在撰寫本文時,在以太坊智能合約中存儲一千字節的數據可能要花費數美元。這是一個主要的制約因素,目前新的去中心化應用程序(DApps)大量增長。

IPFS可與智能合約和區塊鏈數據互操作,因此可以為以太坊生態系統增加可靠的低成本存儲容量。使以太坊區塊鏈數據可以在IPFS上本地訪問的嘗試是一種稱為IPLD(行星際鏈接數據)的單獨協議。

IPFS挑戰性

儘管IPFS表現出色,但仍有一些問題尚待完全解決。首先,IPNS上的內容尋址目前還不是很友好。

您的IPFS鏈接如下所示:

ipfs.io/ipns/QmeQe5FTgMs8PNspzTQ3LRz1iMhdq9K34TQnsCP2jqt8wV/

可以使用域名系統(DNS)將這些鏈接簡化為更簡單的名稱,但這會為內容分發引入外部故障點。但是,仍可以通過原始IPNS地址訪問該內容。一些用戶還報告說IPNS解析域名的速度可能很慢,最多可能會延遲幾秒鐘。目前尚不清楚此問題的根源是什麼。

在IPFS上,節點很少有動力維護網絡上的數據的長期備份。節點可以選擇清除緩存的數據以節省空間,這意味著從理論上講,如果沒有剩餘的節點託管數據,文件最終會隨著時間的推移而“消失”。

在當前的採用水平上,這不是一個大問題,但從長遠來看,備份大量數據需要強大的經濟動力。

存儲市場

Filecoin是一個單獨的協議,旨在為IPFS上的文件存儲增加經濟激勵,並促進與企業雲存儲(如Amazon S3等)相競爭的分佈式存儲市場。

IPFS + Filecoin取代了採用固定價格的集中式基礎架構,而是將其存儲在本地提供商的全球網絡上,這些提供商可以自由地根據供需確定價格。

Filecoin 代替了工作證明共識算法(如比特幣),而是使用存儲證明來確保安全性和可靠性。

這樣,任何人都可以加入網絡,在其計算設備上提供未使用的硬盤空間,並獲得Filecoin令牌的獎勵,用於數據存儲和檢索服務。

該網絡是在以太坊上開發的,因此智能合約集成可以在存儲市場中產生諸如託管,保險等高級功能。

從理論上講,這種經濟模型應該建立一個競爭激烈的自由市場,其成本可能低於大型提供商。但是Filecoin尚未上線,因此觀察這些概念如何在現實中發揮作用將很有趣。

IPFS的入門

IPFS是一項非常雄心勃勃的工作,顯然,有關係統功能的精確機制要比本指南中描述的複雜得多。我們將這些細節留給密碼學家和計算機科學家使用。

从入门到高阶:一文洞察IPFS

您不一定非要使用 IPFS 即可成為專家,因此,如果任何優點或用例對您似乎有用或有吸引力,請下載IPFS並在此處開始使用。

如果您有GB或TB的未使用存儲空間,並且想充分利用該空閒容量,則可以在網絡啟動時註冊成為Filecoin早期的礦工。如果您有興趣成為早期的存儲用戶,也可以註冊。

使用IPFS非常引人注目,並且瞭解使之成為可能的技術嚮導更加令人興奮。

如果成功,IPFS及其補充協議可以為下一代Web提供彈性基礎架構。承諾提供分佈式,安全和透明的網絡。


分享到:


相關文章: