科普| 何為點對點網絡?

Kademlia 到Discv5科普| 理解以太坊的P2P 網絡科普| Eth2.0 節點的網絡通信觀點| 以太坊客戶端多樣性問題從何而來?

如果我們想從根本上理解密碼學貨幣的運行方式,光懂密碼學是不夠的。密碼學貨幣之所以能成功,靠的不僅僅是密碼學安全性,還需要去中心化。中本聰在本世紀初的點對點網絡的發展進程中學到了很多經驗教訓,這些經驗教訓指導了比特幣網絡層的設計。

我們將在本文探討比特幣的網絡模型,以及它是如何實現它的兩大主要目標的:去中心化和抗審查。

網絡架構

傳統的網絡服務都是以客戶端-服務器的中心化模式為架構的。中央服務器提供服務,各個客戶端則向服務器請求數據或工作。幾乎所有網絡應用都是這個結構:臉書、谷歌、Wordpress 等等。現在的“中央服務器” 通常是一個負載均衡器背後的服務器集群,但從抽像一些來看,它們的架構是完全一樣的。

客戶端-服務器架構是一個中心化網絡架構,完全取決於單一的參與方,一旦中心服務器宕機了,服務就中止了(就像DigiCash 那樣)。

而點對點網絡則是一種分佈式網絡架構,不存在中央服務器。每個節點都承擔一部分該網絡的負載。這就意味著每個節點都可以對網絡發起請求但也必須響應其他節點的請求。我們可以把點對點網絡看成一個融合了客戶端和服務器兩個角色的“蜂群”。

點對點網絡之所以受人關注,是因為它能讓我們實現去中心化。去中心化網絡不依賴於任何單一節點,也因此對於任何單點宕機或者離線有高容忍度。

好的,去中心化聽起來是挺酷的,但,說到底,它真的能讓一個系統變得更優越嗎?

去中心化可以給我們帶來兩個我們想要的特性:第一,宕機容錯,意味著系統可以承受單個節點錯誤或故障,即使一個節點死亡,整個系統可以照常運行。這對於可拓展性至關重要,因為大型網絡中的節點故障不可根除。

- 來源:維基百科-

去中心化給我們帶來的第二個特性是抗審查性。如果某一個節點遭受審查,但網絡整體上是去中心化的,那就無關緊要,系統剩下的節點會繼續運行。要做到審查去中心化網絡,所有節點都必須串謀配合來執行審查,這在大型網絡中很難實現。如果我要在一個去中心化網絡中搜索一份文件,只要一個節點願意響應我的請求,我就能成功找到。

但我們為什麼這麼關注這些網絡特性呢?畢竟也沒有誰要拿下或者審查這些網絡,對吧?

一段點對點網絡的發展簡史可能會讓你明白為什麼中本聰這麼看重比特幣的這些性質。

點對點協議簡史

上世紀九十年代,在大型分佈式系統中協作大量計算的事情還非常罕見。 MapReduce 或者HDFS 還未發明,因此,大規模的分佈式計算非常罕見且成本高昂。點對點協議是第一個在計算機數量上算是大規模的分佈式系統(除了互聯網本身以外)。

Napster 並不是第一個點對點協議,但它是第一個進入主流的點對點協議,證明了點對點模式的潛力。

Napster 是在1999 年由兩位大學生Sean Parker 和Shawn Fanning 創建的。它提出了一個簡單的價值主張:你可以從Napster 網絡中的任何客戶端上下載MP3 文件。

- Napster 客戶界面,完全是九十年代的複古風格。來源:Andrew Orlowski -

Napster 的架構非常簡單,有一個Napster 中央服務器,可以看作是一個大型檢索索引表,了解所有節點與他們分享的內容。它把內容元數據保存為元組:(filename, ip_address, port_number)。

一個新節點加入網絡時,會給中央服務器發送它願意分享的文件列表,服務器隨後更新自己的檢索索引,將新的共享文件放入列表。

用戶需要查找一個文件時,服務器就會查詢索引表,再把相關結果展示給用戶。由於查詢出來的結果都是其他節點的文件,用戶需要ping 相關用戶的IP 地址來查看他們的下載延遲與網速。

用戶選出自己想要下載的文件之後,TA 所用的協議客戶端軟件就會直接向該文件指向的IP 地址提取文件。所有文件都在兩個節點之間直接傳輸,Napster 服務器這時已經完全不參與了。

從某種意義上說,Napster 是客戶端-服務器模式與點對點模式的過渡,服務器僅僅是MP3 下載用戶的匹配引擎。而且事實證明,很多人都想下載MP3。

Napster 發布不久後就火了,在鼎盛時期擁有超過八千萬用戶。 2001 年,它時常讓大學宿舍的高速網絡超載,很快就被許多大學禁了。

- 2000 年10 月《時代雜誌》封面上的Shawn Fanning -

2000 年,Napster 被Metallica、Dr. Dre 與A&M 起訴侵犯版權,這些訴訟為Napster 帶來了更多新聞報導與宣傳。但當法官宣判了讓Napster 停止版權音樂交易的禁制令後,事情終於告一段落。

Napster 給我們的教訓

雖然我們把Napster 稱作點對點網絡,但在文件查詢上,Napster 的設計完全是客戶端-服務器模式,只有在文件傳輸方面是點對點的。這就使網絡架構中出現了一個被依賴的單點(也就是所謂的“單點故障”),在Napster 公司關門大吉後整個網絡就消失了。

Napster 對於網絡安全方面的考量也不足,所有的消息和請求都以純文本的形式發送,所有IP 地址都是公開的,使系統幾乎毫無私密性。

但最終,Napster 棺材上的最後一顆釘子是法律的釘子,不是技術的釘子,Napster 被判對用戶的侵犯版權行為負有法律責任。即使Napster 作為公司本身沒有直接侵犯任何版權,法官仍舊判定Napster 引誘其用戶侵犯版權,因此“間接侵犯” 了版權所有人的利益。

法院要求Napster 立即停止所有侵權行為,Napster 隨後聲稱他們可以實施一項能夠阻止99.4% 侵權行為的解決方案,但法院堅持認為Napster 應該百分百阻止侵權。

後Napster 時代

最終,Napster 申請破產。其資產被出售,重新包裝成了Rhapsody。但Napster 掀起了一場巨大的風暴,讓我們幾乎忘記了風暴的始作俑者。諸如LimeWire、KaZaA 一類的網絡繼承了Napster 的特徵,創建出了局限性更少,性能更強且愈加去中心化的點對點協議。

隨著時間流逝,所有這些協議最終都被BitTorrent 所替代。到2009 年為止,以BT 為主力的點對點文件共享已佔全球互聯網流量的70%。 BT 網絡發展至今,已成為世界上最大的點對點網絡,並且是大多數國家最大的上傳流量來源。

我們應該停下來反思一下:為什麼BitTorrent 成功了,而其他大多數協議都隨著時間逐漸消失了?

一個原因是BT 投桃報李模式的帶寬共享,也就意味著為其他節點提供更大帶寬的節點也將獲得更大的下載帶寬。這種互惠的體制能有效阻止用戶白嫖網絡資源,也鼓勵用戶提前付出。 (實際上,這種投桃報李的模式並不完全有效,但它也是對先前的文件共享協議的改進)BT 協議在帶寬佔用方面也非常高效,對於需求量大的文件來說尤其如此。

但在許多方面,BT 協議成功的核心實際應歸功於其無可指摘的表態。他們的開發者從不提倡將共享有版權的文件視為對服務的合法使用。他們將BT 定義為“一種為網站服務的更好的方式”,並且他們的網站僅提及無關痛癢的用例,例如Linux 各種發行版或者魔獸世界遊戲的更新下載。

即使你想找茬儿,你也找不到一個中心化的BT 服務。只有一個由私人運行的種子追踪器組成的聯盟網絡。所以儘管其他點對點網絡不斷被執法者關停,但對BT 而言,執法者只能查到單個的種子跟踪器。多虧了BT 的DHT 模型,很多種子甚至在跟踪器被取締之後還能在網絡中倖存,因此,針對BT 的審查也就演變成了一場“打鼴鼠” 的遊戲。

- 海盜灣在其原始域名被查封後,於2015 年再次出現-

文件共享革命對於我們與技術和媒體的關係產生了深遠的社會影響。但它的衝擊遠不止於此,它還復興了工程師對點對點協議興趣,引導了許多學術項目的發展,比如Folding @home 和SETI @home,使個人可以將自己的算力借給世界級的點對點科學計算項目。一些成功的創業公司,比如Skype,在成立之初都是建立在點對點架構上的。

但隨著執法日趨嚴厲,點對點協議在公眾的心目中逐漸成為了“非法文件共享” 的代名詞。在受到過多的污名化後,學術熱情也逐漸降溫。與此同時,分佈式系統的進展使工程師能夠構建出大型的中心化系統,也就使大多數商業應用都不需要點對點架構了。

此外,各種經驗也證明,圍繞點對點協議建立可持續的商業模式非常困難,大多數的內容業務需要一個中心化經紀人或者數字版權管理系統來跟踪使用情況並管理付款。而點對點協議從定義上幾乎就可以說是無法實現中心化追踪的。 uTorrent 的前CEO Daniel Ek 用腳投票證明了這一點,他拋棄了BT 世界,與其他人合夥成立了音樂公司Spotify。所有這些因素都廣泛地導致了人們對點對點協議的興趣下降。

這就是為什麼在2009 年,點對點協議在很大程度上已經不流行的原因。在文件共享網絡以外,沒有多少新的應用採用了大規模的點對點系統。

然而,中本聰是明白人,他知道點對點架構是建立一個強韌的去中心化貨幣協議唯一可行的方法。他寫道:

各國政府很擅長取締像Napster 這樣的中心化控制的網絡,但像Gnutella 和Tor 這樣的純點對點網絡似乎堅持下來了。

點對點架構有什麼缺點?

去中心化不是毫無代價的。中本聰選擇讓比特幣使用點對點架構時就必須接受三大障礙。

第一,在中心化的架構中,我們通常很容易得到全局狀態的一致的快照(也就是說,我們能清楚看到網絡中正在發生的一切)。但在點對點協議中,通常不可能獲取這樣一個快照。節點僅儲存自己本地的知識,要描繪網絡全局中正在發生的一切變得非常困難。

比如在IP 路由這一例子中就是如此,單個IP 路由都不擁有整個互聯網的路由表,路由器將數據包傳遞給它們所知的下一個最近的節點,並相信有更多本地信息的節點能夠將數據包傳遞到離其目的地更近的位置。因此,在互聯網上展現出路由的活動全局快照是非常困難的。

點對點協議的第二個缺點,在於隨著用戶不斷上線下線,網絡的用戶流失率很高。這意味著任何的點對點協議都必須高度容錯才能使用。中心化架構在容錯能力方面的要求通常比點對點協議低很多。

然而,也許點對點協議所面臨最大的障礙是無法實施質量控制。由於點對點協議通常是完全開放的,任何惡意參與者都可以自由加入網絡並引起騷動。在中心化服務中,阻止一個惡意參與者非常容易。但在去中心化的點對點網絡中,又有誰能決定誰是好人誰是壞人呢?節制功能一旦設計不當就可能被惡意用戶利用來阻止好的用戶訪問。這意味著任何點對點網絡都必須經過精心設計,使得即使有惡意用戶存在,他們也無法顛覆網絡。

儘管有著上述缺點,中本聰顯然還是認為點對點網絡的性質對去中心化貨幣來說不可或缺。

對點對點協議歷史的概述到此為止。在下一節中,我們將深入探討一個著名但簡單的點對點協議—— Gnutella。它將為我們帶來Gossip 協議的藍圖,該協議最終會幫助我們理解比特幣自身的網絡模型。

(完)

分享至:

作者:PA荐读

本文為PANews入駐專欄作者的觀點,不代表PANews立場,不承擔法律責任。

文章及觀點也不構成投資意見

圖片來源:PA荐读如有侵權,請聯絡作者刪除。

關注PANews官方賬號,一起穿越牛熊