計算機網絡50年發展史:從阿帕網到比特幣

比特幣白皮書並非憑空出現,P2P網絡也不是什麼新技術。P2P網絡根植於計算機和互聯網的早期歷史,建立在數十年的計算機網絡、密碼學和博弈論研究基礎之上。

文/Shermin Voshmgir

編譯/柳葉驚鴻

時代觀察 | 計算機網絡50年發展史:從阿帕網到比特幣

第一個計算機網絡是在20世紀60年代發明的。ARPANET是1969年引進的美國大學計算機專用網絡,最初由美國國防部高級研究計劃局資助。1973年,ARPANET整合了英國和挪威研究機構的計算機,成為一個全球網絡。1974年,隨著第一家互聯網服務提供商Telnet的整合,ARPANET開始商業化。同年,一篇發表的論文,描述了一種在節點之間使用分組交換共享資源的工作協議。該協議的一箇中央控制組件是傳輸控制程序(TCP)。1982年,TCP的單片體系結構被劃分為一個由傳輸層(TCP)和Internet層(也稱為"Internet Protocol",IP)組成的模塊化架構。該模型被稱為TCP/IP,並作為標準的網絡協議。


時代觀察 | 計算機網絡50年發展史:從阿帕網到比特幣

20世紀70年代

20世紀70年代初,拉爾夫•默克爾(Ralph Merkle)的密碼學研究為P2P網絡安全通信奠定了基礎。他的工作概念化了如何像計算機網絡一樣解決"在不安全信道上的安全通信",併為現代公鑰密碼學奠定了基礎。在他的論文中,他進一步描述了一種構建抗碰撞的加密哈希函數的方法。他還申請了一種特殊類型的哈希表專利,這種哈希表名為Merkle樹,它允許對大型數據結構的內容進行更有效和更安全的驗證。

1976年,惠特菲爾德•迪菲(Whitfield Diffie)和馬丁•赫爾曼(Martin Hellman)基於他的一些想法,創建了一種通過公共網絡安全交換密鑰的機制。它是最早實現公鑰交換的例子之一,並引入了數字簽名的概念。在公鑰方法發明之前,加密密鑰必須以物理形式傳輸,因此在公共網絡上進行安全的數字密鑰交換是開創性的壯舉,沒有它,比特幣和隨後的技術就無法運行。1978年,羅恩•裡夫斯特(Ron Rivest)、阿迪•沙米爾(Adi Shamir)和倫納德•阿德爾曼(Leonard Adleman)發現了一種創建單向加密函數的方法,這種加密方法很難逆轉。他們的算法——現在被稱為RSA,開創了非對稱加密的時代,後來演變為密碼學中的橢圓曲線加密算法。1985年,尼爾•科布利茨(Neal Koblitz)和維克托•S•米勒(Victor S.Miller)分別提出了這一算法,這也是比特幣中的一項關鍵技術。

與此同時,隨著個人電腦的興起和互聯網協議套件TCP/IP的引入,互聯網變得更加普及。然而,可用性仍然是個問題。你必須使用命令行,也就是計算機語言來瀏覽互聯網。蒂姆•伯納斯—李(Tim Berners-Lee)用他對萬維網的願景解決了這個問題。他用一種相對簡單的標記語言創建了一個可視化網站的標準,這些鏈接只需單擊一下即可指向其他網站。雖然從發佈的角度來看,萬維網讓每個人都可以輕易地對互聯網上可用的信息做出平等的貢獻,但數據仍然是在服務器的圍牆後存儲和管理的。

時代觀察 | 計算機網絡50年發展史:從阿帕網到比特幣

無論是TCP/IP還是基於它的協議,都沒有解決在何處存儲和如何管理數據的問題。在公共計算機網絡中,系統的結構,如網絡拓撲結構、網絡延遲、計算機數量等,計算機網絡是事先不知道的。因此,計算機網絡可以由未知的、不可信的計算機和網絡鏈接組成。在執行分佈式程序期間,網絡的大小和組成也可能隨時發生變化。因此,在出現故障的過程中提供並保持可接受的服務水平的能力是網絡恢復能力的關鍵。當時的焦點是公共網絡中的數據傳輸,這已是一個很難解決的問題。

由於經濟原因,中心化數據存儲和管理成為主流。中心化網絡的問題是:系統管理員或控制服務器的機構是控制共享信息可用性的唯一實體。這意味著,如果管理員決定不再分發、操作或審查數據,他們可以簡單地在其服務器上執行此操作,並且不再向用戶提供該信息。

時代觀察 | 計算機網絡50年發展史:從阿帕網到比特幣

DigiCash的原始技術團隊

20世紀80年代

1982年,大衛•喬姆(DavidChaum)引入了盲簽名的概念,這保證了信息發送者的隱私。盲簽名是為投票系統和數字現金系統建立的。他介紹了eCash作為一個匿名的加密電子貨幣或電子現金系統的想法,並創立了公司DigiCash將他的研究商業化,在1995年至1998年DigiCash被用作一個美國銀行的小額支付系統。但DigiCash於1998年破產,可能是因為他的理念太超前了,因為當時的電子商務應用還沒有那麼廣泛。

1983年,隨著DNS(Domain Name System,域名系統)的引入,實現了另一個突破,這使得網絡中節點的尋址可讀性更強。然而,在這些第一代計算機網絡中,其重點是將公共計算機網絡連接起來,並解決計算機尋址和數據傳輸的問題。網絡體系結構仍然是基於C/S(Client-Server,客戶端-服務器)架構邏輯。此外,在互聯網的早期,安全通信從來不是主流的焦點。然而,一些特定的研究人員對這個問題很感興趣。


20世紀90年代

1991年,斯圖爾特•哈伯(Stuart Haber)和W•斯科特•斯托內塔(W.Scott Stornetta)提出了一種不能篡改文件時間戳的系統,介紹了最早的關於加密保護的區塊鏈的學術著作。他們的目的是在一個"所有文本、音頻、圖片和視頻文件都以數字形式和易於修改的媒體格式"的世界中證明文件是在什麼時候創建或修改的。在最初的提議中,他們使用了集中時間戳服務。然後,他們試圖通過要求幾個用戶(用戶通過偽隨機數生成器選擇)來分配信任,以此對哈希進行時間戳,而不是中心機構。一年後,也就是1992年,拜耳、哈伯和斯托內塔將Merkle納入了這一機制。這通過允許將多個文檔證書收集到一個塊中,從而提高了系統效率。

第一個"PoW(Proof Of Work,工作量證明)"功能是由Hashcash(哈希現金)於1997年由亞當•貝克(Adam Back)引入。這個想法是為了限制垃圾郵件和拒絕服務攻擊,它要求發起者進行一定量的運算,也就意味著需要消耗計算機一定的時間。最初的想法是由Cynthia Dwork和Moni Naor在他們1992年的論文《通過處理或打擊垃圾郵件定價》中提出的。在比特幣多年後出現之前,Hashcash引入的概念在2004年也被用於B-money的挖掘機制。B-money是戴偉(Wei Dai)早期提出的一種"匿名分佈式電子現金系統"。這是在密碼朋克郵件列表討論有關Hashcash潛在的應用場景時提出的,B-money的討論也在同一郵件列表上發表。這個由大衛•休斯(David Hughes)發起的密碼朋克郵件列表代表了一群積極分子,他們提倡在日常生活中使用強大的加密技術和隱私增強技術,以此作為社會和政治變革的手段。上面提到的許多人貢獻了後來在比特幣中使用的關鍵技術,他們都是活躍的密碼朋克。

1998年,尼克·薩博(NickSzabo)設計了一種分佈式的數字貨幣機制,他稱之為"BitGold"(比特金),比特金實現了他關於智能合約和數字協議的許多想法。薩博的自我執行協議的思想大致與伊恩·格里格(IanGrigg)在1996年提出的"裡卡迪亞契約(Ricardian Contracts)"的理念相同。雖然BitGold從未實現過,但許多人認為它是比特幣體系結構的直接先驅。就像後來的比特幣一樣,BitGold設想了一種基於PoW的共識算法,其中的計算能力用於解決密碼難題。然而,BitGold的提案無法以完全去中心化的方式解決雙重支出問題——女巫攻擊(Sybil attack)——這可能是它從未實施的原因。許多人猜測薩博是比特幣的匿名創造者中本聰(Satoshi Nakamoto),但他否認了這一傳言。

1999年,音樂共享應用Napster普及了現代P2P網絡的概念。它改變了數據在互聯網上存儲和分發的方式。Napster創建了一個用於文件共享的虛擬覆蓋網絡,它獨立於Internet的物理網絡。在這個虛擬網絡中,所涉及的所有計算機構成了物理網絡中計算機的子集。數據仍然在底層TCP/IP網絡上直接交換,但是在應用層,對等點之間能夠直接相互通信。P2P網絡增強了健壯性,因為它們消除了基於客戶端/服務器的系統中所固有的單點故障。即使網絡上的一臺計算機發生故障,整個網絡也不會受到危害或損壞。這種計算機網絡的設計必須能夠容忍個別計算機的故障,無論故障的來源是什麼。然而,Napster依賴於中央索引服務器的操作,因此在版權侵權指控和法律訴訟之後,很容易被關閉。

時代觀察 | 計算機網絡50年發展史:從阿帕網到比特幣

21世紀

2000年,Gnutella(是第一個經論證的分佈式的點對點系統)率先提出的一系列新的文件共享協議消除了這些中心故障點。它允許用戶找到彼此並遠程連接,同時搜索網絡上的每個節點,因此更加分散,並且具有抗審查性。雖然Gnutella解決了權力下放問題,但他們沒有解決隱私問題。第三代文件共享網絡(如BitTorrent)使用分佈式哈希表,以加密安全的方式存儲整個網絡中的資源位置。分佈式哈希表不僅取代了索引服務器,而且還保證了其網絡參與者的匿名性以及通過網絡共享的所有數據。這些分佈式哈希表現在也被區塊鏈和其他Web3協議(如IPFS和以太坊)使用。

儘管自Napster出現以來,現代P2P網絡就解決了在網絡中有效分配數據的問題,但它們並沒有解決數據的分佈式驗證或數據驗證問題。同時,這些文件共享網絡未能解決的另一個問題是"搭便車問題":大量用戶使用其他節點共享的資源,但自己沒有共享任何東西。它會導致社區崩潰。免費搭便車是因為用戶沒有合作的動機。這樣的合作不但消耗了自己的資源,同時也降低了自己的性能。

2004年,在比特幣出現之前,哈爾芬尼(Hal Finney)推出了第一個可重用PoW系統。他引入了這樣一種思想,即RPoW代幣的價值由"鑄造"PoW代幣所需的實際資源的價值來保證。2009年,芬尼還從比特幣的創造者中本聰(Satoshi Nakamoto)那裡收到了第一筆比特幣交易。芬尼顯然和一個名叫"中本聰"的日本裔美國人住在同一個小鎮,不過他經常否認參與過比特幣交易。但這一事實加劇了人們的猜測,即他可能是比特幣的創造者,雖然他一直否認這一點。

2008年,在金融危機達到頂峰和雷曼兄弟等大銀行破產後不久,比特幣白皮書以化名中本聰(Satoshi Nakamoto)的名義發表。其目的是提供一個沒有銀行的P2P電子現金系統。雖然第一個規範是由中本聰實現的,但一群敬業的人逐漸接管了代碼的進一步開發工作。幾個月後,比特幣網絡上線,第一個區塊被創建,第一個比特幣被鑄造出來,最終確定並部署了代碼。然而,有趣的是,在白皮書並沒有談論區塊鏈,而只是關於"區塊鏈"。幾年後,當人們開始複製比特幣代碼庫來開發替代協議時,"區塊鏈"這個詞就變得很普遍了。

儘管現代P2P網絡(如Napster)缺乏對網絡參與者的激勵,但早期的電子現金想法無法抵禦女巫攻擊。比特幣白皮書改變了遊戲規則,因為它提出了一種數據集體驗證協議。它引入了一種共識機制-工作量證明,允許在網絡的每個節點上存儲一個不斷增長的交易記錄——區塊鏈。比特幣因此解決了以前P2P網絡的"搭便車"問題,通過引入代幣化的激勵機制,激勵所有參與者以真實的方式為系統做出貢獻。儘管比特幣在設計時從未考慮過文件共享,但它最終激發了一種新的P2P存儲框架,它將成為分佈式網絡的關鍵組成部分。這些分佈式的存儲網絡現在可以使用代幣激勵的機制,在以前文件共享協議的基礎上進行構建,並使用本地代幣激勵它們的網絡參與者,例如"Swarm"、"Storj"、"SIA"和"IPFS"。



分享到:


相關文章: