區塊鏈 16 | Blockchain 整合ipfs進行文件驗證 (一)

什麼是IPFS

Megan
Learn & Record
May 12, 2021

--

Photo by Gayatri Malhotra on Unsplash

什麼是IPFS

星際文件系統(InterPlanetary File System,縮寫IPFS)是一個網路傳輸協定,為了建立持久且分散式儲存和共享的檔案,它是一種點對點(P2P)的分佈式文件系統。

什麼叫做分佈式文件系統?分佈式文件系統的文件全部都不在同一台電腦,而是分散在多台電腦上。所以多個分散的小文件系統組合在一起,形成一個完整的文件系統。簡單來說,就是把操作系統分佈在不同的電腦里,由這些電腦來共同管理,而不是只依賴一台電腦。

雖然說它是文件系統,但其實是一種用來儲存資料的技術,更確切的說,IPFS是一種傳輸協定。對於IPFS的資料儲存的理解,它能夠極大的降低資料儲存的成本,提升資料下載速度。需要優化資料儲存的地方幾乎都可以使用IPFS來提升效率。

在這個IPFS協議中,文件在系統中如何儲存、索引和傳輸都定義好了,也就是將上傳好的文件轉換成專門的資料格式進行儲存,同時IPFS會將文件進行雜湊運算,確定其地址的唯一性。所以無論在任何設備或者任意地點,相同的文件都會指向相同的地址。通過一個文件系統將網絡中所有的設備連接起來,讓儲存在IPFS系統上的文件,在世界上任何一個地方都可以快速獲取,且不受防火牆的影響。所以從根本上說,IPFS能改變WEB內容的分發機制,完成了整個去中心化。

IPFS 的運作流程

圖一
  1. John 想上傳一個 PDF 檔案到 IPFS。
  2. John將他的 PDF 檔案放在他的工作目錄下。
  3. John使用 IPFS 的命令添加這個檔案,同時會得到了一個以 Qm 開頭的 Hash值。
  4. John的檔案已經在 IPFS 網絡上並可以被訪問了。
圖二

接下來(圖二),John 想將這個檔案分享給他的同事 Mary,他只需要將上述第3步得到的 Hash 值告訴 Mary ,Mary 即可透過這個 Hash 值,從 IPFS 下載這個 PDF 檔案。

以上這個就是簡單的 IPFS 上傳和下載過程。

一般而言,直接上傳到 IPFS 網絡上的檔案,只要知道這個地址或者是這個檔案的hash值的使用者都能夠下載。

這樣不會有安全性問題嗎?

如果使用者要將敏感檔案上傳至 IPFS 時,就必須先對這些檔案進行加密處理。只要透過一些現成的加解密工具,就能夠很好地解決檔案赤裸地曝露的問題,同時又能利用到 IPFS的特性。

可以使用非對稱加密技術對檔案預先進行加密,然後才放到 IPFS 上。使用檔案接收方的公鑰加密檔案,然後接收方從 IPFS 網絡上下載了這個檔案,再用自己的私鑰解密。這樣就算檔案被其他人下載下來,沒有接收方的私鑰,也無法打開。

下面說明加密和解密的過程:

圖三
  1. John 想上傳一個 PDF 檔案到 IPFS,但只想讓 Mary 訪問。
  2. John將他的 PDF 檔案放在他的工作目錄下並使用 Mary 的公鑰進行加密。
  3. John將加密的PDF 檔案上傳至 IPFS,會得到了一個以 Qm 開頭的 Hash值。
  4. John的檔案已經在 IPFS 網絡上並且可以被訪問了。
  5. Mary 下載這個檔案,透過相應的私鑰解密,就可以查看這個檔案。
  6. 其他知道這個hash值的人下載後,因為沒有私鑰,所以無法對檔案解密,也就無法正常訪問了。

安裝IPFS

官網:https://ipfs.io/

install IPFS
download IPFS
IPFS啟動後的樣子

參考

--

--