1. 程式人生 > >一文讓您全面認知區塊鏈

一文讓您全面認知區塊鏈

技術分享 安裝 不良行為 所有 結構 一段時間 用處 很好 流行

原文鏈接:https://quant.la/Article/View/1632/一文讓您全面認知區塊鏈.html

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

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

在這篇文章中,我通過審視什麽是區塊鏈以及更重要的是——它不是什麽,來解答這眾多的問題。

什麽是區塊鏈?

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

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

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

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

區塊鏈的成本

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

區塊鏈的發展更加嚴格和緩慢

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

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

區塊鏈激勵結構很難設計

增加正確的激勵結構,並確保系統中的所有參與者不能濫用或破壞數據庫,這也是一個很大的考慮因素。區塊鏈可能是具有一致性的,但如果它有很多瑣碎的、無用的數據,那它就不是很有用了,因為把數據放入其中的成本很低。如果它幾乎沒有數據,那麽一個具有一致性的區塊鏈也不會有用,因為將數據放入其中的成本非常高。(譯者註:以上分析了數據放入成本過高和過低的兩種假設所造成的結果。)

是什麽賦予數據最終性?你如何確保獎勵與網絡目標一致?為什麽節點會保留或更新數據?當兩段數據沖突時,是什麽使它們選擇一段數據而不是另一段數據?這些都是需要良好答案的激勵問題,它們不僅需要在開始時保持一致,還需要在未來的所有時間節點上保持一致,因為技術和公司會發生變化,否則區塊鏈就沒有用處。

你可能還是想知道為什麽你不能“修復”一些破碎的激勵。再次重申,這在一個中心化的系統中很容易做到,但是在一個去中心化的系統中,你不可能在沒有共識的情況下改變任何事情。除非征得每個人的同意,否則就不可能“修復”任何東西。

區塊鏈維護成本非常高

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

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

技術分享圖片

用戶至上

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

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

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

區塊鏈系統所有的升級都是自發的

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

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

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

去中心化數據庫擴展很困難

最後,擴展的困難程度至少比傳統的中心化系統高出幾個量級。原因顯而易見。同樣的數據必須存在於成百上千個地方,而不是在一個單一的地方。傳輸、驗證和存儲的成本是巨大的,因為必須用支付數據庫中的每一個**的節點的成本來代替傳統的中心化數據庫中只支付一次的成本。

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

中心化要更容易

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

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

其次,使用區塊鏈一詞使你看起來處於前沿科技地位。不管你喜歡與否,“區塊鏈”這個詞已經有了它自己的生命。很少有人真正理解它是什麽,因為想要表現得緊跟潮流,所以用這些詞來使自己聽起來更有智慧。就像“雲”意味著其他人的電腦,“人工智能(AI)”是一種調整的算法,在這種情況下,“區塊鏈”意味著一個緩慢而昂貴的數據庫。

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

其結果是,許多人在沒有真正理解(區塊鏈)功能或成本的情況下,對其所“承諾”的事情進行炒作吹捧。更糟糕的是,許多風投(VC)和高管避而不談了實際的技術細節和成本,用以模糊區塊鏈所能做的事情和不能做的事情。他們每個人都害怕說皇帝沒穿衣服,所以我們才有了現在的處境。

技術分享圖片

深度分析區塊鏈對什麽有好處?

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

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

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

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

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

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

一文讓您全面認知區塊鏈