用最簡單的方式看懂IPFS

常常隨NFT出現的IPFS到底是啥?

Greg Shen
8 min readJul 10, 2022
圖片取自icommunity.io

老規矩 廢話一下…

替代役生活過一半了,最近覺得時間越過越快,可能是在搜救犬隊太舒適了,說實話每天真的要做事的時間大概就一小時,其他時間就玩玩狗、看看書、彈彈吉他、寫寫文章跟程式,偶爾還會去對面咖啡廳吃蛋糕喝咖啡跟老闆客人聊天,小隊長跟隊員們也都對我很好。心情一好,就想寫一篇 IPFS,進正題~

IPFS定義

維基百科上的定義

這段文字的重點有兩個:

  • IPFS是以分散式系統來儲存資料與分享資料的P2P網路傳輸協定
  • IPFS使用「內容定位」的方式去找資料

所以這篇文章將會用簡單的方式帶讀者了解

  1. 什麼是網路傳輸協定
  2. 中心化儲存系統與分散式儲存系統的差別
  3. 什麼是內容定位
  4. IPFS的遠大目標

正式開始…

Now:中心化儲存的世界

以上單位皆儲存大量資訊

正常來說,所有公司都會有自己的資料庫,這些資料庫可能是自己架的,也可能是用 GCP, AWS等等服務去儲存。

這些公司保有存取權,可以隨時對資料取用、更改,在某種程度上算是保有一定的彈性以及效率,但當控制權太過集中,就會有人開始有別的疑慮,我在這邊舉幾個例子。

資料控制權過於集中產生問題的案例

一、土耳其封鎖維基百科事件

說是因為反恐所以封鎖,過程如下圖

2019年12月26日,土耳其憲法法院裁定,土耳其政府對維基百科的封鎖侵犯了公民的言論自由。

2020年1月15日,土耳其政府解除了對維基百科的封鎖。

說封就封,這是權力太集中的一次案例。

二、Google體系網站當機

這個案例大家應該比較有感了,這是今年 2月 12日的災情。

當大公司維護的伺服器因故斷線或是當機,如果我們把資料託管在上面,就沒有辦法即時取得想要的資料,這時候就會有人開始講啦,如果有一顆核彈直接炸掉大公司機房怎麼辦。

可能有些人會疑惑為什麼大公司維護的伺服器當機,我們就沒辦法訪問了,要了解這點,必須先提到現在全世界最廣泛的、通用的網路傳輸協定 — HTTP。

HTTP介紹

HTTP(Hypertext Transfer Protocol,超文本傳輸協定),是一個客戶端與伺服器間溝通的標準。

這篇文章中,我們不會對這個主題作太深入的講解,只會提到基本需要的知識。

Request and Response

如下圖,右側是我們使用的瀏覽器,我們透過點選前端向伺服器送出請求,這個請求(request)依照超文本傳輸協議的形式傳送,因此稱作http request;相反的,伺服器在收到請求後,經過事先寫好的處理方式回傳(response)資料給使用者。

圖取自網路

這個請求通常是怎麼傳輸的呢?相信大家都看過 URL這個詞。

URL(Uniform Resource Locator)

URL(Uniform Resource Locator,統一資源定位符)。 「https://zh.wikipedia.org:443/w/index.php?title=比GregShen還帥的人」,這一整串就是一個 URL

  1. https,超文本傳輸安全協定。
    是http透過 HTTP進行通訊,但通訊過程使用SSL/TLS 進行加密,比較安全,那個 s是 secure的意思。
  2. zh.wikipedia.org,是伺服器名稱。
    正常來說伺服器是以 198.35.26.96這種形式存在,但是這真的很難記,所以後來有人發明了DNS(Domain Name System,網域名稱系統),讓我們可以用可讀性高的方式記憶並針對特定伺服器送出請求。
  3. 443,網路埠號(port)。
    有時伺服器會開特定的 port給特定服務,https預設的 port就是443,所以其實這邊可寫可不寫。
  4. /w/index.php,是路徑。
  5. ?title=比GregShen還帥的人,是request。
    想當然爾,你各位是找不到這個人的。
真的是不意外

各位現在知道 URL怎麼運作的,我們會先找伺服器在哪,再看他的 port,再看它開了什麼API,最後再執行我們要的動作。其實不難看出它是以「地址定位」的方式去找資料的。

其實現在這種做法真的已經非常方便了,但這篇既然是要寫 IPFS的好處,不免就要寫一下 HTTP的壞處。

所以結合一開始提到的中心化儲存,有哪些壞處,我們來盤點一下:

HTTP弱勢

  1. HTTP中心化儲存在某種程度上是很低效率的。
    使用 HTTP協議每次需要從中心化的服務器下載完整的文件 (網頁、影片、圖片等),速度慢、效率低。
  2. Web文件經常被刪除。
    數據顯示,HTTP頁面生存週期平均只有100天,這是因為儲存成本高、而且無法永久保存。
  3. 中心化在某種程度上限制了Web的發展。
    封鎖、管制、監控等中心化行為雖然有好處,但同時也威脅到科技發展。

這三個弱點,IPFS又是怎麼解決的呢?

前情提要到這裡,終於可以回到IPFS了!

IPFS

希望各位對這段還有印象,沒有也沒關係TAT

維基百科上的定義
  • IPFS是以分散式系統來儲存資料與分享資料的P2P網路傳輸協定
  • IPFS使用「內容定位」的方式去找資料

有了我們前面一大段的講解,現在大家是否比較看得懂這兩句話的意思了。

先說第二點,IPFS使用「內容定位」的方式去找資料。

何謂「內容定位」?

你只需要告訴電腦你要什麼資源,而不是去哪裡找資源。

  • 因為每個檔案上傳後都有不一樣的 hash,沒看過 hash這個詞的人把它想像成身分證字號。
  • 當你要搜尋檔案的時候只需要去問誰有這個hash值的檔案,IPFS就會將檔案提供給你。

我會不會收到被篡改過的資料?

  • 篡改過的檔案hash就不一樣了,因此我們不會取到不一樣的檔案。
  • 也因為hash完全相同代表資料一樣,IPFS不會重複儲存相同的檔案。
    所以不同人上傳一樣的檔案,只會被IPFS生成一次。

如何做到分散式存儲?

IPFS檔案都儲存在IPFS物件中,每個物件最多256KB。

若檔案大於256KB,會被分割為多個物件,之後系統會生成一個空白IPFS物件與包含這個檔案的其它所有IPFS物件連結,如下圖。

圖取自網路

回到剛剛提到的HTTP弱勢,IPFS怎麼分別改善的:

一、HTTP中心化儲存在某種程度上是很低效率的。

IPFS優勢:改用P2P網路可節省頻寬

改用 P2P的方式下載,可以節省近 60%的帶寬。而且 P2P 將文件分割為小的塊,從多個服務器同時下載,速度非常快。

二、Web文件經常被刪除。

IPFS優勢:IPFS的資料可永久保存

只要儲存者標記了,便可以永久保存,甚至提供歷史版本回溯功能。

這也是為什麼很多 NFT圖片存在上面。

三、中心化的監管限制了Web的發展。

IPFS優勢:所以他就去中心化了啊!

IPFS優點整理

  • P2P網路傳輸協定(不會有單點失效)
  • 版本管理系統(讚)
  • ipfs:// 進行搜尋(目前只有幾個瀏覽器可以,例如Brave Browser)
  • 有IPNS可命名檔案
  • 永久web(No more 404)

講這麼多好處,但總不會都是優點而沒有缺點吧!

IPFS局限性

取不到資料的情況
像BitTorrent沒人在線上,若檔案儲存在十個節點上,這十個節點都剛好離線,就抓不到資料了。

為了避免這種情況,IPFS想出了一套解決方案,就是獎勵那些儲存資料並且保持在線的人。他們希望可以做到:

  • 獎勵那些確實儲存資料並且長時間在線上的人。
  • 主動把檔案分佈儲存,以保證網路上總會有一定數量的節點線上。

這套獎勵系統就是Filecoin。

圖片取自cryptoitunes.com

對沒錯,IPFS開發團隊與Filecoin團隊是一樣的,考慮到文長,這就留到之後說吧!

結論

IPFS不只想加速Web,它的最終目標實為取代HTTP

下一篇文章會說明 Filecoin運作方式以及它的共識機制,偏硬,同時也會分析 FIL這個幣現在值不值得投資,這可能是大家比較關心的事:)下篇文章見

追蹤以獲得更新通知,歡迎隨時聯繫我

Email: gregshen0925@pm.me

Telegram: @gregshen0925

歡迎追蹤 :)

--

--