爲何咱們說區塊鏈沒有那麼容易?

Alt

近年來,圍繞區塊鏈的討論聲音愈來愈大,區塊鏈的做用也被誇得愈來愈大,有人說區塊鏈如今能夠:算法

一、幫助解決收入不平等的問題數據庫

二、確保全部數據的安全安全

三、讓不少事情均可以變得更加高效和更加去信任化網絡

區塊鏈究竟是個什麼?它真的如你們所說的那麼神祕且厲害嗎?區塊鏈真的能給諸如醫療保健、金融、供應鏈管理和音樂版權等各類各樣的行業帶來變革嗎?認同比特幣不就意味着你要支持區塊鏈嗎?你怎麼能只認同比特幣而否定其背後的技術呢?在本文中,我試圖經過討論區塊鏈到底是什麼,來了解以上的這些問題。工具

什麼是區塊鏈?

首先,咱們須要來看看區塊鏈的定義是什麼?區塊鏈

有許多的公司會使用「區塊鏈」一詞來表示某種數據永遠不會出現安全問題的神奇「設備」。但其實咱們都知道,至少在如今的這個時代,這種設備是不存在的。測試

Alt

那麼什麼是區塊鏈?從技術上講,區塊鏈是區塊的鏈表,而區塊是一組有序交易。若是你不理解最後一句話,能夠將區塊鏈視爲數據庫的子集,並具備一些其餘屬性。spa

區塊鏈和普通數據庫的主要區別是,關於如何將數據放入數據庫的規則。也就是說,它不能與數據庫中已有的某些其餘數據(一致)衝突,它只能追加(不可變),而且數據自己被鎖定爲全部者(可擁有),是可複製且可用的。最後,每一個人都贊成在沒有中央參與者(去中心化)的狀況下數據庫中事物的狀態(規範)。設計

「分權」確實是區塊鏈很是有吸引力的一部分,由於它意味着沒有單點故障。也就是說,沒有任何一個權威機構可以拿走你的資產或更改「歷史記錄」以知足他們的需求。你無需信任任何人的這條不變的審計線索就是使用這項技術的每一個人都在尋努力達到的益處。然而,這種好處卻須要付出巨大的代價。3d

區塊鏈的成本

不受任何一方控制的不變的審計跟蹤無疑是有用的,可是建立這樣一個系統要付出不少成本。讓咱們先來看看一些問題。

發展更嚴格和緩慢

建立可證實一致的系統並不是易事。一個小錯誤可能會破壞整個數據庫或致使某些數據庫與其餘數據庫不一樣。固然,已損壞或拆分的數據庫再也不具備任何一致性保證。此外,全部此類系統必須從一開始就進行設計以保持一致。區塊鏈中沒有「快速行動並打破事物」。若是你破壞事物,則會失去一致性,而且區塊鏈將變得毫無價值。

Alt

你可能在想,爲何不能只修復數據庫或從新開始並繼續前進?在集中式系統中這樣作很容易,可是在分散式系統中則很難。你須要達成共識,或者得到系統中全部參與者的贊成才能更改數據庫。區塊鏈必須是不受單個實體控制的公共資源(去中心化,還記得嗎?),不然整個工做是建立緩慢的集中式數據庫的一種很是昂貴的方法。

激勵結構設計不易

添加正確的激勵結構並確保系統中的全部參與者都不能濫用或破壞數據庫也是一個重要的考慮因素。區塊鏈多是一致的,可是若是其中有不少瑣碎、無用的數據,那麼這並非頗有用,由於將數據放入其中的成本很是低。若是幾乎沒有數據,那麼一致的區塊鏈也沒有用,由於將數據放入其中的成本過高了。

Alt

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

這些問題都都還有待探索、解答,區塊鏈不只須要在開始時保持一致,還須要在將來的全部時間節點上保持一致。由於技術和公司會發生變化,不然區塊鏈就沒有用處。

維護很是昂貴

傳統的集中式數據庫只需寫入一次。區塊鏈須要被寫入數千次。傳統的集中式數據庫只須要檢查一次數據,區塊鏈則須要檢查數千次。傳統的集中式數據庫只需傳輸一次數據便可存儲,區塊鏈須要傳輸數據數千次。

維護區塊鏈的成本要高出幾個數量級,並且成本須要經過效用來證實。大多數應用程序在尋找前面提到的某些屬性(如一致性和可靠性)時,能夠經過完整性檢查、收據和備份來以更低的價格得到這些東西。

用戶優先

這樣真的很好,由於企業不喜歡對用戶數據負責任。可是,若是用戶「行爲不端」,這就很差了。你沒有辦法驅逐那些在區塊鏈上發大量垃圾信息的人,又或者找到了一種方式,但它可能又會讓其餘用戶有一些別的不便。

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

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

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

全部升級都是自願的

強制升級並非一種好的選擇。網絡上的其餘人沒有資格來升級你的軟件。若是他們這樣作的話,這樣的系統將變得更加容易、快捷和低成本地去構建爲集中式系統。區塊鏈的重點是,它不受單個實體的控制,而強制升級則違反了這個規則。

Alt

相反,全部升級都必須向後兼容。這顯然是至關困難的,特別是當你想添加新功能時,而且從測試角度考慮時將會變得更加困難。軟件的每一個迭代版本都將會在測試矩陣中增長更多內容並將發佈時間推遲更久。

一樣,若是這是一個集中式系統,修復這樣一個再也不爲舊系統提供服務的系統將會變得很容易。可是在分散式系統中,你就沒法如此簡單的操做了,由於你不能強迫任何人執行任何操做了。

擴展真的很難

最後,與傳統的集中式系統相比,擴展至少要困難幾個數量級。緣由顯而易見。一樣的數據必須存在於成百上千個地方,而再也不是存儲在同一個地方。傳輸、驗證和存儲的開銷都將會是巨大的,由於數據庫的每一個副本都必須支付這些開銷,而不是像在傳統的集中式數據庫中那樣一次性支付這些開銷。

固然,你能夠經過減小節點的數量來緩解這種負擔。但那時候,你又爲何須要一個去中心化的系統呢?若是擴展成本是主要考慮的問題,那麼又爲何不建立一個集中式數據庫呢?

中心化並非易事

可能你會注意到這樣一個問題:去中心化的系統很難使用,維護起來又很貴,又很難升級,並且很難擴展。與區塊鏈相比呢,集中式數據庫更快、更便宜、甚至更容易維護和升級。那麼,爲何人們老是使用區塊鏈這個詞,好像它是解決全部問題的靈丹妙藥?

Alt

首先,許多在區塊鏈上進行銷售的這些行業確實早該進行IT基礎設施升級了。衆所周知,醫療保健軟件很是糟糕,它們的財務結算甚至仍在70年代的老舊軟件上進行,而供應鏈管理軟件既難以使用又難以安裝。這些行業的大多數公司由於懼怕涉及風險而拒絕升級。許多基礎設施的升級耗費了數億美圓,但最終仍是被取消了。區塊鏈是銷售這些IT基礎設施升級的更具吸引力的一種方式。

其次,區塊鏈是一種使你看起來處於技術領先地位的方法。無論你喜歡與否,「區塊鏈」一詞都有本身的生命。不多有人真正理解它的含義卻想要顯得時髦,所以可使用這些詞讓本身聽起來更聰明。就像「雲」表示別人的計算機,「AI」表示通過調整的算法同樣,「區塊鏈」在這種狀況下表示數據庫緩慢而昂貴。

結果是不少人在沒有真正理解能力或成本的狀況下就大肆宣誓本身已經在使用區塊鏈。更糟糕的是,許多風險投資人和高管從中提取了實際的技術細節和成本,以致於模糊了區塊鏈能夠作什麼和不能作什麼。他們下面的每一個人都變得懼怕說皇帝沒有衣服,而這,就是咱們如今的情況。

區塊鏈的優點

咱們已經肯定,相對於集中式數據庫,區塊鏈的成本會高不少。所以,大多數人使用區塊鏈的惟一緣由是去中心化。即,刪除單點故障或控制。

天然,這意味着軟件或數據庫必定不能常常更改(若是有的話)。升級應該沒有太大的上升空間,而搞砸或改變規則應該有不少降低空間。

Alt

大多數行業都不是這樣。大多數行業須要新功能或升級,而且須要根據須要自由更改和擴展。鑑於區塊鏈難以升級,難以更改和難以擴展,大多數行業對區塊鏈的使用並很少。

但又一個例外——貨幣。與大多數工業用例不一樣,貨幣須要的是穩定。區塊鏈的不變性和更改規則的困難對貨幣是有利的。這就是爲何區塊鏈是承載比特幣的正確工具的緣由。

顯而易見的是,不少但願使用區塊鏈的公司實際上根本就不是真的須要區塊鏈,而是須要將特定行業的IT基礎設施進行升級。所以,他們口中的「區塊鏈」一詞是不誠實的,而且過分誇大了它的能力。

結論

現在,區塊鏈是一個流行的術語,不幸的是,這種「區塊鏈不是比特幣」的言論不會消失。若是你是集中式服務,區塊鏈則沒法爲你提供任何你沒法使用集中式數據庫便宜一千倍的東西。若是你是去中心化服務,那麼你可能會自欺欺人,而不考慮系統中存在的單點故障。真正的去中心化服務根本不會有「你」。

原文連接:https://medium.com/@jimmysong...

目前,京東雲區塊鏈項目BDS已開源,同時還在招募開發者加入!點擊【閱讀】可瞭解詳情

點擊「京東雲」瞭解更多精彩內容

Alt

以上信息來源於網絡,由「京東雲開發者社區」公衆號編輯整理,不表明京東雲立場。
Alt

相關文章
相關標籤/搜索