返回目錄 / 入門淺談:什麼是 IPFS?

2022-06-28 / 505

什麼是「IPFS」?

「IPFS」星際文件系統 (InterPlanetary File System) 是一個分佈式的 web,點到點超媒體協議。可以讓我們的互聯網速度更快、更加安全,並且更加開放。IPFS 協議的目標是取代傳統的互聯網協議 HTTP。


為什麼有 IPFS?

眾所周知,互聯網是建立在 HTTP 協議上。HTTP 協議是個偉大的發明,讓我們的互聯網得以快速發展,但是互聯網發展到了今天,HTTP 逐漸出來了不足。

HTTP的中心化是低效的,並且成本很高。

使用 HTTP 協議每次需要從中心化的服務器下載完整的文件 (網頁、視頻、圖片等),速度慢、效率低。如果改用 P2P 的方式下載,可以節省近 60% 的帶寬。P2P 將文件分割為小的塊,從多個服務器同時下載,速度非常快。

Web文件經常被刪除。

回想一下是不是經常你收藏的某個頁面,在使用的時候瀏覽器返回 404(無法找到頁面), http 的頁面平均生存週期大約只有 100 天。 Web 文件經常被刪除 (由於存儲成本太重),無法永久保存。IPFS 提供了文件的歷史版本回溯功能 (就像 git 版本控制工具一樣),可以很容易的查看文件的歷史版本,數據可以得到永久保存。

中心化限制了web的成長。

我們的現有互聯網是一個高度中心化的網絡。 互聯網是人類的偉大發明,也是科技創新的加速器。 各種管制將對這互聯網的功能造成威脅,例如: 互聯網封鎖、管制、監控等等,這些都源於互聯網的中心化。而分佈式的 IPFS 可以克服這些 web 的缺點。

互聯網應用高度依賴主幹網。

主幹網受制於諸多因素的影響,戰爭,自然災害,互聯網管制,中心化服務器宕機等等,都可能是我們的互聯網應用中斷服務。IPFS 可以是互聯網應用極大的降低互聯網應用對主幹網的依賴。

1. IPFS 的目標

IPFS 不僅僅是為了加速 web。 而是為了最終取代 HTTP 協議,使互聯網更加美好


2. IPFS 包含哪些內容

IPFS 是一個協議,類似 http 協議

  • 定義了基於內容的尋址文件系統

  • 內容分發

  • 使用的技術分佈式哈希、p2p 傳輸、版本管理系統


3. IPFS 是一個文件系統

  • 有文件夾和文件

  • 可掛載文件系統


4. IPFS 是一個 web 協議

  • 可以像 http 那樣查看互聯網頁面

  • 未來瀏覽器可以直接支持 ipfs:/ 或者 fs:/ 協議


5. IPFS 是模塊化的協議

  • 連接層:通過其他任何網絡協議連接

  • 路由層:尋找定位文件所在位置

  • 數據塊交換:採用 BitTorrent 技術


6. IPFS 是一個 p2p 系統

  • 世界範圍內的 p2p 文件傳輸網絡

  • 分佈式網絡結構

  • 沒有單點失效問題


7. IPFS 天生是一個 CDN

  • 文件添加到 IPFS 網絡,將會在全世界進行 CDN 加速

  • bittorrent 的帶寬管理


8. IPFS 擁有命名服務

  • IPNS:基於 SFS(自認證系統)命名體系

  • 可以和現有域名系統綁定


IPFS 的「宏偉」目標是取代 HTTP,那麼先來看看 IPFS 是如何工作的?

  1. IPFS 為每一個文件分配一個獨一無二的哈希值 (文件指紋: 根據文件的內容進行創建), 即使是兩個文件內容只有 1 個比特的不相同, 其哈希值也是不相同的。所以 IPFS 是基於文件內容進行尋址, 而不像傳統的 HTTP 協議一樣基於域名尋址。

  2. IPFS 在整個網絡範圍內去掉重複的文件, 並且為文件建立版本管理, 也就是說每一個文件的變更歷史都將被記錄 (這一點類似版本控制工具 git, svn 等), 可以很容易個回到文件的歷史版本查看數據。

  3. 當查詢文件的時候, IPFS 網絡根據文件的哈希值 (全網唯一) 進行查找。 由於每個文件的哈希值全網唯一, 查詢將很容易進行。

  4. 如果僅僅使用哈希值來區分文件的話, 會給傳播造成困難, 因為哈希值不容易記憶, 就像 ip 地址一樣不容易記憶, 於是人類發明的域名。 IPFS 利用 IPNS 將哈希值映射為容易記的名字。

  5. 每個節點除了存儲自己需要的數據, 還存儲了一張哈希表, 用來記錄文件存儲所在的位置。 用來進行文件的查詢下載。

我們在前面提到了HTTP及一些中心化服務器的缺點。那麼問題來了, IPFS是如何來解決這些缺點的?

1 . 下載速度快, 不再依賴主幹網, 中心化服務器

整個 IPFS 系統是一個分佈式的文件存儲系統,那麼在下載相關數據的時候,將從多個節點同時下載,相比於 HTTP 從中心服務器的下載速度要快很多,大家都用過 P2P 下載 (比如: 迅雷、BitTorrent), IPFS 下載過程跟這個類似。

2 . 存儲空間變得非常便宜

由於 IPFS 使用的是區塊鏈技術,利用 Filecoin 來激勵礦工分享自己的硬盤,並且 IFPS 從全網去掉了冗餘存儲 (從整個網絡空間考慮, 這將大大節省網絡存儲空間), 將來的 IPFS 存儲將會變得非常便宜 (與我們現在的雲盤, 各種中心化的 CND 相比較)。

3 . 安全

中心化服務器目前很難抵擋 DDoS 攻擊, 當大量的訪問請求從四面八方湧來, 中心化的服務器幾乎會在一瞬間癱瘓, 做過運維的同學應該深有感觸,比如每年雙 11,不能睡覺的除了阿里、騰訊的技術同學,還有整個銀行業的小朋友。巨大的訪問量隨時可能造成服務器宕機。 IPFS 天生就擁有抵擋這種攻擊的能力。因為所有的訪問將會被分散到不同的節點。甚至攻擊者自己也是節點之一。某種程度上講, IPFS 甚至能抵擋量子計算的攻擊。

4 . 開放

眾所周知, 比特幣是一種去中心化, 匿名的數據貨幣, 這些特性使得比特幣無法被管制, 交易無法篡改。IPFS 同樣, 由於是建立在去中心化的分佈式網絡上的, 所以 IFPS 很難被中心化管理、限制,互聯網將更加開放。


接下來我們來看看 IPFS 都可以用來做什麼:

  1. 在/ipfs 和/ipns 下面掛載全球文件系統:就是說我們所有的文件都可以存到上面。

  2. 掛載個人同步的文件夾, 可以自動進行版本管理, 自動備份。也就意味著未來我們將擁有無限空間的網盤, 不用擔心數據丟失,不用擔心隱私洩露 (非對稱加密)。是不是想到了什麼? 現在比較流行的某度 (曾經把大家自動備份的照片全部共享了,各種艷照啊) 和企鵝網盤,國外的 dropbox,跟 IPFS 雲盤相比,都將變得微不足道。

  3. 作為加密文件和數據共享系統。IPFS 天生視乎就具備這樣的能力,文件加密,數據共享,都是小菜一碟。

  4. 作為帶版本控制的軟件包管理系統。

  5. 作為虛擬機的根文件系統。

  6. 作為利用管理程序,把 IPFS 作為虛擬機的引導文件系統:在線操作系統。

  7. 作為數據庫:應用可以直接操作 IPFS 的 Merkle DAG 數據結構,並且可以使用 IPFS 的版本控制、緩存。試想一下我們的數據庫直接存在IPFS的文件系統是什麼體驗? 自動備份,永不丟失,安全加密,無限空間,高速連接,想想就美好。科技改變生活,未來會有多美好 ⋯

  8. 作為加密通訊平台,誰都別想竊聽消息通信。

  9. 作為加密 CDN, 作為 web 的 CDN, CDN 功能全包了。

  10. 永久 web, 不存在不能訪問的鏈接, 跟「404」說 byebye。

上面的應用場景是 IPFS 的創始人 Juan Benet 在 IPFS 論文裡面直接提到的。有興趣的朋友可以去 《IPFS 白皮書》裡面看一下。

實際上 IPFS 能做不僅僅限於這些場景。 我們所有的計算機系統幾乎都是這種結構:

IPFS 為我們解決的是最後那一個部分:數據存儲。它能夠極大的降低數據存儲的成本,提升數據下載速度。

那麼凡是需要優化數據存儲的地方幾乎都可以使用IPFS來提升效率!

(插點題外話)

世界發展的規律告訴我們, 凡是符合「共享的、提升效率的」,一定是未來的趨勢。

從人類誕生之初, 我們的世界運轉就圍繞「共享」這個核心運行!為什麼?因為共享是我們已發現最有效的提升資源配置、提升效率的方式之一,它已經植根於我們的基因當中了。記得有人寫了本書叫做《共享經濟》,作者是羅賓·蔡斯, 還有互聯網騰飛的這幾年,各種把共享經濟掛在嘴邊的那些人(包括我自己),都在討論這個概念。然而事實上共享經濟從人類誕生就開始了:

  • 國家就是一個最大的共享體, 我們要共享國防,共享安全,共享一切。

  • 城市是組成國家的共享體單位, 你的生存, 你的工作,無不是共享,你乘坐的地鐵、飛機、公交。你使用的自來水、電力等等, 哪一樣不是共享的呢?

所以「共享」是我們人類與生俱來的生存方式, 並不是互聯網的東西,互聯網探討的共享經濟只不過是這幾年集中出現的一種創業方式而已。

(題外話結束)


資訊來源:https://blockcast.it/2019/10/16/let-me-tell-you-what-is-ipfs/