我們熟悉阿里巴巴、騰訊、字節跳動所代表的成功的商業故事。我們知道微信、淘寶、抖音是怎樣成為全民爆款的產品。這些案例離消費者觸手可及,它們在各自的領域里過關斬將,最終成為了人們生活必不可少的一部分。這些故事是漂浮在水面的冰山,我把它們稱之為應用層的戰爭。
還有一種故事,藏在海平面下,體積比水上的巨大得多,意味著它們的影響更深遠、更遼闊,但因為不直接面向消費者,往往不為人知。我把它稱之為協議層的戰爭。協議層是應用層之所以存在的基礎。
就像應用需要獲取用戶、占領市場一樣,底層協議想要成為最終的贏家,也需要占領自己的用戶——大部分是開發者——的心智。但協議層的戰爭又跟應用層很不一樣,并不是砸錢做推廣就可以搞定,很多時候,協議層需要以開源的形式,去贏得更多的信任,因為它們需要建立的不僅是市場,還有生態。
生態和市場有什么不一樣?打個比方,應用層戰爭就像是兩個生意對手在廣場上建立一家商店,互相爭奪吸引鎮上顧客光臨自家商店。而協議層戰爭更像是兩個宗教互相競爭,誰能號召更多的人成為信徒,誰能鼓動更多信徒在鎮上建造更多的教堂,誰才是最后的贏家。
區塊鏈正處于協議層戰爭的早期階段,目前為止還沒有產生通吃一切的大贏家。每條公鏈都在嘗試建立自己的生態,比特幣和以太坊走在了最前面,身后跟著許許多多中小型的項目;DeFi 成為了智能合約主流的敘事和應用方向,穩定幣 Maker 走在了前面,身后還有其他種類繁多的DeFi 協議,它們每個都希望成為去中心化金融的基礎拼圖,金融樂高中最底層的積木。
這里面每天都在產生大量的創新,也有大量的競爭。橙皮書和這個行業里的其他人一樣,我們也在試圖思考那個最重要的問題:哪些協議會最終勝出?應該把手中的賭注,押在哪只賽馬身上才能笑到最后?越想知道這個問題的答案,思緒好像就越亂成一團。
就像上文所說的,協議層的戰爭跟我們所熟悉的應用層戰爭并不一樣。好在歷史或許能給我們一些幫助,因為協議層戰爭其實已經發生過一次了。在互聯網協議剛誕生的上古時期,如何把全世界的電腦連接成一個網絡,同樣面臨著不同協議的競爭。最終我們知道,TCP/IP 協議獲得了勝利。
但互聯網的這場協議戰爭到底是怎么樣的?它對今天區塊鏈領域的戰爭又有什么樣的啟示?這篇文章嘗試著回答下這兩個問題。
40年前的協議戰爭
在互聯網的大目標上,所有人都達成了共識:要建立一個全球性的計算機網絡。但是具體如何實現這個目標,他們意見各不相同。到20世紀80年代初,有幾個不同的協議開始相互競爭。
在歐洲電話壟斷巨頭和大多數政府的支持下,OSI協議受到了當時更多人的青睞。其他強有力的競爭對手還包括兩個企業內部的網絡協議,IBM SNA 和 DEC DECNET。我們今天所熟知的互聯網協議(TCP/IP協議)是當時這場協議戰爭中的黑馬,它只由一個依靠志愿者的自治社區來支持。
但是互聯網協議的這個自治社區動作非常敏捷快速,他們在幾個月內的時間里,開發進度就趕上了 OSI 委員會耗費數年取得的進展。不過,互聯網協議卻嚇跑了一些潛在的使用者,因為這里似乎沒有人為之“負責”。——計算機歷史紀念館[1]
協議和標準的不一致,到底會產生都多大的問題?當時的情況類似于,我們已經可以把全世界的電腦都連起來了,就像所有人家里都配備了電話,但是因為協議和標準的不同,每個人接電話講的卻是不同的語言,因此互聯互通仍然無法實現。
因為無法統一標準,想把不同協議的電腦連成網絡,實操的難度和麻煩非常大。思科公司(專門生產用于連接計算機網絡系統的設備和軟件)有這樣一件文化衫,上面羅列了當時他們能支持的網絡協議,而這些網絡協議只是當時所有網絡協議的一部分。
互聯網協議的三個主要競爭對手
DECNET
DECNET 是一個受歡迎的網絡系統架構,但它是私有的,因此沒有被標準組織和政府客戶所采用。從1987年12月開始,DECNET 從 DEC 自己的協議轉移到了 OSI 標準的協議,OSI 協議最終又輸給了TCP/IP。
SNA
SNA 誕生于1974年,是 IBM 的專有網絡體系,一開始是專門用來連接大型機和類似電傳打字機、顯示器這樣的計算機外圍設備的,后來又擴展到連接其他計算機上。SNA 最初是固定不變與分層的設計,最后變得更加靈活。SNA 協議在大公司內部主宰了幾十年的地位。
OSI
OSI 是互聯網協議的直接競爭對手。OSI 是一個定義良好的、受到各國政府與學界支持的、受益于 XNS 與其他協議的例子。但它最終受困于過多的復雜性,一直沒能推出能實際運行的代碼。
OSI 與 TCP/IP
這場協議戰爭的重頭戲,無疑屬于 OSI 與 TCP/IP。工程師、機構組織和國家在誰能成為最好、最強壯的計算機網絡標準這個問題上達成了非常明顯的兩極化,兩套標準都是開放和非專利占有的,但彼此又互不兼容。
OSI 想要為計算機網絡創造一系列復雜全面的標準,設計 OSI 的架構師由一群來自英國、法國和美國的計算機行業的杰出代表組成,他們暢想設計一套完整的、開放的、分為多層的系統,讓全世界的用戶可以輕松的交換數據,為商業協作創造新的可能性。 在很長一段時間里,這個愿景看起來都是正確的。OSI 也因此獲得了幾乎所有重要人員的支持:計算機企業、電信公司、監管部門、國家政府、國家標準制定機構、學術研究人員,甚至是來自投資了競爭對手 TCP/IP 協議的美國國防部的支持。包括 IBM 在內的大型計算機企業也在 OSI 身上投入了大量的資金。在1980年代中期,OSI 標準在全世界普及似乎是命中注定、不可避免的。
但是,到了1990年代早期,OSI 萬事俱備,發展速度卻遠遠落后于另一種更便宜、更敏捷、更不全面的協議:互聯網 TCP/IP 協議群。OSI 步履蹣跚、速度緩慢,而 TCP/IP 卻一路向前狂奔,人們因此發出這樣的感嘆:OSI 是一個美麗的夢想,但 TCP/IP 已經夢想成真了。
OSI 一開始就是定位于跨國際的、全球性的工作,從1978年開始,到1980年開發陸續發布草案,到1984年最終 OSI 模型正式發布,都是跨國際的工作組,這一點從委員會和架構師的組成人員也可以看出。
而在1980年代 NSF 獲得掌控權之前,TCP/IP 甚至從來就沒有被當作過網絡全球標準采用的候選者。一直到1989年,成套的協議群在 RFC 1122[2] 和 RFC 1123[3] 被提出,TCP/IP 才為成為一套全面完整的協議套件設立了基礎,最終發展成了現在人們所熟悉的 Internet protocol suite[4]。
為什么 TCP/IP 這匹黑馬能戰勝當時的大熱門 OSI ,成為互聯網協議的大贏家呢?有這么幾個方面的說法。
TCP/IP 獲勝的原因
理念與文化方面
在開發 TCP/IP 協議的時候,互聯網工程師們習慣于在流動的組織形式中持續不斷的做實驗。他們覺得 OSI 委員會是一個過度官僚化的、 不接地氣、高高在上的組織,從不觸碰任何現有的網絡系統和計算機。這使得互聯網社區逐漸遠離了 OSI 模型。
有一件小事可以反應這種文化的不同。在1992年的 IETF 會議( Internet Engineering Task Force[5])上, Vint Cerf(TCP/IP的領導者之一)在一次爭吵中直接穿著西裝跳起了脫衣舞,露出里面的T恤,T恤中間印著 IP on Everything 的字樣。Cerf 稱自己這個行為是為了強調互聯網的目標是讓一切都運行在IP地址上。
Vint Cerf 認為,早期在 ARPANET 中形成的這種社區文化,與技術因素一樣重要,因為正是這種文化能讓互聯網的治理能力快速去跟隨并適應協議的規模和發展。
此外,還有人總結,贏得互聯網市場的公司,比如思科,都是小公司。因為它們擁抱了互聯網的文化,對這種文化感興趣,并且特別重要的是,它們能參加 IETF 的組織和會議。
在1992年的一次演講中,David Clark 這樣描述 IETF 這個組織的運作方式:
We reject kings, presidents and voting. We believe in rough consensus and running code.
我們不要國王、總統和投票。我們只相信“粗略的共識”和“能夠運行的代碼”。
“粗略的共識”和“能夠運行的代碼”可能是 IETF 最重要的特征。一個大項目,比如發明一個新的網絡,通常是從上到下進行設計的,由公司或所屬機構參與。而年輕的ARPA網和互聯網社區則通過自下向上的風格完成自我進化,這種方式富有生產力,卻并非結構化的團體協作。
參與者通常自己解決問題,然后把他們的解決方案貢獻到 RFC(request for comment) 中。最好的 RFC 又變成了社區認可的統一標準。這種精英式的、同行評審的方法,與科學研究的過程非常類似。這種隨心所欲的風格也為后來的一些項目提供了模版,包括 Web 和開源社區。
作為對比,在 OSI 那邊,一個新的技術想要成為國際標準,每個方案都必須經過如下四個步驟:首先是先提出一個工作草案,然后再提出一個國際標準草案的提議,然后是變成國際標準草案,最后才是成為國際標準。在 OSI 中建立共識和相關標準,往往需要牽涉一大堆額外的-涉及全體成員和委員會的會議。
OSI 的第一次全體會議整整持續了三天時間,從1978年2月28日開到了3月2日,參與者包括數十名來自10個國家的代表,以及從四個國際組織中挑選出的觀察者。每個人在參會時都帶著自己的市場利益保護心態,帶著自己的項目來推廣。
技術方面
許多人對 OSI 的復雜技術感到挫敗和沮喪。OSI 定義了7層的模型,有人認為7層太多了,特別是傳輸層(5層,對比TCP/IP只有2層)過多,而每一層的嚴格定義被TCP/IP協議的擁護者認為是不高效的,不允許提高性能的trade-off。并且,OSI 在網絡層同時定義了數據報和虛擬電路兩種方法,而它們彼此是不具備互操作性的。
康奈爾大學的研究人員認為[6],OSI 失敗的原因之一是它試圖對所有東西都進行標準化,OSI 委員會試圖控制網絡中的一切。在缺少具備指導意義的操作經驗的情況下,OSI 一直不斷添加越來越多的功能。而早期的 TCP/IP 的技術理念則更為實用,它的座右銘是“粗略的共識和能夠運行的代碼”,TCP/IP 只是指定了網絡和傳輸協議,它沒有嘗試去定義底層的網絡技術,而上層的技術,比如電子郵件等應用程序的協議,則一直等到出現了可運行的代碼之后,有了實踐的經驗和需要才開始被標準化。
實踐與商業應用方面
除了技術,在實際應用方面,TCP/IP 一個成功的關鍵是決定將協議包含在 Unix 系統的Berkeley標準發行版(BSD)中。這也是由ARPA資助的。1983年發布的BSD 4.2,配備了完整的 TCP/IP 協議群,而且代碼都是開源的。這些代碼很快被移植到了很多其他操作系統中,成了第一代互聯網的基礎。
ARPA 和電信行業建立了商業伙伴關系,也進一步推動了 TCP/IP 的傳播和采用。歐洲核子研究組織(CERN)[7]在1984年至1988年之間為其內部網購買了帶有TCP/IP的UNIX計算機。1988年,歐洲 UNIX 網絡 EUnet[8] 也宣布轉移到 TCP/IP 協議上。
盡管如此,當時很多人依然認為應該與歐洲其他國家一起繼續開發 OSI 協議,而非選擇 ARPA。他們為自己所做的事情感到驕傲,并不是出于民族自豪感或者反對美國,而是認為自己在做正確的事。這種心態慢慢轉化為了一種宗教教條。
此外,當時的 ARPA Internet 仍然是一個研究項目,不允許商業流量或營利性服務出現。美國商務部要求遵守 OSI 協議的標準,而美國國防部也計劃從 TCP/IP 協議過渡到 OSI 協議。當時美國許多大學也抱著同樣的心態,在校園網的選擇上他們先使用 TCP/IP 協議,想著等到后面再遷移到 OSI 協議去。一些歐洲國家和 EEC 也批準了 OSI 協議,成立了RARE[9]來推廣OSI協議[10],并且限制了對非OSI兼容協議的投資。
但是,到了1989年,OSI 協議的倡導者 Brian Carpenter 在一個技術會議上發表了題為《OSI是否已經太晚了?》的演講,這次演講受到了熱烈的掌聲和歡迎。它表明,雖然 OSI 已正式定義完成,但與 OSI 相關的計算機制造商的產品和PTT的網絡服務產品卻還在苦苦等待開發中。
相比之下,TCP/IP 一直就不是官方標準(它是在非官方的RFC[11]中定義的),但是自1983年以來,TCP/IP 已經提供了同時包含以太網[12]和TCP/IP協議的UNIX[13]工作站。
1990年,歐洲核子研究組織與美國康奈爾大學建立了跨大西洋的TCP/IP鏈接,歐洲一些國家和組織的學術機構已經采用或表示接受TCP/IP協議。1991年1月在盧瑟福實驗室[14]里,DECnet 占了75%的流量,這歸功于VAXs[15]之間的以太網[16]。而 IP 協議則是第二大流行的協議,擁有近 20% 的流量,這主要歸功于UNIX計算機,“ IP是自然的選擇”。
在中央計算部新聞通訊中,盧瑟福實驗室通信與小型系統主管 Paul Bryant 這樣寫道:“經驗表明,與SNA等系統相比,IP系統非常易于安裝和使用,而 X.25 和彩色書協議等系統則比較復雜”,他還寫道:“美國學術流量的主要網絡現在是基于IP協議的。IP協議最近在歐洲因站點間流量而變得流行。隨著這種方法的出現,大型組合的美國/歐洲網絡對英國用戶來說具有很大的吸引力?!?/p>
當時,很多人也有類似的看法。在歐洲核子研究中心, Fran?oisFlückiger表示:[17] “該技術簡單,高效,已集成到UNIX類型的操作系統中,并且對用戶的計算機沒有任何影響。最早將路由器商業化的公司(例如Cisco)看起來運行得很健康并且供應良好,最重要的是,用于本地校園網絡和研究中心的技術也可以用于以簡單的方式互連遠程中心?!?/p>
TCP/IP 在這場協議戰爭中取得勝利的另一個關鍵點,發生于 1989 年,Tim Berners-Lee[18] 在歐洲核子研究中心發明了萬維網[19]。萬維網作為互聯網上的應用程序,最終為互聯網帶來了許多社會和商業用途。
互聯網在1993-1994年開始進入人們的日常使用。NSFNET 在1991年更改了其政策以允許商業通信,并在1995年被關閉,取消了對使用互聯網進行商業通信的最后限制。隨后,Internet骨干網[20]由商業Internet服務提供商提供[21]?;ヂ摼W變得無處不在。
對區塊鏈的啟示
這段歷史對今天區塊鏈的格局有什么樣的參考意義呢?上一場協議戰爭能為今天發生在區塊鏈領域里的協議戰爭帶來怎樣的啟發?
建立正確的組織形式和社區文化
所有人都知道“開放”是最重要的,但具體到社區文化和組織形式上仍然會有差異。OSI 從一開始就定位于跨國的全球性工作組,也融入了許多開放性多樣化的社區人員,但最后它卻變成了一個不同利益方互相追逐的混亂公地。
IBM 作為 OSI 中非常重要的一股力量,因為對自己已有業務利益的維護,在基于數據報的包交換(Packet switching)日益流行的情況下,依然選擇維護仿虛擬電路交換的方案,正是這種不同利益方的弊端。
所以,對于很多區塊鏈項目來說,踐行開放開源的理念一定要找對方向。RFC 在 TCP/IP 協議的制定上起到了非常重要的角色,今天,區塊鏈項目在推動技術發展、新協議和新標準上也應該有類似的方案。
以太坊應該是一個很不錯的模版,社區文化所賦予的創造力是顯而易見的,橙皮書之前寫過相關的文章介紹《專訪Vitalik:社區遠比代碼更重要》。而反觀 Facebook 主導的 Libra 項目,幾乎很難被人看好,在我看來,它類似于 OSI 的組織形式,由一家既得利益者的巨頭企業主導,試圖拉攏其他行業里的頭部力量,我認為在怎樣協調各成員的利益上,Libra 需要面臨與 OSI 相同的難題。我在心里甚至認為,Libra 注定是要失敗的。
不要過分糾結理念,先讓代碼跑起來
“粗略的共識,可運行的代碼”——這句話是 TCP/IP 協議工作組的座右銘。換作在區塊鏈行業里,我覺得類似的道理是,不要太過于糾結原教旨主義的理念,比如去中心化,也不要過早開始考慮怎樣把項目過渡給社區接管,或者是在追求通過投票的方式完成項目的升級和進化、追求鏈上治理的方向上浪費太多力氣。
因為這些事情也許都遠不如讓代碼和協議能先跑起來、運行起來,來得更重要。這世界不缺理念正確的人,缺的是跑得足夠快的人。其實類似的建議橙皮書之前也寫過許多:《區塊鏈應用層需要拿破侖》。
不要追求完美的協議
OSI 與 TCP/IP 的競爭,最直接的一個教訓是,世界上并不存在完美的協議。在區塊鏈行業里,我看到不少項目方都在追求這種完美主義,或者不是追求,而是在以這種完美主義作為故事宣傳自己的項目。
就公鏈這種大型基礎設施而言,所有人都希望得到一個完美的解決方案,既能擴容、又去中心化、不用浪費電力、還能順帶解決跨鏈問題,既能跑DeFi,又能玩菠菜。想用一條鏈的技術,一次性解決這些問題是不可能的。要相信有用的協議最終都會逐漸得到補全、成為完整的協議群和協議棧,不要一開始就寄希望于發明一套完美的協議。從這個角度來說,似乎 Cosmos 的策略要比波卡更好。
如果你做了一個協議,這個協議能為開發者解決什么樣的實際需求才是最重要的,不同的協議可以組合成協議棧,成為日后不可或缺的積木。而最簡單的協議,往往最有可能率先存活下來。比如 Uniswap、0x、Compound。
這方面,同樣的,橙皮書之前其實也寫過類似的觀點:《BTC與ETH:定位的勝利》。
盡早讓協議傳播開來
最后一點,是讓協議盡可能得到傳播。
讓協議傳播有兩種方法,一是找到傳播的載體,借著某些必要的工具和產品得到推廣和普及。
就像 TCP/IP 協議最早是搭載 UNIX 系統而得到傳播一樣,區塊鏈協議也應該盡可能去尋找這樣利于傳播的載體,讓你的協議盡早可以被開發者使用上。
另一種方法是,讓協議產生有影響力的產品和應用,借著應用的普及而使底層協議得到普及。就像萬維網建立在 TCP/IP 的基礎上一樣,萬維網吸引了許多圈外的人使用互聯網,最終也壯大了 TCP/IP 協議的發展。
以太坊,在我看來,它就率先為開發者提供了一套可編程的智能合約的功能。過去幾年我不斷聽到有人對以太坊的智能合約以及solidity語言的批評,常見的批評觀點是,以太坊沒有必要提供一個圖靈完備的智能合約功能,不是所有代碼都需要放到鏈上,也沒必要專門為編寫 Dapp 發明一套新的語言。
這些觀點當然都是正確的。但現實是,以太坊用智能合約這個最容易理解的概念先占領了開發者的大腦,它可能不是最完美的,但它率先得到了傳播,那些掌握正確觀點的人反而需要從頭開始追趕以太坊領先的步伐。
最后
如果橙皮書是一家投資基金,我們該如何選擇投資什么樣的區塊鏈協議?
TCP/IP 的歷史告訴我們,應該選擇那些信奉“粗糙的共識與可運行的代碼”的項目,橙皮書想要投資的,應該是擁有這種社區文化的協議。
讓我們把這種社區文化,再次重申一遍:
We reject kings, presidents and voting. We believe in rough consensus and running code.
責任編輯:ct
評論
查看更多