IPFS 去中心化資料結構(二)
本文翻譯自 IPFS 社群教程ProtoSchool 。ProtoSchool 是一個可以互動式學習 IPFS 程式設計的網站,涉及程式碼的部分大家可到該網站上直接執行測試!
本文接上篇IPFS 去中心化資料結構(一) 。
LESSION 3 - 通過加密雜湊進行內容定址
正如我們之前說的,中心化的 Web 依賴於中央機構來託管我們的資料,並使用 URL 作為地址來進行訪問。但位置定址不是唯一的選擇。在去中心化的 Web 上,我們可以託管彼此的資料,並且通過一種特殊的連結方式讓我們彼此間訪問資料更可信和安全。
加密雜湊
加密雜湊 是去中心化資料結構中最重要的工具函式。它打開了新連結形式的大門,我們稱之為內容定址,這樣我們才能在沒有中央機構的去中心化環境中連結資料。
雜湊可以用於任何大小的資料,併為該資料返回單個固定大小的“雜湊值”。 雜湊值是一個看起來像 gobbledygook 的字串,你可以將其視為資料的名稱。它可能是這樣的:
zdpuAsHkamdCQgrDrNSwJVgjMkQWoLxdrccxV6qe9htipNein
說實話,由內容衍生的名字目前對人類來說並不友好(beagle.jpg
更具描述性!),但雜湊值更加安全。 原因如下:
加密雜湊值是資料本身產生的,這意味著在相同資料上使用相同雜湊演算法將得到相同的雜湊值。如果 Ada 和 Grace 都使用相同的去中心化 Web 協議(例如 IPFS)來共享完全相同的小貓照片,則兩個圖片檔案會具有完全相同的雜湊值。通過比較這些雜湊值,我們可以保證這兩張照片中的每個畫素都是相同的。
加密雜湊值也是獨一無二的。這意味著如果Grace 使用 Photoshop 從該小貓中刪除了一些鬍鬚,則更新後的圖片會具有新的雜湊值,並且很容易分辨 - 僅從雜湊值,不用訪問檔案本身 - 它包含不同的資料。
去中心化 Web 上的信任
在中心化的網路上,我們信任某些機構,不信任其他機構。我們利用 URL 提供的線索盡力而為,但有些有惡意的人會使用位置定址的缺點來欺騙我們。
在去中心化的網路上,我們能夠傳播並託管彼此的資料,我們可能不太瞭解託管資料的其他節點,但內容定址為我們提供了一種信任他們所共享的資料的方法。通過內容定址,我們不會被惡意行為者欺騙導致訪問錯誤的資料。這就是加密雜湊對去中心化網路如此重要的原因。
向對等節點查詢資料
通過傳統的位置定址,我們知道需要訪問域名puppies.com
來查詢beagle.jpg
儲存的資料內容。如果puppies.com
域由於某種原因被破壞,我們將無法訪問該圖片。
去中心化網路的工作方式則是完全不同的。當我們想要一張可愛寵物的照片時,我們會通過其內容地址(雜湊值)來進行查詢。我們向誰查詢呢?答案是整個網路!如果 Ada 線上,我們會看到她有我們正在尋找的內容,我們可以驗證資料是否為我們正在尋找的內容,只要它具有匹配的雜湊值。如果她下線,我們仍然可以從 Grace 或其他節點獲得相同的照片。
由於我們使用雜湊值來在去中心化的網路上請求資料,因此我們可以將雜湊值視為連結,而不僅僅是資料名稱。
---- EOF ----