1. 程式人生 > >比特幣只是計算器,以太坊不過大型機:深度解析區塊鏈計算的四大階段

比特幣只是計算器,以太坊不過大型機:深度解析區塊鏈計算的四大階段

翻譯 | shawn

編輯 | 波波

 

 

網際網路泡沫後,很多人都覺得再去投資網際網路的人簡直就是傻瓜,這才是最傻瓜的想法。

 

——Ben Horowitz, 《創業維艱》作者

 

 

在 Ben Horowitz 和網景創始人 Marc Andreessen 合夥創立的矽谷創投基金 a16z 內部,有一批熱衷於區塊鏈的技術投資人,他們一直在探討和分享有關區塊鏈和加密數字貨幣技術的技術內容和學習資源:比如如何構建區塊鏈,如何掌握區塊鏈的關鍵概念,如何學習共識演算法……

 

今年初,他們將這些內容和資源集結成冊,釋出了一篇關於區塊鏈入門的 Crypto Canon,區塊鏈大本營第一時間將其分享出來:如何成為一名區塊鏈工程師? | 附學習資源

 

今年年中的時候,a16z 內部這批人在創投大佬 Chris Dixon 和專注於加密貨幣犯罪的前美國檢察官 Kathryn Haun 帶領下,成立了一個專門投資區塊鏈的基金——a16z crypto。

 

在介紹這個新基金的願景時,他們這樣寫道:

 

每隔 10-15 年,計算機世界就會湧現出一個新的計算模式來引領世界:60 年代是大型機,70 年代末是個人電腦,90 年代初是網際網路,2007 年以後是智慧手機……而今,輪到了區塊鏈上關於“信任”的計算模式。

 

而關於區塊鏈自身的計算模式,a16z crypto 內部的區塊鏈專家 Jesse Walden 又將其分成了四個截然不同的階段:

 

  1. 計算器階段——以應用為導向,可組合性有限,比特幣;

  2. 大型機階段——圖靈完備,可組合性高,以太坊;

  3. 伺服器階段——以應用為導向,大力實現可組合性;

  4. 雲端計算階段——圖靈完備,具備可擴充套件性的組合性;

 

他這樣劃分的基礎,是區塊鏈網路與城市功能的相似性:

 

兩者均依託共享基礎設施進行自下而上的成長並從中獲益:對於傳統企業而言,最好的店鋪位置往往擁有現成的居民、公用設施、法律、安全保障和活躍的市場經濟。同樣地,現有的使用者群、資料、安全系統和執行程式碼等共享資源也可以為開發者提供很好的開發基礎。

 

他們稱之為「可組合性」(composability)

 

如果一個平臺現有的資源可以用作為構建區塊,經過程式設計成為高階應用,那麼這個平臺就是可組合的。可組合性十分重要,因為它可以使開發者可以利用較少的資源完成更多的事,相應地,促生出更迅速、複合型更強的創新。

 

區塊鏈計算機無信任(Trustless)的本質極大地解放了可組合性,因為開發者可以在共享基礎設施上進行開發工作,不用擔心下級的依賴架構被動手腳。這毋庸置疑,因為區塊鏈既有無需許可的特性(開源的優勢所在),又有狀態(Twilio 和 Stripe 等 API 的優勢所在)。

 

上述四大階段,所代表的是區塊鏈計算的四種截然不同的思維模型。在接下來的文章中,Jesse Walden 會對此逐一進行剖析。區塊鏈大本營分享如下:

 

 

計算器階段(比特幣)

 

比特幣是區塊鏈計算的先驅。它為「選擇堅挺的貨幣還是數字黃金」這個具體的應用問題提供了全棧式解決方案。除了追蹤賬戶餘額和轉賬記錄這樣的簡單功能外,比特幣還提供了一種可以用於構建更為複雜的功能的指令碼語言。

 

有的專案採用比特幣指令碼來編寫更高階的應用。例如,Proof of Existence 專案利用 OP_RETURN 資料庫來建立證據,用於證明某位特定使用者在特定時間擁有某份數字文件。 Colored Coins 和 Counterparty 等專案,使在比特幣區塊鏈的合併安全性基礎上定製代幣成為可能。還有一些專案則試圖進一步擴充套件比特幣區塊鏈的功能性,或者代幣的功能,但由於受比特幣指令碼語言的刻意約束,這些專案舉步維艱。

 

很多人認為,去中心化貨幣系統最為重要的特性不是可程式設計性,而是安全性,受限的指令碼語言也是去中心化貨幣系統的一個特性,並不是漏洞。按照這種思路,我們可以將比特幣看作為計算器,而非計算機(在此申明,我這句話是褒義!!)。比特幣是被有意設計成這樣的,而且它可以很好完成自己的任務,但對於熱衷於修補改進、開發新應用的開發者而言,開發新的架構勢在必行。

 

 

大型機階段(以太坊)

 

以太坊在比特幣開創的理念基礎上加入了圖靈完備的虛擬機器,從而泛化了區塊鏈計算機。這意味著開發者可以在去中心化的計算機網路上部署和執行任何程式。

 

在今天的以太坊中,為了確保真實性,網路中的每個節點必須執行每個程式功能。這導致以太坊執行緩慢、使用成本昂貴,但以太坊在一個維度是無可匹敵的:它的計算是去信任的。每個程式都能被按照指令執行,其結果或狀態,對所有其它節點而言都是可見的。因此,以太坊的程式可以作為可依靠的、中立的構建模組,開發者可以將其組合成更高階的應用。目前已有這樣的專案:

 

Marble 這個專案可以讓使用者快速放貸,進行外匯套利:

 

交易者可以從 Marble 銀行借款,在去中心化交易所買代幣,再在另一家交易所以更高的價格賣出代幣,然後還款給「智慧合約」銀行,將套利所得收入囊中,這一切操作全都包含在一次自動交易中。為實現這一功能,Marble 藉助以太坊的單例虛擬機器,讓不同的獨立專案執行一系列的功能,最終實現了任何人都可以使用的簡化版多功能應用。

 

Primotif 是一個金融衍生品,可以追蹤現實世界中的指數,例如標普 500 指數:

 

它利用預測市場平臺 Augur 的 shares 系統來追蹤基準指數的價格,dYdX 做空代幣來對衝以太坊代幣 ETH 的波動性,dYdX 利用的是 Maker 推出的 Dai stablecoin 系統。僅用一個週末就打造出的 Primotif 專案,正是可組合性會帶來複合型創新和強大開發者網路效應的絕佳例證。

 

可組合性可以帶來網路效應早已不是什麼新鮮事了。下文是 Twitter 創始人 Biz Stone 於 2007 年就 Twitter API 的可組合性所發表的言論:

 

“API 是最為重要的,甚至可以說我們在 Twitter上做出的最重要的事情。首先,它讓我們的服務變得非常簡單,僅僅建立一個簡單的 API,開發者就可以在 Twitter的基礎架構上進行開發,提出一些比我們的創意更出色的創意,然後開發出像 Twitterrific 那樣的產品。Twitterrific 的開發團隊很小,但是他們讓使用者可以優雅、漂亮地使用 Twitter,這一點連我們都沒法做到。API 能輕鬆吸引到比 Twitter 網站高出 10 倍的流量,因此它對我們而言非常重要。”

 

不幸的是,可組合性在 Web 2.0 時代沒能得到延續。原因之一是:無法通過 API 完成金錢交易,也沒有公平有效的辦法對平臺的規定進行管理,例如:廣告展示規定。這就導致了開發者和平臺之間的激勵分配不合理,結果造成了資料重新中心化,以及第三方創新的缺失。

 

我的投資合夥人 Chris Dixon 曾專門撰文闡述,加密貨幣如何能在可持續的開放式網路中實現更好的激勵分配。現在的問題是,能實現激勵配置、具有可組合性的網路不具備可擴充套件性。

 

這就是區塊鏈的「大型機階段」。由於區塊鏈的可組合性——共享的安全性、使用者群、資料和執行程式碼,我們可以享受到早期的網路效應,這是毋庸置疑的。不過,隨著使用者的人數逼近大型機的吞吐量限制,邊際收益就會隨之下滑。反過來,吸引單個新使用者和開發者的成本也會隨之上漲。大體趨勢如下圖所示:

由於資源限制,每個新使用者的邊際成本會不斷增加,最終超過可組合性的邊際價值(即共享資源和開發者網路效應)

 

 

進入「伺服器階段」

 

在對可擴充套件性的探索中,一些開發者徹底拋棄了可組合性和共享網路效應,轉而致力於開發專門適用於特定應用的架構。Polkadot 和 Cosmos 等專案的理念,就是打造多條混合區塊鏈,然後針對相應的應用除錯每條區塊鏈。Polkadot 的 Substrate 和 Cosmos 的 SDK 都是模組化的區塊鏈構建工具包,用來幫你推出你自己的全棧式「應用鏈」。

 

相比在現有網路資源基礎上進行整合,開發全棧式「應用鏈」的工作量要大很多。對開發者而言,意味著要打造下至狀態機、上到應用互動,還要自行為網路部署最小化可行安全措施,估算出與系統中其他成員的協同工作能力。

 

但在歷史上,全棧式開發策略已經被證明大獲成功,這種策略可以將初期技術推廣到市場上,讓使用者更早擁抱未來。在個人計算機應用還未普及之前,王安科技公司(Wang Technologies)就提供了功能非常實用的文書處理器,為使用者提供捆綁式軟硬體解決方案。後來美國線上 AOL 同時捆綁了網際網路接入服務商 ISP、內容提供商、電子郵件服務商和即時通訊服務商等多重角色,為早期的網際網路使用者提供了不俗的使用者體驗。為了推動智慧手機的普及,黑莓手機制造商 RIM 同時捆綁了移動裝置、作業系統、以及 BBM 和郵件推送等早期應用。

全棧式平臺,讓使用者更早擁抱未來

 

在網際網路發展的初期,每家網站背後都有一臺定製的伺服器在執行。為了擁有端對端的體驗,開發者需要擁有自己的硬體設施。而在未來的區塊鏈計算時代中,也同樣是這種情況。這就是我所說的「伺服器時代」。

 

 

「伺服器階段」的區塊鏈明確地用可組合性換取控制權。這會通過兩個維度呈現:對終端使用者體驗的控制,以及對網路供給側資源的經濟因素進行更為精細的控制。一個假設是,「伺服器階段」的區塊鏈基礎設施(例如:安全、儲存和運算),是需求受限制的狀態。也就是說,隨著應用的普及,它們可以被按需擴充套件。這與「大型機階段」的基礎設施是截然相反的,「大型機階段」的資源成本隨網路上所有其他流量的變化而變化。具體理論依據是:全棧式「伺服器階段」的架構可以減小升級「大型機」區塊鏈的風險。

 

「伺服器階段」的區塊鏈與之前的全棧式平臺是不同的:它首先仍是區塊鏈!王安的文書處理系統、美國線上和 RIM 都是封閉式平臺,而「伺服器階段」的區塊鏈依然是能證實的開放資料架構,配置有可程式設計的激勵機制。這種特性讓「伺服器階段」區塊鏈能被整合成資料集散中心(這正是 Cosmos 和 Polkadot 兩個專案的目標)。一條區塊鏈可以成為另一條區塊鏈的「輕客戶端」,開發者可以打造自動交換機制,或者延展效能。

 

這意味著,即使「伺服器階段」的區塊鏈仍然具有可組合性,但是卻在與「大型機階段」的區塊鏈在不同的維度上。與「大型機階段」區塊鏈執行單一的虛擬機器不同,「伺服器階段」的區塊鏈計算機需要新的相互通訊標準,以實現跨應用的組合。這種通訊介面是當前的研究和標準化專案所要實現的目標,毫無疑問,這會讓開發人員在處理可組合性時遇到更復雜的問題。但是撇開這個缺點不談,捆綁可能會成為促生新一波區塊鏈架構的催化劑,我預計在短期內我們會看到更多的專案採用全棧式的方法。

 

 

「雲端計算階段」

 

「雲端計算階段」意味著實現可擴充套件、可泛化的無信用運算。這是區塊鏈發展的理想時代,組合工作只受創造力的限制,而不是受制於擴充套件性或通訊複雜性的限制。屆時,大量創新不斷湧現,相輔相成,不會遇到邊際收益遞減的尷尬。

 

怎樣才能實現區塊鏈的「雲端計算階段」?目前開放研究還在探索這個問題。「伺服器階段」架構的支持者認為,通過實現異質(heterogeneous)區塊鏈之間跨鏈通訊的標準化和抽象化,以獲得「雲端計算階段」的體驗。而以太坊 2.0 的開發者和 Dfinity 團隊等其他開發者,則正在聚合同質(homogenous)的圖靈完備的區塊鏈。你可以將此視為一個許多「大型機」共存的世界,這些「大型機」共享一個安全池,但在同質虛擬機器之間分離狀態和運算。另外,還有很多人正在研究將運算轉至鏈下的全新架構。

 

鑑於研究社群的規模之大,以及這種解決方案巨大的潛在回報,如果「伺服器階段」接近尾聲,「雲端計算階段」區塊鏈計算便緊隨而來,我不會感到驚訝。因為,我們已經鋪設好光纜,建造了資料中心,「雲端計算階段」的區塊鏈計算主要就在於軟體創新。無論我們何時迎來這個時代,很清楚的一點是:無信用的可組合性將成為開發者新的超能力。當開發者能以較少資源實現更多的成就時,網際網路將具有更強的協同性、更多的創造性、更多的選擇性,而我們就是受益者。

 

那麼,當前的區塊鏈計算是處於哪個階段呢?請留下你自己的意見

參考連結:

  • https://jessewalden.com/4-eras-of-blockchain-computing-degrees-of-composability/

  • https://a16z.com/2018/07/26/cryptonetworks-cities-analogies/

  • https://medium.com/@cdixon/crypto-tokens-a-breakthrough-in-open-network-design-e600975be2ef

  • https://a16z.com/2018/02/10/crypto-readings-resources/

 

推薦閱讀: