1. 程式人生 > >區塊鏈沒那麼簡單?!

區塊鏈沒那麼簡單?!

前言:當我們在談論區塊鏈的好處時,是否看到區塊鏈背後的成本、速度、擴充套件性、效率?區塊鏈顯然不是萬能的。越早認識到這一點,對區塊鏈的發展越有利。相信區塊鏈可以重塑很多產業的格局,相信它的巨大潛力。但區塊鏈發展並不是一天兩天的事,先不說對錯,我們需要更多正確的觀念,讓我們對區塊鏈世界形成更完整的認知。

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

(1). 解決收入不平等;

(2). 保證所有資料永遠安全;

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

(4). 拯救垂死的嬰兒。

 

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

下面我們一起來審視一下這個問題

什麼是區塊鏈?

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

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

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

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

區塊鏈的成本

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

發展更加嚴格和緩慢

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

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

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

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

激勵結構很難設計

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

區塊鏈可能是具有一致性的,但如果它有很多瑣碎的、無用的資料,那它就不是很有用了,因為把資料放入其中的成本很低。如果它幾乎沒有資料,那麼一個具有一致性的區塊鏈也不會有用,因為將資料放入其中的成本非常高。

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

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

維護成本非常高

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

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

使用者至上

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

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

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

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

所有的升級都是自發的

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

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

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

擴充套件很困難

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

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

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

中心化更容易

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

img

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

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

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

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

區塊鏈有什麼用處?

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

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

img

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

我們發現貨幣是例外。

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

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

結論

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