More  

收藏本站

電腦請使用 Ctrl + D 加入最愛
手機請使用 收藏
關閉

小編的世界 優質文選 網路

IPFS如何破除網站404的「魔咒」


字體大小:
2020年10月29日 -
:        
 

星球日報

北京星球節點傳媒文化有限公司官方帳號,財經領域創作者,優質創作者

IPFS 的提出者 Juan Benet

那麼當前互聯網的 HTTP 協議到底有什麼問題?

HTTP 的全稱是 Hypertext Transport Protocol,中文譯為超文本傳輸協議,由萬維網之父 Tim Berners-Lee 在 1991 年提出,主要規定了客戶端和服務器之間的通信格式,該協議主要有三大缺陷:

中心化

成本高

隱私保護差

一、中心化

HTTP 協議極度依賴中心化服務網絡,服務器必須 24 小時開機運行。

世界第一台 Web 服務器

這是 Tim Berners-Lee 在 CERN 歐洲核子研究中心工作時使用過的一台電腦,也是世界上第一台遵循 HTTP 協議的 Web 服務器,現已被淘汰存於博物館。機箱上貼著紙條:

This machine is a server. Do not power down!(這是一台服務器,不要關機!)

因為一旦關機,這台服務器所承載的網站信息就會消失不見。我們訪問網站時就會看到網站頁面不存在的 404 提醒。404 是 HTTP 協議的錯誤碼,代表客戶端在瀏覽網頁時,服務器無法正常提供信息,或是服務器無法回應且不知原因。

當我們在瀏覽器中輸入網址後,瀏覽器會根據這個網址從服務器中進行信息檢索並返回展示在客戶端,即我們普通用戶看到的樣子。而一旦服務器關機,瀏覽器就無法檢索到相關信息,於是我們就會看到網頁 404 的界面。

另外,雖然現在網站、App 很多,但是大多都運行在阿裏雲、亞馬遜雲、谷歌雲等服務器商的服務器上,一旦這些雲服務器出現問題,租用了服務的網站都會被牽連。

2019 年 3 月 3 日,阿裏雲華北地區的服務器宕機 3 小時,租用了服務的眾多互聯網公司也因此處於服務癱瘓的狀態。

二、成本高

Gangnam Style

還記得《江南 Style》麼,這首歌在 2012 年風靡一時,是互聯網歷史上第一個點擊量超過 10 億次的視頻(雖然我到現在也沒明白這歌好聽在哪 )。如果這個視頻大小為 100 MB,那麼 10 億次的瀏覽就消耗了 100 PB 的網絡流量。

假設每 GB 的流量成本(包括網絡帶寬和服務器存儲)是 0.01 美元,則總共的花費是 100 萬美元。此外,中心化的數據服務對資源的利用效率低,比如中心化的模式要求各數據中心 365 天不間斷運營,行業報告顯示僅電力消耗就占據了 57% 的運營成本。可見在 HTTP 協議上,集中由數據中心向外傳播信息的成本是非常昂貴的。

三、隱私保護差

互聯網,顧名思義就是由連接到世界各地互聯互通的網絡組成的,而信息流經通信線路上的光纜和某些網絡設備時,可能遭到監視。值得注意的一點是,全球的通信流量大部分都經過美國。

美國國家安全局與多家電訊公司簽署了《網絡安全協議》,規定電訊企業要在美國本土建立「網絡運行中心」。與此同時,美國的盟友英國、加拿大等也為其提供光纜監聽情報。根據華盛頓郵報的消息,美國國家安全局 NSA 海底光纜的監控覆蓋全球 4 大洲的 27 個國家地區。

此外服務器一旦被成功入侵,存儲其中的信息也會泄漏。2013 年 6 月,美國中央情報局(CIA)前雇員愛德華·斯諾登揭露了美國國家安全局代號為「棱鏡」的秘密項目。棱鏡是美國國家安全局(NSA)和聯邦調查局(FBI)於 2007 年啟動的一個秘密監控項目,可以直接進入微軟、雅虎、蘋果、谷歌等互聯網巨頭公司的中心服務器裏獲悉通訊記錄以及雙方通信的時間、地點等信息。

愛德華·斯諾登

正是看到了 HTTP 協議的諸多缺陷,Juan Benet 提出了 IPFS 的設想,並在 2015 年成立了 Protocol Labs 實驗室,專門負責開發 IPFS。

IPFS 的運作原理

1、通過內容尋址進行唯一標識

2、通過非對稱加密保護文檔隱私

3、通過點對點傳輸加快文檔傳輸速度

一、內容尋址

HTTP 協議是基於「域名的尋址」,瀏覽器會根據我們輸入的網址到指定的服務器上獲取文件,而 IPFS 是基於「內容的尋址」。IPFS 會將文件進行哈希得到一個以 Qm 開頭的哈希值,我們提供哈希值就能檢索獲取對應的文件。

這兩者具體有什麼不同呢?

例如我想通過瀏覽器下載一個文件,按照 HTTP 協議,瀏覽器首先會查找服務器的位置,也就是域名尋址,接著向服務器索要文件的路徑。這種體系下文件的位置取決於服務器的管理者,而我只能寄希望於文件的位置沒有變動,並且服務器處於開機狀態。

此外,下載文件時,我無法確定客戶端下載的文件和服務器上的文件是否一致,文件在下載傳輸的過程中可能會被人篡改,但我對此是無法感知的。

IPFS 的做法則是撇開服務器和文件具體位置,只關注文件中的內容。當我把一個文件放到 IPFS 節點,它會根據文件內容計算出一串 Qm 開頭的哈希值,比如這樣

QmYqSCWuzG8Cyo4MFQzqKcC14ct4ybAWyrAc9qzdJaFYTL

哈希算法從數學上確保了文檔中的內容哪怕只修改一個標點,哈希值也會完全不同。每份存儲在鏈上的內容都會分配得到獨一無二的哈希值作為內容標識(Content Identifier,縮寫 CID)。

但有個隱私問題,任何人知道了哈希值,不就都能通過 IPFS 網絡下載我的文件了麼?這時就需要用到非對稱加密技術了,是時候再次請出密碼學的男女主角 Bob 和 Alice 了。

二、非對稱加密

發送者:Bob ,接收者:Alice

1、Bob 想上傳一份文檔至 IPFS ,且只有 Alice 能查看該文檔

2、Bob 用 Alice 的公鑰對文檔進行加密

3、Bob 將加密後的文檔上傳至 IPFS ,得到對應的哈希值作為內容標識

4、加密後的文檔被存儲在 IPFS 系統中,Alice 可以憑借 Bob 提供的哈希值下載該文檔

5、Alice 用自己的私鑰解密這份文檔,獲取文檔中的內容

6、未經授權的第三方由於沒有 Alice 的私鑰,即便下載了文檔也無法解密。

Alice 通過 IPFS 下載文檔的過程類似於通過迅雷下載電影,是基於 P2P 點對點傳輸技術。

三、點對點傳輸

如果你讀過比特幣白皮書,點對點這個詞聽起來應該不會很陌生,因為它白皮書的標題就是《比特幣,一種點對點的電子現金系統》

點對點是根據 Peer-to-Peer 翻譯過來的中文,簡稱 P2P,Peer 這個英文單詞在字典有一個常見意思是身份或地位相同的人。

在 HTTP 協議中,客戶端想要獲取信息時需要訪問服務器,如果服務器訪問量在短時間內劇增,就會出現訪問失敗的情況,你可以想想自己回家搶火車票時,訂票平台宕機的情景。分布式拒絕服務攻擊 DDoS 就是通過在短時間內借助數百甚至上千台設備對服務器發起請求,耗盡服務器的資源造成其他用戶無法正常訪問該網站。

IPFS 采用的點對點傳輸技術,點就是指一台計算機。系統中的任何一台電腦都可以做為服務器,彼此之間共享文件,比如迅雷,電驢,酷狗都用到了 P2P 技術,實現彼此之間資源的共享。

比如我想下載某個文件,那麼我的電腦就會找到存有對應資源的多台電腦,從這些電腦上下載一個個小小的碎片,最後在我的電腦上拼成一個完整的文件。

根據 HTTP 協議進行文檔下載時,B、C、D 等多台電腦都要訪問服務器 A 進行下載,訪問量一多,服務器 A 就會宕機。而點對點傳輸技術可以使得 B 從 A 處下載,B 下載完後變成一個服務器, C 就可以從 A、B 處下載。C 下載完後也變成一個服務器,D 可以從 A、B、C 處下載文檔,每一個存有文檔的電腦都可以作為服務器,給其他下載用戶提供信息。

因此越到後面,可以作為服務器的電腦就越多,下載速度也就越快。此時 A、B、C、D 等多台電腦之間的地位是平等的,都可以作為服務器。原則上,與傳統的 HTTP 協議相比,Alice 通過 IPFS 下載文檔的速度更快。

但這裏有個問題,A、B、C、D 等多台電腦在沒有任何獎勵的情況下,為什麼要白白給其他電腦提供資源下載?經濟激勵 Filecoin 就顯得很有必要了。

IPFS 與 Filecoin 的關系

2017 年,Protocol Labs 實驗室宣布成立基於 IPFS 的區塊鏈項目 Filecoin。Filecoin 和 IPFS 雖然都由 Protocol Labs 創建,但 Filecoin 不等同於 IPFS,IPFS 是一個底層協議,而 Filecoin 是建立其上的經濟激勵層,通過發行代幣 FIL 作為獎勵,讓各個節點有動力去存儲和檢索數據。

當用戶想要將文檔上傳至 IPFS 網絡或者在網絡中下載文檔時,都需要支付 Filecoin給礦工作為他們的辛苦費。Filecoin 網絡的原生代幣 FIL 總發行量為 20 億枚,其中 70% 都會分配給礦工。

同時,為了確保礦工不會中途刪除存儲的數據,礦工需要抵押一部分 FIL 代幣,每 1 小時左右提交一次數據還在的證明。鏈上也會在每個出塊時間隨機驗證數據是否存在,若驗證失敗,礦工抵押的代幣會被扣除。

然而由於 Filecoin 主網剛剛上線,不少礦工手中並沒有足夠的 FIL 進行抵押,處於一個略顯尷尬的狀態。IPFS 中國社區的發起人在朋友圈吐槽:主網上線,全部礦工停在那,是無奈!是大家都沒有幣進行抵押!

經曆了多次跳票,被稱為「鴿王」的 Filecoin 真的能改變現有的中心化存儲模式麼?對這個問題,你怎麼看?