從 “可組合度” 看區塊鏈計算的 4 個時代

買賣虛擬貨幣

編者注:在區塊鏈世界裡,“可組合性(Composability)” 一詞最早被用來說明免許可智慧合約平臺的長處,即同一平臺上的元件可以相互組合,產生出新的產品和服務。本文作者意識到了,可組合性不是 0 與 1 的區別,而是程度的區別,因有此文。作者對 Cosmos 等專案的分析可謂別開生面,但對所謂 “雲時代” 的描述則多少有些異想天開了。應當承認的是,演化之路的神秘與優越,正在於其不可完全控制;而取得了這一點認識,就沒有必要總把眼前事物附會成演化的必由之路了。

在 a16z crypto 網站上的一個影片中,我們談論了許多關於密碼學網路和城市之間相似性的問題,因為二者都透過共享基礎設施來實現自下而上的發展。

通常來說,傳統商業的最佳模式是,把店鋪開設在一個人口密集、公共設施完善、法律完備、治安良好,且充滿市場活力的地方。對於開發者來說也是如此,在共享現有使用者群、資料、安全性和程式碼等資源的基礎上進行構建會獲益不少。

我們稱之為可組合性。 如果一個平臺上的現有資源能夠用來構建更高階別的應用程式,那麼這個平臺就具備了可組合性。

可組合性非常重要,它能讓開發者花費更少的資源做更多的事情,繼而加快創新的速度並增強其複合性。

區塊鏈計算機的免信任特性是其實現可組合性的一大重要條件,因為它能讓開發者在共享的基礎設施上進行構建,同時不必擔心底層被突然叫停。這是真的,因為區塊鏈既是無准入門檻的(這就是開源的偉大之處)又是富狀態的(這就是像 Twilio 和 Stripe 之類的 API 的偉大之處)。

在研究區塊鏈計算的發展時,我勾勒了一個由四個不同時代組成的心理模型,每個時代在架構和可組合性方面的優先順序上各不相同:

  1. 計算器時代——面向特定應用,可組合性有限
  2. 大型機時代——圖靈完備,可組合性高
  3. 伺服器時代——面向特定應用,不具備可組合性
  4. 雲時代——圖靈完備,具備可擴充套件的可組合性

我將逐步展開介紹每個時代,以及在我眼中它們各自的優缺點。但是我先宣告,這個領域中的很多研究問題是沒有明確答案的,而且事物的發展方向並不明朗。每一個問題都需要實驗。

計算器時代

比特幣是區塊鏈計算的鼻祖。它是一個面向特定應用問題的全棧解決方案:健全貨幣或者說數字黃金。除了具備追蹤餘額和轉賬等簡單的功能之外,比特幣還提供了一種指令碼語言,可以用來構建更復雜的功能。

許多專案已經使用了比特幣指令碼語言來構建更高階的應用程式。舉例來說,存在證明( Proof of Existence )利用 OP_RETURN 資料儲存來建立一個證明,以此證實某個人在特定時間內擁有一份數字檔案。像 Colored CoinsCounterparty 這樣的專案可以基於比特幣區塊鏈的集中安全性建立自定義代幣。但是,由於比特幣的指令碼語言在設計上有意留下了一些限制,其他一些企圖進一步擴充套件比特幣功能或代幣功能的嘗試就無法實現了。

許多人認為,對於一個去中心化的貨幣系統來說,最重要的屬性是安全性,而非可程式設計性,因此有限制的指令碼語言是一個特性,而非一個 bug 。由此我們可以看出,比特幣更像是計算器而非計算機(我是認真地在誇!)。它是針對特定目的構建的,並且擅長處理目標任務,但對於熱衷改進和構建新型應用程式的開發者來說,需要向新的架構演進。

大型機時代

以太坊是構建在由比特幣開創的核心理念上的,並納入了圖靈完備的虛擬機器來使區塊鏈計算機變得更加通用。這意味著開發者可以在去中心化的機器網路中部署和執行任何程式。

如今,網路中每一個節點都必須執行每一個程式功能,以便確保其準確性。這就造成了以太坊效率低下且成本高昂的問題,但是它有一個方面是無敵的:它的計算不依賴於人的主觀信任。每個程式都會如我們所期望那樣按部就班地執行(並透過驗證),並且它的輸出或狀態可供他人檢視。因此,以太坊上的程式可以充當可靠且中立的基本構成要素,供開發者用來編寫更高階的應用程式。於是,我們看到了下面這些專案:

Marble 提供的是透過快速借貸實現交易套利的服務:“交易者可以透過 Marble [智慧合約]銀行借款,到一個去中心化交易所(DEX)上購買代幣,再到另一個去中心化交易所上以更高的價格賣出代幣,然後還清借款,將套利所得的利潤收入囊中,所有這一切都透過一筆小小的交易達成。” Marble 之所以能做到這點,是因為它利用以太坊虛擬機器跨越不同的獨立專案來執行一系列功能,最終構建出了一個人人都能使用的簡單實用程式。

Primotif 是一個可以追蹤現實世界指數(比如標準普爾 500 指數)的金融衍生品。它使用 Augur 上的預測市場來追蹤標的指數的價格, 然後利用 dYdX 的沽空代幣來對沖 ETH 的波動性, dYdX 使用的是 Maker 發行的穩定幣 Dai 來作為報價貨幣。 這個僅僅花費一個週末就構建完成的專案是個很好的例子,體現了可組合性是如何帶來複合式創新和強大的開發者網路效應的。

透過可組合性帶來網路效應不是一種新的現象。這是 Twitter 的創始人 Biz Stone 早在 2007 年就(在 AVC 網站上)發表過對 Twitter API 的可組合性的看法:

“我們在 Twitter 的 API 上的投入可以說(或者無疑)是我們做過意義最重大的一件事。首先,這可以讓我們以非常簡單的方式來服務使用者,並建立一個簡單的 API 以便開發者可以在我們的基礎架構之上進行構建,提出比我們更好的想法,並構建像 Twitterrific 這樣的程式,它由一個非常小的團隊開發,為 Twitter 使用者帶來了絕佳體驗,這是我們根本做不到的。因此,API 很容易就能帶來比網站多 10 倍的流量,它對我們來說非常重要。”

遺憾的是,可組合性並不適合 Web 2.0 時代的場景。問題在於,你既不能 “透過 API 匯款” ,也沒有一種有效公平的方式來控制平臺的規則,比如廣告展示的規則。這就造成了開發者和平臺之間激勵失調,從而導致資料的重新集中化和第三方創新的缺失。

我的合作伙伴 Chris 曾經寫過一篇文章來講述密碼學代幣是如何能夠更好激勵可持續開放式網路的。如今的問題在於,兼顧激勵協調和可組合性的網路無法擴充套件。

這就是區塊鏈的大型機時代。儘管可組合性確實帶來了早期的網路效應——集中安全性、使用者群、資料和程式碼,但是由於大型機的吞吐量限制,採用量的增加會造成邊際收益遞減。這反過來會驅高每一位新增使用者和開發者的成本。繪製成圖表則如下所示:

-由於資源限制,每新增一位使用者會帶來更高的邊際成本並最終超過可組合性的邊際值(共享資源和開發者網路效應)-

進入“伺服器時代”

為了尋求可擴充套件性,一些開發者已經放棄了前面提到的可組合性和共享網路效應,轉而採用面向特定應用的架構。像 Polkadot 和 Cosmos 這類專案的願景就是構建一條多重的異構鏈——其中每條鏈都會進行個性化調整來打造定製化應用程式。 Polkadot 的 SubstrateCosmos SDK 都是模組化的區塊鏈構建工具包,用於構建你自己的全棧 “應用程式鏈(app chain)”。

全棧開發的工作量要遠超出整合現有的網路資源進行開發所需的工作量。對於開發者而言,這意味需要構建下至狀態機、上至應用程式介面的所有部分,為網路帶來最低程度的可行安全性,並與生態系統中的其他專案實現互操作性。

但從歷史上看,全棧策略在推動未來發展和將早期技術推向市場方面已經取得了成功。早在 PC 應用達到標準之前,Wang Technologies 就推出了一個非常實用的文書處理軟體作為軟硬體捆綁的解決方案。在這之後,AOL 捆綁了一個網路服務提供商,一個內容分發系統和一個郵件和即時通訊工具——為正處於建設中的早期網路帶來了卓越的使用者體驗。RIM 為了促進智慧手機的採用,將移動裝置、作業系統和類似 BBM 和電子郵件推送等早期應用捆綁在了一起。

-全棧平臺,推動未來前行。-


在網路發展的早期,每個網站都有一臺定製的伺服器在某個機房裡執行。為了獲得端對端的體驗,開發者也需要擁有一部分基礎設施。等到了區塊鏈計算的第三個時代,情況可能相同。這就是我所說的 “伺服器時代”。

“伺服器時代” 的區塊鏈為了獲得一定的控制權明確放棄了可組合性。這涉及到兩個方面:對終端使用者體驗的控制,以及對網路供給端資源經濟更為精細的控制。“伺服器時代”架構的設想是諸如安全性、儲存空間和算力之類的網路資源都受到需求的約束。也就是說,隨著應用程式得到越來越多的採用,它們可以按照需求擴充套件。這與 “大型機時代” 架構形成了對比,在 “大型機時代” 的架構中,資源成本會隨著網路上所有其他流量的變化而變化。從理論上講,全棧的 “伺服器時代” 架構可以降低像 “大型機時代” 構架那樣的最佳化風險。

“伺服器時代” 的區塊鏈與之前的全棧平臺不同,因為它們仍然是區塊鏈!雖然 Wang、AOL 和 RIM 是封閉式平臺,但“伺服器時代”的區塊鏈仍然是可驗證的開放式資料結構,具有可程式設計的激勵機制。這個屬性使得它們能夠構成中心(hubs)(這就是 Cosmos 和 Polkadot 所做的)。一條區塊鏈可以是另一條區塊鏈的輕客戶端,開發者可以構建原子交換,並擴充套件功能。

這意味著即使是 “伺服器時代” 的區塊鏈仍然具有可組合性,但是與 “大型機時代” 的區塊鏈不在同一個維度上。這些區塊鏈計算機不再執行單個虛擬機器,而是需要新的標準來進行相互通訊,以便於實現跨應用程式的組合。這些通訊介面是現行研究和標準化的主體,並且無疑會讓開發人員在可組合性方面的體驗變得更加複雜。但是,儘管存在這個缺點,捆綁的種種優點或將催生新一波區塊鏈架構,我預計短期內將出現更多采用全棧開發的專案。

“雲時代”

“雲時代” 的目的是呼叫可擴充套件的通用底層架構(substrate)來進行無需信任的計算。這是一片應許之地,只要創造力跟得上,可組合性要多高就有多高,不受規模大小和通訊複雜度的限制,同時可以在不損害收益的前提下增強創新的複合性。

關於 “雲時代” 區塊鏈的運作方式有很多開放式研究。“伺服器時代” 架構的支持者認為,實現了異構區塊鏈之間跨鏈通訊的標準化和抽象化之後,我們將迎來 “雲時代”。另外像是以太坊 2.0(Serenity)和 Dfinity 等專案正在集中打造同質的、圖靈完備的分片鏈。你可以將 “雲時代” 視為一個由許多“大型機”組成的世界,這些 “大型機” 共享一個安全池,但是它們的狀態和計算分別由不同的同質虛擬機器來處理。還有一些人正在研究將計算轉移至鏈下的全新架構。

考慮到研究社羣的規模和這種解決方案的潛在獎勵,如果 “雲時代” 的區塊鏈計算在所謂的 “伺服器時代” 將盡之時大熱,我不會感到驚訝。我們已經鋪設了電纜且建立了資料中心 —— “雲時代”的區塊鏈計算主要是軟體創新。等 “雲時代” 到來之時,無需信任的可組合性顯然將成為開發者新的超能力,當開發人員可以使用更少的資源做更多的事時,網際網路會帶來更多協作、創造力和選擇,我們都將成為受益者。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;