圍繞區(qū)塊鏈的宣傳是聲勢浩大的。有關(guān)區(qū)塊鏈的宣傳是,區(qū)塊鏈將會(huì):
解決收入不平等
確保所有數(shù)據(jù)永遠(yuǎn)安全
讓一切變得更加高效和更可靠
拯救垂死的嬰兒
到底什么是區(qū)塊鏈?它真的能做所有這些事情嗎?區(qū)塊鏈能給醫(yī)療、金融、供應(yīng)鏈管理和音樂權(quán)利等不同的行業(yè)帶來驚喜嗎?
那么,對于比特幣來說,這是否意味著是支持區(qū)塊鏈的呢?對于比特幣,你怎么能不說它背后的技術(shù)有什么不好的地方呢?
在本文中,我試圖通過查看區(qū)塊鏈?zhǔn)鞘裁春筒皇鞘裁?,來回答許多這樣的問題。
什么是區(qū)塊鏈?
為了研究其中的一些說法,我們必須給區(qū)塊鏈下定義,這里有許多混淆之處。許多公司使用“區(qū)塊鏈”這個(gè)詞來表示某種神奇的設(shè)備,以此向用戶表達(dá)出,他們的所有數(shù)據(jù)都不會(huì)出錯(cuò)。當(dāng)然,至少在涉及到現(xiàn)實(shí)世界的時(shí)候,這樣的設(shè)備是不存在的。
那么什么是區(qū)塊鏈呢?從技術(shù)上講,區(qū)塊鏈?zhǔn)且粋€(gè)塊的鏈表,一個(gè)塊是一組有序的事務(wù)。如果您不理解最后一句話,您可以將區(qū)塊鏈看作是數(shù)據(jù)庫的一個(gè)子集,在這個(gè)數(shù)據(jù)庫還有一些額外的屬性。
區(qū)塊鏈和普通數(shù)據(jù)庫的主要區(qū)別是,對于如何將數(shù)據(jù)放入數(shù)據(jù)庫,有一些特定的規(guī)則。也就是說,它不能與數(shù)據(jù)庫中已經(jīng)存在的其他數(shù)據(jù)沖突,它是只追加的不可變的,并且數(shù)據(jù)本身被鎖定到所有者的話它是可復(fù)制的和可用的。最后,數(shù)據(jù)庫不是去中心化的。
這最后一點(diǎn)才是區(qū)塊鏈存在的真正意義。權(quán)力下放非常具有吸引力,因?yàn)樗馕吨淮嬖趩我坏氖↑c(diǎn)。也就是說,沒有任何一個(gè)機(jī)構(gòu)能夠拿走你的資產(chǎn)或改變歷史來滿足他們的需求。在這種不變的審計(jì)線索中,你不需要相信任何人,這就是每個(gè)人使用這種技術(shù)所追求的好處。然而,這種好處的代價(jià)是巨大的。
區(qū)塊鏈的成本
不受任何一方控制的不可變審計(jì)跟蹤肯定是有用的,但是創(chuàng)建這樣一個(gè)系統(tǒng)需要付出很多代價(jià)。讓我們來研究一下其中的一些問題。
發(fā)展更加嚴(yán)格且緩慢
創(chuàng)建一個(gè)可證明一致的系統(tǒng)不是一件容易的工作。一個(gè)小錯(cuò)誤會(huì)破壞整個(gè)數(shù)據(jù)庫,或者導(dǎo)致某些數(shù)據(jù)庫與其他數(shù)據(jù)庫相沖突。當(dāng)然,損壞或拆分的數(shù)據(jù)庫不再具有任何一致性保證。此外,所有這類系統(tǒng)都必須從一開始就設(shè)計(jì)得前后一致。在區(qū)塊鏈中沒有“快速移動(dòng)就能避免破壞的東西”。如果你破壞了東西,你就會(huì)失去一致性,區(qū)塊鏈就會(huì)被破壞,然后變得毫無價(jià)值。
您可能會(huì)想,為什么不直接修復(fù)數(shù)據(jù)庫或重新開始并繼續(xù)前進(jìn)呢?這在集中式系統(tǒng)中是很容易做到的,但在分散式系統(tǒng)中則很難做到。為了更改數(shù)據(jù)庫,您需要一致的意見,或者系統(tǒng)中所有參與者的同意。因?yàn)閰^(qū)塊鏈必須是一個(gè)公共資源,不在單個(gè)實(shí)體的控制之下。
激勵(lì)結(jié)構(gòu)難以設(shè)計(jì)
增加適當(dāng)?shù)莫?jiǎng)勵(lì)結(jié)構(gòu),并確保系統(tǒng)中的所有行為者都不濫用或破壞數(shù)據(jù)庫,也是一個(gè)重要的考慮因素。一個(gè)區(qū)塊鏈可能是一致的,但是如果它有很多瑣碎的、無用的數(shù)據(jù),那就不是很有用了,因?yàn)閷?shù)據(jù)放入其中的成本非常高。
是什么給出了數(shù)據(jù)的最終結(jié)論?如何確保獎(jiǎng)勵(lì)與網(wǎng)絡(luò)目標(biāo)一致?為什么節(jié)點(diǎn)要保持或要更新數(shù)據(jù), 以及當(dāng)它們處于沖突中時(shí), 是什么使它們選擇了一致性的數(shù)據(jù)?這些都是需要解決的具有激勵(lì)性的問題, 數(shù)據(jù)不僅需要在一開始, 而且要在未來的所有點(diǎn)上都是一致的, 否則區(qū)塊鏈將沒有意義。
同樣, 你可能會(huì)想知道為什么你不能 “修復(fù)” 一些破碎的獎(jiǎng)勵(lì)。再一次說明, 這在集中式系統(tǒng)中很容易實(shí)現(xiàn), 但在一個(gè)分散的體系中, 你根本無法在沒有共識(shí)的情況下改變?nèi)魏问虑?。除非每個(gè)人都同意, 否則沒有 你改變?nèi)魏螙|西的權(quán)利。
維護(hù)成本很高, 傳統(tǒng)的集中式數(shù)據(jù)庫只需要寫入一次。而區(qū)塊鏈需要寫上上千遍。傳統(tǒng)的集中式數(shù)據(jù)庫只需要檢查一次數(shù)據(jù)。而區(qū)塊鏈需要對數(shù)據(jù)進(jìn)行上千次檢查。傳統(tǒng)的集中式數(shù)據(jù)庫只需要傳輸一次存儲(chǔ)數(shù)據(jù)。而區(qū)塊鏈 需要將數(shù)據(jù)傳輸上千次。
維持 區(qū)塊鏈 的成本是很高的。大多數(shù)應(yīng)用程序在查找前面所述的一些屬性時(shí), 如一致性和可靠性, 可以使用完整性檢查、收據(jù)和備份更便宜地獲得這些東西。
用戶主權(quán)
公司都不喜歡為用戶的數(shù)據(jù)承擔(dān)責(zé)任。但是, 如果用戶 “行為不端”, 這可能會(huì)很糟糕。沒有辦法趕走那些用瑣碎數(shù)據(jù)發(fā)送區(qū)塊鏈的用戶,或者想出一種以某種方式獲利的方式,這會(huì)給其他用戶帶來很多不便。這與上述的觀察相關(guān)聯(lián),即激勵(lì)結(jié)構(gòu)必須設(shè)計(jì)得非常非常好,那么用戶不太可能放棄,特別是當(dāng)用戶有利潤的時(shí)候。
您可能會(huì)想,您可以簡單地拒絕對惡意用戶的服務(wù),這在集中式服務(wù)中是很容易做到的。但是,與集中式服務(wù)不同,在區(qū)塊鏈中拒絕服務(wù)是困難的,因?yàn)闆]有一個(gè)實(shí)體有權(quán)將任何人踢出。區(qū)塊鏈必須公正并執(zhí)行軟件定義的規(guī)則。如果這些規(guī)則不足以阻止不良行為,那你就倒霉了。這里沒有法律的“精神”。你在處理惡意或行為不端的演員,可能需要很長時(shí)間。
所有升級都是自愿的
強(qiáng)制升級不是一個(gè)好的選項(xiàng)。網(wǎng)絡(luò)上的其他玩家沒有義務(wù)更改您的軟件。如果他們這樣做,這樣系統(tǒng)將更容易、更快和更便宜地作為一個(gè)集中的系統(tǒng)來構(gòu)建。區(qū)塊鏈的意義在于,它不在單個(gè)實(shí)體的控制之下,并且所有用戶都不能給被強(qiáng)制升級。
相反,所有升級必須是向后兼容的。這顯然是相當(dāng)困難的,尤其是如果您想添加新特性,并且從測試的角度進(jìn)行思考時(shí)更難。軟件的每個(gè)版本都為測試矩陣增加了很多內(nèi)容,并延長了發(fā)布時(shí)間。
同樣,如果這是一個(gè)集中式系統(tǒng),那么不再維護(hù)較舊的系統(tǒng)就很容易糾正這一點(diǎn)。但是,在一個(gè)分散的系統(tǒng)中,您不能強(qiáng)迫任何人做任何事情。
縮放真的很難
最后,與傳統(tǒng)的集中式系統(tǒng)相比,擴(kuò)展至少要困難幾個(gè)數(shù)量級。原因很明顯,因?yàn)橥瑯拥臄?shù)據(jù)必須存在于數(shù)百個(gè)或數(shù)千個(gè)地方,而不是在一個(gè)地方。傳輸、驗(yàn)證和存儲(chǔ)的開銷是巨大的,因?yàn)閿?shù)據(jù)庫的每一個(gè)副本都必須進(jìn)行支付,而不是在傳統(tǒng)的集中式數(shù)據(jù)庫中只支付一次這些費(fèi)用。
當(dāng)然,您可以通過減少節(jié)點(diǎn)數(shù)量來減輕負(fù)擔(dān)。但到了那個(gè)時(shí)候,為什么你還需要一個(gè)分散的系統(tǒng)呢?為什么不建立一個(gè)集中式數(shù)據(jù)庫?
集中管理要容易得多
如果你注意到分散式系統(tǒng)很難使用,維護(hù)費(fèi)用高,升級困難,規(guī)模大的痛苦,集中式數(shù)據(jù)庫比區(qū)塊鏈更快、更便宜、更容易維護(hù)和升級的話。那么,為什么人們總是用“區(qū)塊鏈”這個(gè)詞來進(jìn)行標(biāo)桿,好像它是解決他們所有問題的靈丹妙藥呢?
首先,許多在區(qū)塊鏈上出售的行業(yè)確實(shí)早就該升級IT基礎(chǔ)設(shè)施了。70年代以來,財(cái)務(wù)結(jié)算仍在軟件上運(yùn)行,供應(yīng)鏈管理軟件既難以使用,也難以安裝。這些行業(yè)的大多數(shù)公司都會(huì)因?yàn)樯婕暗娘L(fēng)險(xiǎn)而抵制升級。有許多基礎(chǔ)設(shè)施進(jìn)行了升級,花費(fèi)了數(shù)億美元,但最終還是被打回原形了。因此,區(qū)塊鏈?zhǔn)且环N銷售這些IT基礎(chǔ)設(shè)施升級的方式,區(qū)塊鏈會(huì)使它們更有吸引力。
其次,區(qū)塊鏈?zhǔn)且环N讓你看起來像是處于科技前沿的技術(shù)。不管你喜不喜歡,“區(qū)塊鏈”這個(gè)詞已經(jīng)有了自己的生命。很少有人真正理解它是什么,但想顯得時(shí)髦,所以用這些詞來讓自己聽起來更加的牛。就像“云”指的是別人的電腦,“AI”指的是經(jīng)過調(diào)整的算法,“區(qū)塊鏈”在這個(gè)上下文中意味著一個(gè)緩慢而昂貴的數(shù)據(jù)庫。
第三,人們確實(shí)不喜歡政府對某些行業(yè)的控制,他們希望有一個(gè)不同于法律框架的審判機(jī)制,而后者通常既慢又費(fèi)錢。對他們來說,“區(qū)塊鏈”只是擺脫政府管制機(jī)器的一種方式。這就是區(qū)塊鏈的作用。但是區(qū)塊鏈并不能神奇地帶走人類的沖突。
結(jié)果是許多人在沒有真正了解能力或成本的情況下就被這些承諾炒作了。更糟糕的是,實(shí)際的技術(shù)細(xì)節(jié)和成本從很多風(fēng)投和高管那里被抽象出來,從而掩蓋了區(qū)塊鏈可以做什么和不能做什么。
那么區(qū)塊鏈有什么用呢?
我們已經(jīng)證明了區(qū)塊鏈相對于集中式數(shù)據(jù)庫來說是非常昂貴的。所以你還想使用區(qū)塊鏈的唯一原因是其具有分散化。
這自然意味著軟件或數(shù)據(jù)庫一定不能經(jīng)常改變周圍的東西,如果有的話。升級應(yīng)該沒有什么好處,并且搞砸或改變規(guī)則也有很多壞處。
大多數(shù)行業(yè)都需要新的功能或升級,以及在必要時(shí)有能夠進(jìn)行更改和擴(kuò)展的自由??紤]到區(qū)塊鏈難以升級、難以改變、難以規(guī)?;蠖鄶?shù)行業(yè)對區(qū)塊鏈的使用并不多。
我們發(fā)現(xiàn)的一個(gè)例外是“錢”。與大多數(shù)工業(yè)用例不同,如果不能夠進(jìn)行改變,錢會(huì)更好。規(guī)則的不變性和困難性對金錢是正面的,而不是有害的。這就是區(qū)塊鏈在比特幣問題上是合適的工具的原因。
我們必須明確一點(diǎn)的是,許多希望使用區(qū)塊鏈的公司并不真正想要一個(gè)區(qū)塊鏈,只是信息技術(shù)升級到它們的特定行業(yè)了。這一切都很好,但是用“區(qū)塊鏈”這個(gè)詞來達(dá)到這個(gè)目的是不顯示的,因?yàn)檫@會(huì)過度消耗企業(yè)的能力。
結(jié)論
區(qū)塊鏈?zhǔn)亲罱芰餍械男g(shù)語,不幸的是,這種“區(qū)塊鏈而非比特幣的”模因不會(huì)消亡。如果您是一個(gè)集中式的服務(wù),那么區(qū)塊鏈就不能為您提供比集中式數(shù)據(jù)庫便宜一千倍的東西。如果您是一個(gè)分散的服務(wù),那么您可能是在愚弄您自己,因?yàn)槟銢]有考慮到系統(tǒng)中存在的單一故障點(diǎn)。在一個(gè)真正分散的服務(wù)中根本不會(huì)只有你存在。
早在2000年代初,科技行業(yè)的許多高管都在推動(dòng)使用Java和XML。盡管這個(gè)都是工具而非實(shí)際產(chǎn)品,不管工程師們達(dá)到的目標(biāo)有多么糟糕,許多高管堅(jiān)持使用它們。區(qū)塊鏈很像這樣產(chǎn)品。如果,把注意力集中在你正在解決的問題上,工具就會(huì)很容易地顯現(xiàn)出來。把注意力集中在你想要使用的工具上,你最終會(huì)生產(chǎn)出像Rube Goldberg這樣的機(jī)器,而這些機(jī)器不會(huì)做得特別好。
從某種意義上說,現(xiàn)在的區(qū)塊鏈概念是在試圖做不可能的事情。他們希望分散式系統(tǒng)的安全性與集中式系統(tǒng)的控制相統(tǒng)一。他們想的是要利用這兩種系統(tǒng)中最好的,但他們最終得到的卻是兩個(gè)系統(tǒng)中最糟糕的。
區(qū)塊鏈作為一個(gè)時(shí)髦的詞來進(jìn)行炒作。因此,我們要盡快擺脫這種炒作,然后使自身越來越好就可以了。