你真的懂“區塊鏈”嗎?一文助你撥開宣傳迷霧
圍繞著區塊鏈所進行的炒作多如牛毛。區塊鏈的炒作者們說,區塊鏈現在將解決如下問題:
(1)解決收入不平等問題
(2)永遠保證所有資料的安全
(3)讓一切更有效率和信任
(4)拯救垂死的嬰兒、
然而,區塊鏈到底是什麼?它真的可以做到所有這些事情嗎?區塊鏈能為醫療,金融,供應鏈管理和音樂版權等眾多行業帶來驚人變化嗎?
支援比特幣不就意味著支援區塊鏈嗎?你怎麼能手裡拿著比特幣,卻對它背後的技術說三道四呢?
是的,在本文中,我試圖通過剖析“區塊鏈是什麼”來回答這些問題,更重要的是,我試圖說明“區塊鏈不是什麼”。
什麼是區塊鏈?
為了探究鼓吹者們的一些觀點,我們必須弄清楚區塊鏈是什麼,因為這裡存在很多混亂。許多公司使用“區塊鏈”這個詞來代表某種神奇的裝備—-通過這種裝備,他們的所有資料都不會出錯。當然,在涉及現實世界時,這樣的裝備並不存在。

什麼是區塊鏈?從技術上講,區塊鏈是區塊的連結串,區塊是一組有序的交易。如果你不理解最後一句話,你可以將區塊鏈視為資料庫的子集,並伴有一些其他屬性。
區分割槽塊鏈與普通資料庫的主要區別在於,“如何將資料放入資料庫”的特定規則。也就是說,它不能與已經存在於資料庫中的其他資料衝突(一致的),它只是附加進去(不可變的),資料本身被鎖定給資料的擁有者(可擁有的),它是可複製的和可用的。最後,每個人都同意資料庫中的資料狀態(規範的),沒有中心方(去中心化的)。
這最後一點確實是區塊鏈的聖盃。權力下放非常有吸引力,因為它意味著 沒有單一的失敗點 。也就是說,沒有任何一個機構能夠剝奪你的資產或改變“歷史”以滿足他們的需求。這種不可改變的審計蹤跡使你不必信任任何人,這是使用此技術的每個人都在尋找的好處。然而,這種好處卻需要很高的成本。
區塊鏈的成本
任何一方都可不受控制地進行不可變的審計跟蹤,肯定是很有用的,但建立這樣一個系統需要很高的成本。我們來看看其中的一些問題。
發展更加嚴格和緩慢
建立一個可證明的一致系統並非易事。一個小錯誤可能會破壞整個資料庫或導致某些資料庫與其他資料庫不同。當然,已被損壞或拆分的資料庫不再具有任何一致性。此外,所有這些系統必須從一開始就設計成一致的。區塊鏈中不存在“快速移動並分解事物”。如果你分解了區塊鏈中的事物,就會使它們失去一致性,區塊鏈就會變得腐敗無價值。

你可能在想,為什麼不能只修復資料庫或重啟並繼續?在中心化系統中這很容易做到,但在去中心化系統中卻非常困難。你需要達成共識,或者取得系統中所有參與者的同意才能更改資料庫。區塊鏈必須是不受單個實體控制的公共資源(去中心化的,記住了嗎?),否則,整個工作就是用一種非常昂貴的方式來建立緩慢的中心化資料庫了。
激勵結構很難設計
設計正確的激勵結構、並確保系統中的所有參與者不會濫用或破壞資料庫,同樣是一個重要的考慮因素。區塊鏈本身雖然是一致的,但如果它中包含大量無聊、無用的資料,那麼它就不是很有用,因為將資料放入其中的成本非常低。但是,如果區塊鏈中幾乎沒有資料,那麼一致的區塊鏈也不會有用,因為將資料放入其中的成本非常高。

什麼能賦予資料的終極性?你如何確保獎勵與網路目標保持一致?為什麼節點會保留或更新資料?是什麼讓他們在發生衝突時選擇其中一個數據而不是另一個?這些都是需要良好答案的激勵性問題,它們不僅需要在開始時保持一致,而且需要在未來—-隨著技術和公司的變化—-而保持一致,否則區塊鏈就無用了。
同樣,你可能想知道為什麼你不能“修復”一些破碎的激勵。同樣,這在中心化系統中很容易,但在去中心化的系統中,如果沒有達成共識,你就無法改變任何事情。除非得到所有人的同意,否則就不能“修復”任何東西。
維護成本很高
傳統的中心化資料庫只需要寫入一次。區塊鏈則需要寫入數千次。傳統的中心化資料庫只需要檢查一次資料。區塊鏈需要數千次檢查資料。傳統的中心化資料庫只需傳輸一次資料即可儲存。區塊鏈需要傳輸數千次。
維護區塊鏈的成本要高出幾個數量級,並且這個成本需要通過實用性來證明。大多數應用程式在尋找較早時聲稱的那些屬性(如一致性和可靠性)時,其實可以使用完整性檢查、收據和備份來降低這些成本。
使用者即主權
這一點可能非常好,因為公司不會把儲存使用者資料的責任放在第一位。但是,如果使用者“行為不端”,可能就會很糟了。因為,公司沒有辦法摒棄那些用無聊資料向你的區塊鏈傳送垃圾郵件的使用者,或者,雖然公司找到了一種獲利方式,但這方式會給其他使用者帶來很多不便。因此,激勵結構必須設計得非常好,因為找出並利用漏洞的使用者(羊毛黨)不太可能放棄,特別是在有利潤的情況下。
你可能認為你可以簡單地拒絕向惡意使用者提供服務,這在中心化服務中非常容易。但是,與中心化服務不同,去中心化系統中,要拒絕服務就很困難,因為沒有任何一個實體有權將任何人踢出去。區塊鏈必須是公正的,且要執行軟體定義的規則。如果規則不足以阻止不良行為,那你就倒黴了。這裡沒有法律的“精神”。你只能去需要處理惡意或不良因素,可能這個過程需要持續很長時間。
所有升級都是自願的
強制升級並不能作為一種選項。網路上的其他玩家沒有義務改變你的軟體。其實,如果他們真這樣做,系統將更容易、更快、更便宜地構建成中心化系統。區塊鏈的重點在於它不受單個實體的控制,並且強制升級會違反這個原則。

相反,所有升級都必須向後相容。這顯然非常困難,特別是如果你想要從測試角度考慮新增新功能時。每個版本的軟體都會為測試矩陣增加很多負荷,並延長髮布時間。
同樣,如果這是一箇中心化系統,那麼就可以直接不再為舊系統提供服務,升級就非常容易。但是,在去中心化的系統中你不能強迫任何人做任何事情。
規模化真的很難
最後,區塊鏈系統的規模化要比傳統中心化系統難幾個數量級。原因很明顯:相同的資料必須存在於數百或數千個地方而不是單個地方。傳輸,驗證和儲存的花費非常大,因為資料庫的每個副本都必須為此支付,而在傳統的中心化資料庫中,只需支付一次這些費用。
當然,你可以通過減少節點數來減輕負擔。但那時,為什麼你需要一個去中心化的系統呢?如果擴充套件成本是主要顧慮所在,那為什麼不建立一箇中心化資料庫呢?
中心化要容易得多
你可能已注意到:去中心化的系統很難處理,維護成本高,難以升級並且難以擴充套件。與區塊鏈相比,中心化資料庫更快,更便宜,更易於維護且更易於升級。那麼,為什麼人們會一直使用區塊鏈這個詞,就好像它是解決所有問題的靈丹妙藥呢?

首先,許多基於區塊鏈來銷售的行業實際上是已經過期IT基礎設施升級。健康保護領域有眾所周知的可怕軟體。財務結算仍在使用70年代的軟體。供應鏈管理軟體既難使用又安裝。由於涉及風險,這些行業的大多數公司都抵制升級。有許多基礎架構升級需要花費數億美元,且最終還是會被回滾。區塊鏈是銷售這些IT基礎架構升級的一種方式。
其次,區塊鏈看起來像一種技術前沿與風口。無論喜歡與否,“區塊鏈”這個詞已經具有了自己的生命。很少有人真正理解它是什麼,但想要顯得時髦,就使用這些詞,它可以讓人顯得更聰明。就像“雲”意味著別人的計算機和“AI”意味著一個經過調整的演算法一樣,在這種情況下,“區塊鏈”其實只意味著一個緩慢、昂貴的資料庫。
第三,人們真的不喜歡政府對某些行業的控制,並且希望採用與法律框架不同的裁決機制,而法律框架通常既緩慢又昂貴。對他們而言,“區塊鏈”實際上只是擺脫政府監管手段的一種方式而已。這其實已超出了區塊鏈的作用範疇,區塊鏈並不能神奇地消除人類衝突。
結果是,很多人在沒有真正理解區塊鏈的能力或成本的情況下,大肆宣傳區塊鏈的未來。更糟糕的是,實際的技術細節和成本,被很多風險投資公司和高管抽象出來,以掩蓋區塊鏈能做什麼和不做什麼。現在存在的一種情況是:他們下面的每個人都害怕說皇帝沒有衣服。
區塊鏈對什麼有益?
我們已經確定:區塊鏈相對於中心化資料庫非常昂貴。所以,你應該使用區塊鏈的唯一原因是去中心化。也就是說,消除單點故障或控制。
這自然意味著,軟體或資料庫不能經常改變,或根本不用變。升級或改變規則應該沒什麼好處,且有很多害處。
但是,大多數行業都不是這樣的。大多數行業都需要新功能或升級,並可根據需要自由更改和擴充套件。鑑於區塊鏈難以升級、改變和擴充套件,區塊鏈對大多數行業沒有多大用處。
我們發現的一個例外是金錢。與大多數工業案例不同的是,如果不做改變,金錢會更好。規則不可變性和改變的難以實施性對金錢而言是積極的,而不是有害的。這就是為什麼說區塊鏈適合比特幣。
很明顯,很多利用區塊鏈的公司其實根本不想要區塊鏈,而是要對其特定行業進行IT升級。這一切都很好,但使用“區塊鏈”這個詞來達到目的是不誠實的,且超越了它的能力。
結論
如今,區塊鏈是一個受歡迎的術語;然而,不幸的是,“區塊鏈不是比特幣”的模因不會消失。如果你提供一種中心化服務,那麼沒有哪個區塊鏈產品是你用便宜一千倍的中心化資料庫做不了的。如果你提供一種去中心化的服務,那麼你可能會愚弄自己,而不是考慮系統中存在的單點故障。在真正的去中心化的服務中,根本就沒有“你”。

早在2000年代早期,科技行業的許多高管就推動使用Java和XML。儘管這個都是工具而不是實際產品,但許多高管都堅持使用它們,無論它們與工程師想要達到的程度相差多少。區塊鏈現在就屬於這種情況。所以,若專注於你正在解決的問題,合適的工具就很快浮現。若專注於你想要使用的工具,你最終會使殺雞都用牛刀,這樣是不可能做把什麼事情做的特別好的。
從某種意義上說,目前區塊鏈的概念正在試圖去做不可能做到的事。 他們及想要去中心化系統的安全性又想要中心化控制。 慾望是兩個世界中最好的,但他們最終獲得的可能是兩個世界中最糟糕的。 你可能得到的是中心化系統的故障模式和去中心化系統的巨大成本和難度。
區塊鏈已經當作一個流行詞,用以銷售大量無用的“萬金油”。我們擺脫炒作的速度越快,從長期來看,對我們的成長越好。
作者已允許其作品被翻譯。
作者: Jimmy Song
譯者:愛樂牛
原文連結: https://medium.com/@jimmysong/why-blockchain-is-hard-60416ea4c5c