眼下,區塊鏈方面炒得非常厲害。如果真聽信區塊鏈方面的炒作,區塊鏈現在可以:

解決收入不平等

永遠確保所有數據安全

讓一切高效得多、無需信任

拯救垂死的嬰兒

那麼,區塊鏈到底是什麼樣的技術?它真可以做到所有上述這些嗎?區塊鏈能爲醫療、金融、供應鏈管理和音樂版權等形形色色的行業帶來驚人的效果嗎?

另外,不支持比特幣是否意味着你就是支持區塊鏈?你怎麼一邊支持比特幣,一邊又說其背後的技術不好?

我在本文中分析區塊鏈是什麼,更重要的是,區塊鏈不是什麼,力求解答許多這些問題。

區塊鏈是什麼東東?

爲了辨別其中一些說法的真僞,我們要定義區塊鏈是什麼東東,這方面存在太多的混淆。許多公司使用「區塊鏈」這個詞來表示某種神奇的裝置;藉助這種裝置,它們的所有數據都不會出錯。當然,這種裝置並不存在,至少在現實世界並不存在。

那麼,區塊鏈是什麼東東?從技術上來講,區塊鏈就是區塊的鏈表,而區塊是一組有序的交易。如果你不理解最後一句話,不妨將區塊鏈視爲數據庫的一個子集,只是多了幾個屬性。

區別區塊鏈與普通數據庫區的地方主要是,有特定的規則來規定如何將數據放入數據庫。也就是說,它不能與已經存在於數據庫中的其他一些數據相沖突(一致的),它是隻能添加的(不可變的),數據本身歸所有者擁有(可擁有的),可複製和可用的。最後,每個人都一致同意數據庫中數據的狀態是什麼(規範化的),沒有中央集權機制(去中心化的)。

這最後一點纔是區塊鏈的終極目標。去中心化之所以很有吸引力,是由於這意味着沒有單一故障點。也就是說,沒有哪個權威機構能夠拿走你的資產,或篡改“歷史記錄”來適應它的需要。你不必信任任何人的這種不可變的審計跟蹤記錄(audit trail)正是每個使用這項技術的人所渴求的好處。但是這種好處的成本很高。

區塊鏈的成本

不受任何一方控制的不可變的審計跟蹤記錄當然有用,但創建這樣一個系統卻面臨很多的成本。不妨分析其中一些問題。

開發更嚴格、更緩慢

創建一個可證明一致性的系統並非易事。一個小錯誤可能會破壞整個數據庫或導致一些數據庫與其他數據庫不同。當然,損壞或拆分的數據庫不再有任何一致性方面的保證。此外,所有這類系統一開始設計時就確保一致性。區塊鏈中沒有「快速行動,打破陳規」(move fast and break things)一說。如果你打破了陳規,就喪失了一致性,區塊鏈就會損壞,毫無價值。

你可能會想,爲什麼就不能修正數據庫或重新開始、繼續前進?這在集中式系統中很容易實現,但在去中心化系統中很難實現。你需要共識,即系統中所有參與者達成一致,那樣才能更改數據庫。區塊鏈勢必是不受任何一個實體控制的公共資源(去中心化,記得嗎?),否則費了這麼大勁創建一個緩慢的集中式數據庫,代價未免太大了。

獎勵結構很難設計

增設正確的激勵結構,並確保系統中的所有參與者無法濫用或破壞數據庫,這同樣是需要考慮的一個重大因素。區塊鏈可能是一致的,但如果由於往裏面添加數據的成本很低,因而區塊鏈裏面有大量無關緊要的無用數據,區塊鏈不是很有用。但如果由於往裏面添加數據的成本很高,因而區塊鏈幾乎沒有什麼數據,那麼一致的區塊鏈也沒有用。

什麼賦予數據最終性?你如何確保獎勵與網絡目標相一致?爲什麼節點保留或更新數據?出現衝突時,什麼讓節點選擇某一個數據,而不是另一個數據?這些都是需要好好給出答案的激勵問題;它們不僅需要一開始做到一致,還需要在將來技術和公司發生變化時隨時都做到一致,否則區塊鏈就沒有用。

你可能再次想爲什麼不能「修復」一些破損的激勵機制。同樣道理,這在集中式系統中很容易,但在去中心化系統中,倘若沒有達成共識,你根本無法更改什麼。除非大家達成了共識,否則“修復”毫無意義。

維護成本非常高

傳統的集中式數據庫只需要寫入一次,區塊鏈需要寫入數千次。傳統的集中式數據庫只需要覈查一次數據,區塊鏈需要覈查數千次數據。傳統的集中式數據庫只需要傳輸一次數據以便存儲,區塊鏈需要傳輸數千次數據。

維護區塊鏈的成本要高出幾個數量級,需要由實際功效來證明成本。如果充分利用完整性檢查、收據和備份,尋求上述一些屬性(比如一致性和可靠性)的大多數應用就能如願獲得這類屬性,而成本低得多。

用戶至高無上

這可能非常好,因爲公司本來就不喜歡擁有用戶數據,覺得這是累贅。但如果用戶「行爲不端」,這可能很糟糕。有的用戶往你的區塊鏈發送大量無用數據,或者想出了獲利方法,卻給其他用戶帶來諸多不便,但你無法將這種用戶踢出去。這與上面這一點有關:必須精心設計好激勵結構,因爲有辦法獲利的用戶不太可能罷手。

你可能以爲只要拒絕向惡意用戶提供服務就行,這在集中式服務中很容易實現。然而,與集中式服務不同,在區塊鏈中拒絕服務很難,因爲沒有哪個實體有權將任何人踢出去。區塊鏈必須是公正的,執行由軟件定義的規則。如果規則不足以阻止不良行爲,那你就沒轍了。這裏沒有法律的「精神」。你只好與不懷好意或行爲不端的分子周旋,可能要持續很長時間。

所有升級都是自願的

強行升級行不通。網絡上的其他參與者沒有義務來更改你的軟件。如果他們有這種義務,這樣一個系統構建成集中式系統會極其容易、快速和省錢。區塊鏈的要點在於,它並不由哪一個實體來控制,強行升級違背了初衷。

相反,所有升級都必須向後兼容。這顯然相當困難,如果你想添加新功能來得尤其困難,從測試的角度來考慮更爲困難。軟件的每個版本爲測試增添了許多變數,延長了發佈的時間。

再說一遍,如果這是集中式系統,這很容易糾正,只要不再爲舊系統提供服務。然而在去中心化系統中沒法這麼做,因爲你沒法強迫誰做任何事情。

擴展起來確實很難

最後,擴展起來其難度比傳統的集中式系統至少高出幾個數量級。原因很明顯。同樣的數據要放在成百上千個地方,而不是放在一個地方。傳輸、驗證和存儲的開銷很大,因爲數據庫的每個副本都要承擔這筆開銷,而不是在傳統的集中式數據庫中只要支付一次那些成本。

當然,你可以通過減少節點數量來減輕負擔。但那樣的話,何必需要去中心化的系統?如果擴展成本是關注的主要問題,何不就搞一個集中式數據庫?

集中化容易得多

你可能注意到了一點,那就是去中心化系統很難處理,維護成本高昂,難以升級,而且難以擴展。相比區塊鏈,集中式數據庫維護起來快速得多、便宜得多、容易得多,還更容易升級。那麼,爲什麼人們繼續使用區塊鏈這個詞,好像它就是解決所有問題的某種萬能藥?

首先,許多信奉區塊鏈的行業其實早就該進行 IT 基礎設施了。衆所周知,醫療行業的軟件很糟糕。財務結算仍在上世紀 70 年代的軟件上運行。供應鏈管理軟件不但難以使用,還難以安裝。由於害怕牽涉的風險,這些行業的公司大多拒絕升級。好多基礎設施升級項目花了上億美元,到頭來卻落得恢復原狀的結局。區塊鏈是推銷這些 IT 基礎設施升級,讓它們更誘人一點的一種方式。

其次,區塊鏈可以讓你看起來好像處於技術的前沿。不管你喜不喜歡,「區塊鏈」這個詞本身已有一定的市場。很少有人真正理解它的涵義,但是爲了顯得時髦,於是把這些詞掛在嘴邊。就像「雲」意味着別人的計算機,「AI」意味着經過調整的算法,這裏的「區塊鏈」意味着緩慢而昂貴的數據庫。

第三,人們其實不喜歡政府控制某些行業,想要一種不同於法律框架的裁決機制,法律框架常常速度慢、成本高。對他們來說,「區塊鏈」實際上就是擺脫政府監管這把沉重枷鎖的一種方法。這過分吹噓了區塊鏈的功能。區塊鏈不會奇蹟般地消除人類衝突。

結果是,許多人聽信誇大的承諾,沒有真正瞭解區塊鏈的功能或成本。更爲糟糕的是,風險投資家和企業高管有意無意迴避了實際的技術細節和成本,對區塊鏈能做什麼、不能做什麼卻含糊其辭。他們下面的每個人都害怕說皇帝沒有穿衣服,現在我們面臨同樣的情形。

那麼,區塊鏈適用於什麼呢?

我們已經表明了一點:區塊鏈相對於集中式數據庫而言非常昂貴。所以,應該使用區塊鏈的唯一原因是去中心化。也就是說,爲了消除單一故障點或單一控制點。

這自然意味着軟件或數據庫不得經常改來改去,如果真要改動的話。進行升級的優點太少,搞亂或改變規則的缺點太多。

大多數行業並不像這樣。大多數行業都需要新功能或升級,需要必要時可以自由地更改和擴展。鑑於區塊鏈難以升級、難以改變、難以擴展,大多數行業對區塊鏈來說沒有多大的用武之地。

我們發現資金是一個例外。與大多數行業使用場合不同,如果沒有變化,資金就更好。不可變性和難以改變規則有利於資金,而不是有損於資金。這就是爲什麼區塊鏈是適合比特幣的合適工具。

很顯然,許多希望使用區塊鏈的公司其實並不是真的想要區塊鏈,而是想要其所在行業進行 IT 升級。這本身沒什麼不勁好,但使用「區塊鏈」這個詞來達到目的卻有失誠信,是過分吹噓其功能。

結論

區塊鏈是當今的一個流行術語;遺憾的是,「是區塊鏈不是比特幣」這個文化基因不會消亡。如果你提供的是集中式服務,區塊鏈能做的事情集中式數據庫都能做,而後者的成本只有前者的千分之一。如果你提供的是去中心化服務,那麼你可能在自欺欺人,沒有考慮到系統中存在的單一故障點。在真正去中心化的服務中根本沒有「你」。

這整篇文章中最大的笑話

早在 2000 年初,科技行業的許多高管大力主張使用 Java 和 XML。儘管這兩者是工具而不是實際產品,但許多高管堅持使用它們,不管它們與其工程師試圖實現的目標多麼不適合。區塊鏈非常相似。專注於你要解決的問題,工具自然就會顯而易見。專注於你想要使用的工具,那麼到頭來製造的是任何事件都不是做得特別好的 Rube Goldberg 機器。

從某種意義上說,目前區塊鏈的概念正試圖做不可能的事情。人們想要去中心化系統的安全性和集中式系統的控制性,希望集兩者之衆長,但最終得到的卻是集兩者之衆短。你得到的是去中心化系統的成本和複雜性以及集中式系統的故障模式。

區塊鏈是一個用濫了的流行詞,用來銷售大量騙人的萬靈油。我們越快擺脫炒作階段,從長遠來看就越好。

作者:Jimmy Song 是區塊鏈資本有限公司(Blockchain Capital LLC)的風投合夥人,向優秀程序員傳授比特幣和區塊鏈技術,曾在不同的公司擔任過高級軟件工程師、工程副總裁和首席架構師。