- 區塊鏈戰爭:科技寡頭和區塊鏈互聯網的未來
- (美)埃文·麥克法蘭
- 4416字
- 2023-12-27 17:13:19
構建Web3.0
要了解Web3.0的關聯,首先要理解互聯網是如何構建的。互聯網的構建從客戶端(計算機)開始。你的個人計算機、智能手機和平板計算機都是客戶端。當你上網時,你的客戶端不斷請求訪問儲存在各種服務器中的信息。
服務器是托管網絡的軟硬件。也就是說,它們存儲網絡的所有數據。你可能認為它們是服務器群,或者堆積著成千上萬個黑色立方體的科技公司的計算機房。其實,那些黑色立方體就是服務器。
客戶端發出請求,服務器授權,這就是硬件之間交換信息的方式。單個服務器可以有數千個客戶端,所有客戶端都共享一個編寫了交互規則的通用協議。客戶端、服務器與協議的組合稱為客戶端-服務器模型,它使我們的智能手機和筆記本計算機不必存儲數據及運行維護互聯網的計算。
一旦建立了硬件通信系統,就會形成網絡,它為編程語言及其相關的軟件包提供了運行場所。編程語言及其相關的軟件包可以用來構建平臺,也就是你看到的部分:網站和應用程序。
把數以千計的網絡結合在一起,就形成了人人皆知愛恨交加的互聯網。以上這些方面在Web3.0和前幾代互聯網中,都是一致的。圖1-1呈現了典型的網絡結構和兩代互聯網之間的特性差異。
區塊鏈只對構成互聯網的一小部分產生影響。由于服務器的存在是為了響應客戶端的請求,它的職責之一就是存儲數據,而這通常是通過數據庫來完成的。Web3.0只是用區塊鏈替代了數據庫,其他的不同之處在于后續的互聯網新興技術。要理解為什么會這樣,讓我們來看看為什么今天的互聯網會以這樣的方式發展。

圖1-1 互聯網基礎設施
在遺留系統中,互聯網的大部分組成部分都被私有化,這是通過一個自然進化過程實現的。為什么會這樣呢?我們假設一個20世紀90年代的場景。那時,現代互聯網基礎設施尚不存在,但相關各方已完全了解客戶端-服務器模型。
愛麗絲(Alice)是一名軟件開發人員,她想推出一個網絡應用程序。為了讓應用程序支持公開訪問,愛麗絲需要找到一個或多個服務器,以托管她的應用程序代碼。自己構建硬件基礎設施,既昂貴,又不切實際,因此她尋求第三方幫助。有人給愛麗絲介紹了鮑勃(Bob),他最近開了一家專門為愛麗絲這樣的客戶運行服務器的小公司。不過,鮑勃的服務器設置給愛麗絲帶來了許多風險,這些風險都源于缺乏信任。一個明顯的問題是,因為不夠信任,愛麗絲不會給予鮑勃全部的應用程序數據庫權限。即便鮑勃很誠實,他也沒有資源或專業知識來增強安全防護,避免網絡攻擊。如果鮑勃失勢或公司倒閉,那么愛麗絲的應用程序將無法運行。如果愛麗絲的應用程序的增長超過鮑勃的服務器容量,應用程序也將無法訪問。愛麗絲無法信任創建應用程序所需的人力或技術。
幸運的是,愛麗絲找到了IBM(國際商業機器公司)的顧問戴夫(Dave),他能解決她的后顧之憂。戴夫稱,他的團隊能提供受一流防火墻和備份系統保護的無限服務器空間,這幾乎能確保愛麗絲的應用程序零風險。愛麗絲從不得不相信鮑勃的話,轉變為信任由IBM的聲譽和信用背書的工業級服務器。在IBM的幫助下,愛麗絲完成了代碼編寫,并準備推出該網絡應用程序。
互聯網上的每一位構建者都在做相同的選擇,即堅持與最杰出的服務器提供商合作。如今,推動中心化的大型企業是互聯網的基石,因為他們幫助互聯網建立了信任。
眾所周知,IBM并不是壟斷互聯網的公司,因為它沒有意識到互聯網建設的關鍵不在于大型計算機。統治互聯網的,主要是谷歌(Google)、微軟(Microsoft)和亞馬遜(Amazon),因為它們創造了“云”,也就是大型科技公司的服務器。
在潛入“云”端之前,我們必須退一步思考。客戶端-服務器模型可用來成功地接入網絡,但如果不添加開發者工具,它不會創建任何有用的東西。開發者工具這個術語涵蓋了構建互聯網的其他組件中的一部分,它包括操作系統、編程語言、編譯器、應用程序接口(Application Programming Interface,API)、軟件開發工具包、負載均衡器、瀏覽器、搜索引擎和內容交付網絡等。30年前,這些工具并不普及,但如今,這些工具是互聯網上的通用標準。
最初,谷歌、微軟和亞馬遜并沒有成為提供云服務的公司。它們在截然不同的領域構建了互聯網服務:谷歌主攻搜索,微軟提供軟件服務,亞馬遜經營電子商務。當時,創建互聯網公司沒有捷徑可走,也沒有托管網絡的簡單方法,更沒有在這些網絡上制作平臺所需的有用的開發者工具。而如今,大型科技公司要么利用現有的開發工具做到頂尖,要么從頭開始,研發出頂尖的開發者工具。
現在,讓我們看看在2020年,愛麗絲將如何創建她的網頁應用程序。首先,她會使用一門編程語言(這也是她的專長),以此來對整個應用程序的邏輯進行編碼。這和20世紀90年代的做法差不多,也不需要第三方幫助,因為許多編程語言都是開源的。為了讓愛麗絲構建一個運行軟件邏輯的網絡,也就是說,把她的應用程序放到互聯網上,她需要找到服務器來托管她的應用程序代碼。這個過程類似于愛麗絲和鮑勃、戴夫的合作,只是現在,除了大型科技公司的云服務,她沒有其他更好的選擇。
愛麗絲這個例子忽略了當今開發者工具帶來的所有額外負擔。在20世紀90年代,愛麗絲此時可能快要完成應用程序的開發,因為開發者工具很少,這種高效對愛麗絲的網頁應用程序沒有好處。這個應用程序使用起來可能很復雜,甚至很難被搜索到,并且不容易與類似的網絡集成。簡而言之,在早期互聯網時代,愛麗絲的應用幾乎無法吸引到除了朋友和家人的任何用戶。
大型科技公司之所以如此龐大,是因為他們為愛麗絲和像她這樣的開發人員提供了服務。為什么這么說呢?讓我們看看在2020年,愛麗絲在互聯網上使用云設置她的應用程序后,將采取哪些其他步驟。首先,她需要一個服務器數據庫。她可以自己創建一個,但綜合考慮,更好的選擇是共享現有的大型科技公司的數據庫,因為大型科技公司的數據庫可以為她處理組織協調和安全問題。愛麗絲必須采取的一項安全措施,是設置與谷歌賬戶等單點登錄兼容的用戶名和密碼訪問控制。愛麗絲還需要設置一種支付方式,她可能會使用亞馬遜API網關之類的服務,一舉解決電子商務的所有問題。為了確保用戶搜到應用程序,愛麗絲必須以符合谷歌搜索算法的方式,構建整個應用程序。要吸引用戶,該應用程序至少需要在臉書(現已改名為“元宇宙”)上線,最好還要借助諸如微軟的領英(LinkedIn)API,將應用建立在一個更大的平臺上。然后,愛麗絲需要開發一個單獨的移動應用程序,同時滿足蘋果(Apple)應用商店和谷歌應用市場的要求。在這之后還有類似的后續流程,以便不同版本手機能夠使用蘋果支付和谷歌支付購買付費服務,并與應用商店搜索算法匹配。愛麗絲還必須確保她的應用程序和任何可下載的軟件,以及各種存在競爭關系的操作系統相互兼容。
盡管除了編寫應用程序代碼,愛麗絲還采取了這些額外的步驟,但她只是在軟件上添加預包裝的組件,而這些還是由其他人所有和控制的。從這個意義上說,互聯網應用程序就像是忒修斯之船(the Ship of Theseus)的思想實驗:當你不斷維修和替換這艘古老船只的零部件時,它將在什么時候不再是忒修斯之船了?隨著互聯網應用程序里裝滿了越來越多的第三方組件,它將在什么時候不再為愛麗絲等開發者所有?如果你想實際地看待這個悖論,我認為答案取決于你對大型科技公司的信任程度。
互聯網是成千上萬個像愛麗絲這樣的網絡結合在一起的產物。這些網絡都是默認私有的,只有在一系列復雜的授權后,它們之間才能進行交互。當然,這并不是對互聯網的全面解釋。這只側重向Web3.0過渡過程中發生變化的方面。既然我們已經掌握了“互聯網”的含義,那么就能從字面意義上來理解中心化和去中心化這兩種類型的互聯網了。
與Web3.0相比,愛麗絲參與的互聯網是高度中心化的。它的最底層是數據結構,里面幾乎都是中心化的數據庫。愛麗絲的應用程序數據在某個地方,由單個實體控制,基于同樣的原因,愛麗絲寧愿選擇戴夫的IBM數據庫,而不是鮑勃的自制數據庫。向上一層的互聯網層是構成數據結構硬件的服務器。服務器將數據傳輸給客戶端,并且歸托管數據庫的同一家公司所有。服務器托管制作愛麗絲的網絡和平臺的所有編程邏輯,包括愛麗絲的應用程序代碼和相關的軟件包。
如果愛麗絲使用谷歌云(Google Cloud)制作她的應用程序,而你正在使用該程序,這意味著你的計算機將通過谷歌的服務器、利用谷歌的開發工具、從谷歌的數據庫中請求數據,這就是中心化。稍后我們將討論與此相關的互聯網三巨頭。現在,讓我們看看加入區塊鏈時,整個結構將如何變化。
大致而言,在Web3.0中,數據結構由區塊鏈組成,而不僅僅是數據庫。舊數據結構必須歸公司所有,才能確保安全,但這種新數據結構受到保護,恰恰因為公司無法擁有它。究其原因,如果你還記得的話,在于奇特數據庫(區塊鏈)的兩個獨特功能:首先,它的數據是完美的,它用數學方法來避免錯誤;其次,所有數據是不可篡改的,這讓它成為一種永恒的真理。對愛麗絲來說,選擇區塊鏈數據結構更可靠,而且可能更便宜。
下一個Web3.0組件是硬件基礎設施,它用來將應用程序數據結構和用戶相連。客戶端-服務器模型是實現此操作的典型做法,只是服務器必須分布在Web3.0環境中,這樣網絡將有利于鮑勃的人工設置,而不是戴夫的工業設計。由于服務器默認托管區塊鏈是安全的,鮑勃不需要任何額外的安全措施。如果他失去對公司的控制,世界各地其他像他一樣的人,都會彌補網絡的異常。IBM的服務器機房現在看起來過時了,里面的網絡安全保護沒有必要,此外,還有受地域限制的單點故障。更重要的是,Web3.0可以探索客戶端到客戶端的模型,因為如果網絡足夠高效,可以分配服務器計算資源,客戶端就能自由交互,而無須相互信任,因為客戶端信任底層的數據結構。
開發者工具使網絡成為獨特而有用的平臺。現階段,將Web3.0開發者工具與熟悉的網絡開發者工具進行比較,幾乎是不可能的,因為現在沒有(也不確定會有)明確的標準。Web3.0開發者工具建立在初始階段的基礎設施上,它在很多方面和舊的基礎設施都不具可比性。下面對Web3.0開發者工具的介紹,大多基于理論以及很多領先初創公司的目標。
Web3.0網絡和愛麗絲的應用程序一樣,是默認公開的。這意味著用戶名和密碼沒有意義,連接通過權限控制連接平臺的API也沒有意義。這些東西是內置的,會自動發生。當區塊鏈身份規定訪問控制時,沒有用戶名或密碼的互聯網開始成為可能。這個問題比較復雜,在第六章我們再詳說。當你使用公共網絡時,API存在的意義也不大。例如,以前應用程序必須安裝大型科技公司強加的額外組件,而現在可以將這些組件作為內置和無條件免費的模塊。對愛麗絲來說,這意味著其中的許多應用插件都有預打包代碼,她不需要重新制作。如果她制作了一個原始插件(今天看起來這就像是針對她的應用程序的獨特API),這個原始插件同樣會被預先打包,供其他人使用。
沒人需要重新造輪子,做無用功。而且,這也不會有損愛麗絲或其他任何人的收入模式或知識產權。臉書在社交游戲星佳(Zynga)公司使用它的API來制作像開心農場(Farmville)游戲這樣的應用程序后才受益,同樣,愛麗絲也會在其他人使用她的預打包代碼時受益——只是這一次,愛麗絲和星佳(Zynga)公司不需要為了運行自己的應用程序,信任像臉書這樣收割利潤的傀儡師。
因此,成千上萬的這種默認的公共網絡,共同創造了Web3.0。