爲什麼說區塊鏈沒那麼簡單?

圍繞區塊鏈的炒作很多,你會聽到一系列的誇大宣傳,區塊鏈將會:

1. 解決收入不平等;

2. 保證所有數據永遠安全;

3. 讓一切都變得更高效,更加去信任化;

4. 拯救垂死的嬰兒。

區塊鏈到底是個什麼東東?它真的能做所有事情嗎?區塊鏈能給諸如醫療保健、金融、供應鏈管理和音樂版權等各種各樣的行業帶來驚喜嗎?認同比特幣不就意味著你要支持區塊鏈嗎?你怎麼能只認同比特幣而否認其背後的技術呢?

在這篇文章中,我通過審視什麼是區塊鏈來解答這眾多的問題。

什麼是區塊鏈?

為了檢驗其中的一些說法,我們必須定義區塊鏈是什麼,以及在此羅列出許多不同觀點。許多公司使用“區塊鏈”一詞來表示使所有的數據永遠不會出錯的某種神奇的設備。當然,這樣的設備並不存在,至少在現實世界中是這樣的。

那麼什麼是區塊鏈?從技術上講,區塊鏈是區塊的鏈接,一個區塊是一組有序的交易。如果你不理解最後一句話,你可以把區塊鏈看作是一個擁有一些附加屬性的數據庫的一個子集。

區分區塊鏈與普通數據庫­,最主要的一點是將數據放入數據庫中的特定規則不同。也就是說,它不能與已經在數據庫中的其他數據相沖突,它是隻添加的、不可變的,並且數據本身鎖定給一個所有者(可擁有的),它是可複製的和可用的。最後,每個人都同意無中心(去中心化)的數據庫中數據的狀態是合規的。

去中心化很有吸引力,因為它意味著沒有單點故障。也就是說,沒有任何一個單一的權威機構能夠拿走你的資產,或者改變“歷史”來滿足他們的需求。這個無需相信任何人的不可改變的審計追蹤,是所有使用這項技術的人都在尋找的有益之處。然而,為了獲得這一益處也付出了巨大的成本。

區塊鏈的成本

不受任何一方受控制的不可變的審計追蹤當然是有用的,但是創建這樣一個系統需要很多成本。讓我們來看看其中的一些問題。

發展更加嚴格和緩慢

創建一個可驗證的一致性系統不是一件容易的事情。

一個小錯誤可能會破壞整個數據庫,或者導致一些數據庫與其他數據庫不同。當然,一個損壞或分割的數據庫不再有任何一致性保證。此外,所有這些系統都必須從一開始就設計成一致性的。在區塊鏈中,沒有“快速移動和破壞事物”。如果你破壞了某些東西,你就會失去一致性,區塊鏈就會崩潰和毫無價值。

你可能在想,為什麼你不能修復數據庫或者重啟它?

這在一箇中心化的系統中很容易做到,但是在一個去中心化的系統中這是非常困難的。你需要共識,或者系統中所有參與者的同意,才可以更改數據庫。區塊鏈必須是一種不受單個實體控制(去中心化,切記)的公共資源,要麼傾其所有努力,以一種極其昂貴的方式創建一個緩慢的、中心化的數據庫。

激勵結構很難設計

增加正確的激勵結構,並確保系統中的所有參與者不能濫用或破壞數據庫,這也是一個必須要考慮的因素。

區塊鏈可能是具有一致性的,但如果它有很多瑣碎的、無用的數據,那它就不是很有用了,因為把數據放入其中的成本很低。如果它幾乎沒有數據,那麼一個具有一致性的區塊鏈也不會有用,因為將數據放入其中的成本非常高。(譯者注:以上分析了數據放入成本過高和過低的兩種假設所造成的結果。)

是什麼賦予數據最終性?你如何確保獎勵與網絡目標一致?為什麼節點會保留或更新數據?當兩段數據衝突時,是什麼使它們選擇一段數據而不是另一段數據?

這些問題都都還有待探索、解答,區塊鏈不僅需要在開始時保持一致,還需要在未來的所有時間節點上保持一致。因為技術和公司會發生變化,否則區塊鏈就沒有用處。

維護成本非常高

傳統的中心化數據庫只需要寫入一次,而區塊鏈需要被寫入成千上萬次;傳統的中心化數據庫只需要檢驗一次數據,區塊鏈需要對數據進行成千上萬次檢驗;傳統的中心化數據庫只需要傳輸一次數據就可以儲存,區塊鏈需要將數據傳輸成千上萬次。

維護區塊鏈的成本量級要高得多,而且成本需要通過效用來證明。大多數應用程序在尋找一些先前聲明的屬性(如一致性和可靠性)時,可以使用完整性檢查、回執和備份來降低這些成本。

用戶至上

這樣真的很好,因為企業不喜歡對用戶數據負責任。但是,如果用戶“行為不端”,這就不好了。你沒有辦法驅逐那些在區塊鏈上發大量垃圾信息的人,又或者找到了一種方式,但它可能又會讓其他用戶諸多不便。

通過以上觀察結果我們可以得出相關結論:激勵結構必須設計得非常棒,在此激勵結構下,如果用戶發現了一個漏洞,尤其是如果還可以以此牟利的話,就不太可能放棄。

可能你會認為能拒絕為惡意用戶提供服務,這在中心化的服務中是非常容易的。

然而,與中心化服務不同的是,(在去中心化中)拒絕服務是困難的,因為沒有一個單一的實體有權力將任何人踢出去。區塊鏈必須是公正的,並強制執行由軟件所定義的規則。如果這些規則不足以阻止不良行為,那你就沒那麼幸運了。這裡沒有法律的“精神”。即使你需要簡單地處理惡意的或行為不端的執行者,可能也需要很長一段時間。

所有的升級都是自發的

強制升級不是最優選擇,網絡上的其他玩家也沒有義務優化你的軟件。如果他們這樣做了,作為中心化系統將會變得更容易、更快、更便宜。區塊鏈最重要的一點在於它不是在單個實體的控制之下,不可能強制升級。

相反,所有的升級都必須向後兼容。這顯然是相當困難的,尤其是如果你想要添加新特性,以及從測試的角度考慮時會更加困難。軟件的每個版本都為測試矩陣添加了很多內容,並延長了發佈時間。

同樣,如果這是一箇中心化的系統,那麼不用藉助於追溯舊系統就能糾錯。但是在一個去中心化的系統中你無法這樣做,你不能強迫任何人做任何事情。

擴展很困難

最後,擴展的困難程度至少比傳統的中心化系統高出幾個量級。

原因顯而易見。同樣的數據必須存在於成百上千個地方,而不是在一個單一的地方。傳輸、驗證和存儲的成本是巨大的,因為必須用支付數據庫中的每一個獨立節點的成本,來代替傳統的中心化數據庫中只支付一次的成本。

當然,你可以通過減少節點數量來減輕負擔。但在這個問題上,為什麼你需要一個去中心化的系統?如果擴展成本是主要的問題,那為什麼不去建立一箇中心化的數據庫呢?

中心化更容易

去中心化的系統很難處理,維護昂貴,升級困難,擴展繁瑣。一箇中心化的數據庫比區塊鏈更快,成本更低,維護起來更容易,也更容易升級。那麼,為什麼人們一直使用“區塊鏈”這個詞,就好像它是解決所有問題的靈丹妙藥一樣?

首先,許多在區塊鏈上出售產品的想法實際上早已過時,早就應該進行IT基礎設施升級了。健康保健行業還用著糟糕軟件,金融結算行業仍在使用70年代的軟件,供應鏈管理軟件既難以使用,又難以安裝。由於涉及到的風險,這些行業的大多數公司都拒絕升級。有很多基礎設施升級花費了數億美元,最後還是以回滾(失敗)告終。區塊鏈是一種銷售這些IT基礎設施的方式,使它們變得更合人心意。

其次,使用區塊鏈一詞使你看起來處於前沿科技地位。不管你喜歡與否,“區塊鏈”這個詞已經有了它自己的生命。其實很少有人真正理解它是什麼,成天唸叨著“區塊鏈”的人,大部分是想讓別人覺得自己緊跟科技技術潮流。就像“雲”意味著其他人的電腦,“人工智能(AI)”是一種調整的算法,在這種情況下,“區塊鏈”意味著一個緩慢而昂貴的數據庫。

第三,人們真的不喜歡監管層對某些行業的控制,他們想要的是一種不同的裁決機制,而不是執行緩慢而昂貴的法律框架。對他們來說,“區塊鏈”實際上只是一種擺脫監管所帶來的繁複冗雜的一種方式。這是在過度吹噓區塊鏈的作用,區塊鏈不會奇蹟般地消除人類的衝突。

其結果是,許多人在沒有真正理解(區塊鏈)功能或成本的情況下,對其所“承諾”的事情進行炒作吹捧。更糟糕的是,許多風投(VC)和高管對實際的技術細節和成本避而不談,模糊區塊鏈所能做的事情和不能做的事情。

那麼區塊鏈有什麼用處?

我們已經得出結論,相對於中心化數據庫,區塊鏈是非常昂貴的,所以你使用區塊鏈的唯一原因是去中心化。也就是說,避免單點的故障或控制。

如果應用區塊鏈的話,這自然意味著不能經常改變軟件或數據庫,升級變得困難,同時也不容易破壞或改變規則。

其實大多數行業都不是這樣的,都需要新的特性或升級,以及進行更改和擴展的自由。考慮到區塊鏈很難升級,很難改變,很難擴展,它對於大多數行業來說沒有多大用處。

我們發現貨幣是例外。

與大多數例子不同,如果可以穩定不變,這對貨幣來說再好不過了。規則的不變性與穩定性對貨幣來說是有利而無害的。這就是為什麼當區塊鏈隨著比特幣的誕生而來到我們面前時,它可以勝任這項職能。

有一點很清楚,很多想要使用區塊鏈的公司並不是真的需要區塊鏈,而是需要對其特定行業進行IT基礎設施進行升級。但是胡亂使用“區塊鏈”這個詞是不誠實的,並且過度誇大它的能力。

結論

如今,區塊鏈成了一個流行詞語,不幸的是,“區塊鏈非比特幣”的言論不會消亡。如果“你”是一箇中心化的服務,區塊鏈不會給“你”帶來任何東西,“你”不可能放棄使用一個成本便宜上千倍的中心化數據庫。如果“你”是一個去中心化的服務,那麼很可能“你”是在欺騙自己,因為“你”沒有去思考系統中單一節點的故障。在真正的去中心化的服務中,根本不會有“你”。


分享到:


相關文章: