為什么大家會將區(qū)塊鏈復(fù)雜化、神化?
區(qū)塊鏈炒得沸沸揚揚??纯创蠹叶际窃趺凑f的?我們經(jīng)常聽到如下幾點:
——可以解決收入不平等問題。
——讓所有數(shù)據(jù)永遠(yuǎn)安全。
——讓一切變得更有效率。
——拯救垂死嬰兒。
到底什么是區(qū)塊鏈?它真的能達(dá)成上述目標(biāo)嗎?區(qū)塊鏈真的能給行業(yè)帶來有益變化嗎,比如解決醫(yī)療保健,金融,供應(yīng)鏈管理和音樂版權(quán)問題?
支持比特幣是不是意味著支持區(qū)塊鏈?如果你支持比特幣,怎么又能詆毀背后的技術(shù)呢?
在這篇文章中,我嘗試尋找答案,討論一下區(qū)塊鏈到底是什么,為什么重要。
什么是區(qū)塊鏈
要認(rèn)真審視某些問題,有幾個要點先要理解:什么是區(qū)塊鏈?它到底是什么?當(dāng)中有許多混亂之處。許多企業(yè)使用“區(qū)塊鏈”這一術(shù)語,意思就是說它是魔幻設(shè)備,所有數(shù)據(jù)永遠(yuǎn)不會出錯。當(dāng)然,這樣的設(shè)備根本不存在,至少在真實世界不存在。
什么是區(qū)塊鏈?從技術(shù)上講,區(qū)塊鏈就是區(qū)塊連成的鏈條,一個區(qū)塊存放一些有序的交易信息。如果你還是不理解,可以將區(qū)塊鏈看成數(shù)據(jù)庫的子集,只是多了一些特色。
區(qū)塊鏈與普通數(shù)據(jù)庫***的不同就是它有一套特殊規(guī)則,規(guī)定如何將數(shù)據(jù)存儲到數(shù)據(jù)庫。存入的數(shù)據(jù)不能與數(shù)據(jù)庫中其它的數(shù)據(jù)發(fā)生沖突(共存性),只能添加(不可變性),數(shù)據(jù)與數(shù)據(jù)主人是鎖定的(所有性),它可以復(fù)制。數(shù)據(jù)庫沒有中央機(jī)構(gòu)管理(去中心化),這點是大家都認(rèn)同的。
我們可以說,“去中心化”是區(qū)塊鏈的圣杯。為什么去中心化如此有魅力?因為它不會出現(xiàn)單點故障。換言之,沒有任何單一的權(quán)威機(jī)構(gòu)可以拿走你的資產(chǎn),改變”歷史“。因為審計蹤跡不可變,所以你不需要相信任何人,這點正是大家所期待的。不過,雖然區(qū)塊鏈優(yōu)點很多,但是要享受這些福利成本可不低。
區(qū)塊鏈的成本
要讓審計追蹤不可變,不被任何一方控制,需要打造一套系統(tǒng),成本很高。
我從以下幾個方面來解釋一下:
——開發(fā)更嚴(yán)格更緩慢
開發(fā)一套可驗證的系統(tǒng),保持一致,不是一件易事。只要有一個小小的漏洞,就會毀了整個數(shù)據(jù)庫,或者導(dǎo)致某些數(shù)據(jù)庫與其它數(shù)據(jù)庫完全不同。損壞或者分裂的數(shù)據(jù)庫無法保證一致性。
另外,所有系統(tǒng)在設(shè)計時從一開始就應(yīng)該是一致的。所以說在區(qū)塊鏈技術(shù)中,不能追求“move fast and break things “(快速行動,打破常規(guī))。如果你破壞了,就會喪失一致性,區(qū)塊就會被摧毀,變得一文不值。
你可能會說,為什么不修復(fù)數(shù)據(jù)庫,或者重啟,然后繼續(xù)前進(jìn)?如果用的是中心化系統(tǒng),要做到還算容易,去中心化系統(tǒng)就難了。改變數(shù)據(jù)庫必須得到系統(tǒng)內(nèi)所有各方的同意才行。區(qū)塊鏈?zhǔn)枪操Y源,不被任何實體控制,緩慢打造中心化數(shù)據(jù)庫也是成本非常高的。
——設(shè)計激勵結(jié)構(gòu)非常難
添加正確的激勵架構(gòu),確保系統(tǒng)參與各方不會濫用數(shù)據(jù)庫、破壞數(shù)據(jù)庫,這是一個重要的考慮因素。區(qū)塊鏈必須保持一致,如果里面有許多無用、瑣碎的數(shù)據(jù),區(qū)塊鏈就會變得不實用,因為將數(shù)據(jù)放入系統(tǒng)的成本是很低的。如果系統(tǒng)中沒有任何數(shù)據(jù),將數(shù)據(jù)放入系統(tǒng)的成本就會很高,這樣的區(qū)塊鏈也是不一致、不實用的。
到底是什么賦予數(shù)據(jù)最終特性?如何確保激勵與網(wǎng)絡(luò)目標(biāo)一致?為什么節(jié)點會保留數(shù)據(jù)或者更新數(shù)據(jù)?當(dāng)數(shù)據(jù)與數(shù)據(jù)發(fā)生沖突時,是什么讓系統(tǒng)選擇一些數(shù)據(jù),放棄另一些?這些問題都需要回答,從一開始就要協(xié)調(diào)好,未來,當(dāng)技術(shù)或者企業(yè)變化時,必須確保區(qū)塊鏈繼續(xù)有效。
你可能會問:如果激勵機(jī)制出現(xiàn)問題,為什么不能修復(fù)呢?再次強(qiáng)調(diào),在中心化系統(tǒng)中,要做到不難,但是如果系統(tǒng)去中心化,那就不容易了,如果沒有取得一致同意,你不能修改任何東西。除非每一個人都同意,否則不能修改任何東西。
——維護(hù)成本很高
如果是傳統(tǒng)中心化數(shù)據(jù)庫,只需要再寫一次就行了。區(qū)塊鏈不一樣,它要編寫成千上萬次。傳統(tǒng)中心化數(shù)據(jù)庫只需要檢查一次就行了,只需要傳輸一次并存儲數(shù)據(jù)就行了。區(qū)塊鏈不一樣,它要傳輸成千上萬次。
維護(hù)區(qū)塊鏈的成本高很多,而且還要通過實用性來證明。正因如此,大多應(yīng)用會提前考慮某些特征,比如一致性、可靠性,這樣檢查、接收、備份時成本就會低一些。
——用戶至高無上
這是一件好事,因為企業(yè)不愿意為用戶的數(shù)據(jù)承擔(dān)責(zé)任。不過也可能是壞事,如果用戶作惡就沒有辦法了。你沒有辦法剔除用戶,它會用瑣碎的數(shù)據(jù)損害你的區(qū)塊鏈,也可能會利用某些不當(dāng)手段獲利,給其它用戶帶來不便。正因如此,我們才需要設(shè)立非常好的架構(gòu),即使某個用戶發(fā)現(xiàn)漏洞,也不會有什么影響,因為無利可圖。
你可能會說,為什么不拒絕服務(wù)惡意用戶呢?如果是中心化服務(wù),要做到很容易。可惜區(qū)塊鏈不是中心化服務(wù),拒絕服務(wù)是一件很難的事,因為沒有單一實體有權(quán)踢人。區(qū)塊鏈必須公正公平,必須執(zhí)行軟件制定的規(guī)則。如果規(guī)則不足以剔除壞行為,那就糟糕了,因為里面沒有法律。你只能與惡意者、行為不良的人打交道,可能需要花很長的時間。
——所有更新者是自愿的
系統(tǒng)不會強(qiáng)制更新。網(wǎng)絡(luò)的其它人沒有義務(wù)改變軟件。如果他們這樣做,那么開發(fā)系統(tǒng)會更容易、更便宜、更快,就像中心化系統(tǒng)一樣。區(qū)塊鏈沒有受到任何單一實體的控制,所以它與強(qiáng)制更新存在沖突。
所有更新都是向后兼容的。如果你想添加新東西會很難,從測試角度看更是難上加難。軟件每推出一個新版權(quán),就會增加測試難度,發(fā)布時間也會延長。
再次重申,如果是中心化系統(tǒng),修改就會容易得多,不再使用舊系統(tǒng)就行了。區(qū)塊鏈系統(tǒng)做不到,它不是中心化系統(tǒng),你不能強(qiáng)迫任何人做任何事。
——擴(kuò)展是一件很難的事
與傳統(tǒng)中心化系統(tǒng)相比,要讓區(qū)塊鏈系統(tǒng)具有彈性相當(dāng)難,難上很多很多。為什么?原因其實很簡單。同樣的數(shù)據(jù)存儲在無數(shù)地方,不是存在一個地方。傳遞、驗證、存儲任務(wù)超級繁重,數(shù)據(jù)庫每出現(xiàn)一個復(fù)本,就要支付費用,如果是傳統(tǒng)中心化數(shù)據(jù)庫,支付一次就行了。
當(dāng)然,你可以減少節(jié)點的數(shù)量,減輕負(fù)擔(dān)。既然如此,你為什么要用去中心化系統(tǒng)呢,可以不用?。咳绻銚?dān)心的只是擴(kuò)展成本,干脆用中心化數(shù)據(jù)庫不就行了嗎?
——集中更容易一些
去中心化系統(tǒng)很難處理,維護(hù)成本很高,升級困難,擴(kuò)展性差。如果是中心化數(shù)據(jù)庫,費用更低,維護(hù)更容易,升級也更容易。為什么大家還要使用區(qū)塊鏈,將它當(dāng)成解決所有問題的靈丹妙藥?
首先,之所以向某些行業(yè)推銷區(qū)塊鏈,是因為它們行業(yè)的基礎(chǔ)設(shè)施很久沒升級了。醫(yī)療保健行業(yè)的軟件相當(dāng)糟糕。金融行業(yè)使用的軟件停留在70年代。供應(yīng)鏈管理軟件既難安裝,又難使用。來自這些行業(yè)的大多企業(yè)不愿意升級,為什么?因為有風(fēng)險。有時投入巨資升級基礎(chǔ)設(shè)施,結(jié)果發(fā)現(xiàn)不行,只能回退到過去。區(qū)塊鏈可以推動IT基礎(chǔ)設(shè)施升級,讓升級變得更有吸引力。
其次,區(qū)塊鏈能讓你覺得自己很領(lǐng)先。真正理解區(qū)塊鏈的人很少,他們使用這個術(shù)語,只是因為聽起來更聰明。我們使用“云計算”來談?wù)搫e人的計算機(jī),“AI”的意思就是說調(diào)整算法,至于使用“區(qū)塊鏈”這一術(shù)語,就是說要使用很慢很貴的數(shù)據(jù)庫。
第三,大家真的不喜歡政府控制某些產(chǎn)業(yè),希望確立一種不同于法律的裁決機(jī)制,它很慢,很貴。區(qū)塊鏈可以幫助行業(yè)擺脫政府監(jiān)管。老實說,這種吹捧有點過頭。區(qū)塊鏈完全不與人沖突是不可能的。
許多人沒有真正理解區(qū)塊鏈的能力和成本,就大吹特吹。更糟糕的是,許多VC和高管將區(qū)塊鏈技術(shù)的細(xì)節(jié)和成本變得很抽象,因為我們刻意含糊其辭,區(qū)塊鏈能做什么,不能做什么,我們沒有講清楚?;实蹧]有穿衣服,大家都知道,但是不愿意說出來。
區(qū)塊鏈帶來的益處
我們都知道,相對于中心化數(shù)據(jù)庫,區(qū)塊鏈?zhǔn)呛苜F的。之所以使用區(qū)塊鏈技術(shù),唯一的原因就是去中心化。也就是說清除單一故障點,不讓任何人控制。
這樣一來,軟件和數(shù)據(jù)庫不能經(jīng)常改變,甚至完全不改變。
許多行業(yè)不愿意這樣。它們希望在必要時刻可以添加新功能,升級,可以自由改變或者拓展。因為區(qū)塊鏈很難升級,很難改變,很難擴(kuò)展,所以區(qū)塊鏈對于大多行業(yè)沒有太多用。
只有一樣?xùn)|西例外,那就是金錢。和大多行業(yè)不同,如果不變化,金錢系統(tǒng)會更好。規(guī)則不可變或者很難改變,對于金錢來說是一件好事,沒有任何損害。正因如此,談到比特幣時,區(qū)塊鏈才會成為最適合的工具。
有許多企業(yè)想使用區(qū)塊鏈技術(shù),但它們實際上并不是真的想要區(qū)塊鏈,只是想給行業(yè)IT基礎(chǔ)設(shè)施升升級。很好,但是如果非要扯上“區(qū)塊鏈”這個術(shù)語,就有點不誠實了,而且過度夸大區(qū)塊鏈的能力。
結(jié)論
在今天的世界,區(qū)塊鏈已經(jīng)成為流行術(shù)語。如果是中心化服務(wù),中心化系統(tǒng)不能做的事區(qū)塊鏈也做不到,而且開發(fā)中心數(shù)據(jù)庫成本要低很多很多。如果是去中心化服務(wù),你可能會欺騙自己,不去思考系統(tǒng)中存在的單點故障。在真正的去中心化服務(wù)中,根本不存在真正的“你“。
回看2000年代初期,科技行業(yè)的許多高管都說要使用Java和XML。它們都是工具,不是真正的產(chǎn)品,但是許多高管還是向兩種技術(shù)的使用投入巨資,雖然技術(shù)本身與工程師想達(dá)到的目標(biāo)完全不匹配。區(qū)塊鏈有點相似。專注你所要解決的問題,工具會自然而然冒出來。如果你盯著自己想使用的工具,最終造出的只是古怪的東西,沒有任何實際用處。
我有一種感覺:從概念上看,目前的區(qū)塊鏈技術(shù)似乎想做不可能的事情。它們想變成安全的去中心化系統(tǒng),由集中權(quán)力控制。這樣的構(gòu)想似乎想將兩個世界的優(yōu)點結(jié)合在一起,但是最終兩邊都不會好看。去中心化系統(tǒng)的成本劣勢與開發(fā)難度會體現(xiàn)出來,中心化系統(tǒng)的出錯模式也無法避免。
區(qū)塊鏈術(shù)語有點使用過度,許多人打著區(qū)塊鏈的牌子招搖撞騙。越早遠(yuǎn)離炒作可能越好。