1. 程式人生 > >這篇在medium上獲得5萬點讚的文章,值得區塊鏈小白耐心讀一讀

這篇在medium上獲得5萬點讚的文章,值得區塊鏈小白耐心讀一讀

640?wx_fmt=jpeg

譯者 | 麼廣忠

不知道你有沒有感覺到,如今的區塊鏈,已經在大媽大爺這股強大催化劑的作用下,被出神入化地擡上了絕對的高度:

  1. 收入不平等問題將得到解決

  2. 資料將永久安全

  3. 所有的事情都將變得高效且可信

  4. 甚至可以拯救瀕死的嬰兒…

What?!

區塊鏈到底是什麼鬼?它就這麼無所不能?醫療、金融、供應鏈、音樂版權等等這些領域,都會因為區塊鏈而煥然一新?

現在,就讓我們坐下來,好好嘮嘮,到底區塊鏈能帶來啥?

一、什麼是區塊鏈

為了解釋這些令人混淆的問題,我們必須定義什麼是區塊鏈。現在有很多公司使用“區塊鏈”來代指某種神奇的裝置,這種裝置可以保證內部儲存的資料永遠不出錯。當然,這樣的裝置是不存在的,至少在現實世界中還沒被解決。

640?wx_fmt=jpeg

左上:我們應該關注什麼呢?區塊鏈!

右上:區塊鏈將改變所有的一起,每個人都在認真思考這個技術。

左下:可以將區塊鏈技術應用到任何領域。我們不想落後於他人。

右下:那到底什麼是區塊鏈呢?也許就是“人工智慧”吧~

那麼什麼是區塊鏈呢?從技術上講,區塊鏈是一個區塊的連結串列,每個區塊儲存了一系列的有序的事務。如果你無法理解這句話,那你可以認為區塊鏈其實就是一個擁有一些額外特性的特殊的資料庫。

區塊鏈和一個普通資料庫的最主要的區別是資料加入資料庫的方式。你可以這樣理解區塊鏈:

  1. 一致性:區塊鏈這個特殊的資料庫保證了資料間的一致性,即沒有衝突的資料。

  2. 不變性:資料只可以被加入到資料庫中而不能更改。

  3. 私有性:資料本身被鎖定到其所有者,其他人無權獲知。

  4. 典型性:每個人都認可當前資料庫儲存的資訊。

  5. 去中心化:沒有一箇中央所有者控制資料庫。

其中,去中心化這個特性尤為關鍵,它意味著,整個系統中沒有單一故障點。也就是說,沒有任何個人可以拿走你的資產,或者為了一己私慾篡改“歷史”。區塊鏈系統中的資料稽核過程對使用者是完全透明的,使用者不需要了解系統是如何審查資料的,使用者也不需要確定應該新人系統中的哪一個使用者,使用者只需要享受區塊鏈為他帶來的所有便捷,這種優勢正是每個人所需求的。但是這個優勢卻會帶來大量的成本和開銷。

二、區塊鏈的開銷

這種不需要依賴於每個單獨節點的無法追蹤的資料稽核過程是非常有效的,但是卻對系統帶來了巨大的開銷。讓我們來進一步瞭解這些開銷具體是什麼。

開發過程嚴格且緩慢

構建一個可滿足一致性的系統並不是一件易事。細小的錯誤可能會導致整個系統的崩潰或者導致一些資料產生不一致。當然,一個崩潰的資料庫將不再保證其資料一致性。這樣,我們所構建的系統必須在一開始就必須滿足資料一致性。在區塊鏈中,你不應該打破一開始涉及的一些“規矩”。如果你破壞了一些規矩,你可能就損失了一致性,這會導致整個區塊鏈崩潰且喪失一切價值。

640?wx_fmt=gif

左:我們需要額外三個程式設計師。請使用敏捷程式設計方法。

中:敏捷程式設計方法的意思可不是用更少的人員做更多的工作啊!

右:請明確的告訴我你要做什麼然後再來問我!

你可能會想,為什麼你不能通過修復程式中的漏洞或者重啟整個資料庫來保證資料庫可以繼續使用呢?這在一箇中心化的系統中可能很容易實現,但是在去中心化系統中是非常困難的。你需要系統中每個節點達成共識才能對資料庫進行改變。但是你要知道,區塊鏈可是一個不受任何單一實體控制的公共資源(去中心化是聖盃)。

激勵結構難以設計

加入正確的激勵結構並且保證系統中的每個使用者不能濫用和破壞資料庫,這是一件值得深思的事情。一個區塊鏈應該保證資料一致性的,但是如果這個區塊鏈中有大量的無用資料,那麼這種一致性就沒有任何意義了,因為這樣誰都可以向區塊鏈中加入資料。同樣,如果這個區塊鏈中儲存的資料太少了,那麼這種一致性同樣是沒有意義的,因為如此少的資料卻用一個龐大的系統來維護顯得有些大材小用了。

640?wx_fmt=png

左:如果沒有資金激勵,人們將失去創造力!

中:不對!人們會因為很多理由來創造新事物

右:是誰給你錢讓你這麼說的?!

誰最終生產資料呢?如何使這些激勵方式與區塊鏈的目標契合上?為什麼節點要儲存並更新資料?當我們在面臨資料衝突的時候我們應該選擇哪一份資料作為真實的呢?這些都是和激勵體系有關的問題。這些激勵結構應該被設計的非常良好,不僅僅是在區塊鏈開始工作的時候讓激勵體系發揮作用,還應使得區塊鏈系統在未來科技和公司發展的時候仍然能夠適用,否則區塊鏈將變得毫無意義。

維護代價非常高

傳統的中心化資料庫,儲存一個事務的時候,只需要向資料庫中寫一次資料即可;而在區塊鏈中,儲存一個事務的時候,需要向資料庫寫成千上萬次。傳統的中心化資料庫,檢查一個事務的時候,只需要向資料庫中核對一次資料即可;而在區塊鏈中,檢查一個事務的時候,需要向資料庫的資料核對成千上萬次。傳統的中心化資料庫,為了儲存事務而傳輸資料的時候,只需要傳輸一份作為儲存;而在區塊鏈中,為了儲存事務而傳輸資料的時候,需要傳輸成千上萬份資料並存儲。

維護區塊鏈的開銷是指數級增加的,並且這些開銷應該要產生足夠大的效用。大多數應用都是通過一致性檢查、收據和備份來滿足系統所需要的一致性和可靠性,這樣可以有效地降低成本。

使用者必須擁有主權

公司並不喜歡將維護使用者資料的責任攬在自己身上。如果某個使用者做了一些“行為不端”的事情,例如他們將區塊鏈中充斥著“垃圾資料”或者通過損失其他使用者的利益來是自己獲利。如果沒辦法將這些使用者“踢出”區塊鏈,那就會破壞整個社群的環境。因此,激勵結構應該要被設計的非常好,因為一個使用者如果發現某種“不端行為”是有利可圖的,那麼他就會繼續這種不端行為,從而破壞其他使用者權益。

你可能認為在中心化的服務中,拒絕給惡意使用者提供服務是非常簡單的事情。然而,不像中心化的服務中,區塊鏈系統中拒絕給某個使用者提供服務是非常困難的,因為沒有任何線索可以指示某個使用者是惡意使用者並且將他踢出系統。區塊鏈應該是公平公正的並且遵循軟體制定的規則提供服務。如果這個規則無法充分地識別這些不端行為,那這個區塊鏈設計的將會非常失敗。你不能寄希望於使用者不會進行不端行為。你必須努力找出並處理惡意和不端的使用者們,儘管需要花費很多時間和精力。

所有更新都是自願的

系統強制使用者更新並不是一個好的選擇。區塊鏈中的其他使用者沒有任何責任需要改變軟體提供的服務。如果他們這麼做了,那麼系統就變成了一個能夠很容易、高效、低成本地建立起來的一箇中心化系統。但是,區塊鏈的一個關鍵點是,系統不受任何一個單獨實體地控制,這使得區塊鏈很難滿足“強制使用者更新”的需求,也就是說,區塊鏈不需要使用者不停地更新軟體,皆大歡喜!

640?wx_fmt=jpeg

兄弟,掃我這的二維碼來更新系統(二維碼相對條形碼是更高版本)

取而代之,就需要所有的更新是“向下相容的”,即更低版本的使用者仍然能夠正常使用系統。如果從測試的角度來看,如果想增加新的特性但是仍然對舊版本相容是非常困難的事情。軟體的每一個版本都增加了許多測試環節並且延長了釋放時間。

再次說明,如果這是一箇中心化的系統,因為不用服務舊的系統,這將變得十分容易。但是在去中心化的系統中卻不能這樣,因為你無法強制每個人做系統安排的每一件事情。

複製整個系統非常困難

最終,和傳統的中心化系統相比,縮放的難度要很多個數量級。理由很明顯,同樣的資料在區塊鏈中被存放在成千上萬個地方,而中心化系統中只需要存在一個地方。這些資料的傳輸、驗證和儲存的過程對於每一份被拷貝的資料都要完成一次,這些時間開銷是無法避免的,不像傳統的分散式資料庫中只需進行一次。

三、中心化更加簡單

綜上所述,你應該能發現,去中心化系統是難以開發、維護起來很昂貴並且很難升級的。相對於區塊鏈,一箇中心化資料庫則是更加高效、成本低、容易維護和升級的。所以問題來了,為什麼大多數人仍然將區塊鏈視為解決這些問題的靈丹妙藥呢?這完全是大眾的誤解。

640?wx_fmt=jpeg

左:在ICO之後,我們的革命性平臺將為區塊鏈帶來一個......

中:我聽到有人說“區塊鏈”?

右:這是一個很慢的資料庫!

首先,許多被區塊鏈宣傳而洗腦的企業大多在IT基礎設施升級上非常落後。醫療企業提供的軟體都被認為是糟糕的。甚至財務清算仍然使用的是70年代的軟體。供應鏈控制軟體既難以使用也難以安裝。處於風險考慮,這些企業都拒絕更新最新的科技技術。有很多基礎設施更新需要花費數億美元最終還是被放棄。區塊鏈是讓這些IT基礎裝置更新的一種宣傳並且吸引他們更多的注意力。

首先,使用區塊鏈技術可以讓你看起來走在科技的前沿。無論你喜歡或者不喜歡,區塊鏈都在或多或少地改變世界。很多人可能不是真正地理解區塊鏈是什麼,但是他們希望使用區塊鏈來“迎合時尚”使自己變得看起來更充滿智慧。就像“雲”意味著他們的計算機,“AI”意味著一種更先進地演算法,“區塊鏈”意味著更慢且更昂貴地資料庫。

再次,人們不希望政府控制企業並且希望有一個新型的公平機制,這種機制與法律框架不同並且比法律更加公眾,儘管這種機制是低效且成本昂貴的。對於他們而言,“區塊鏈”是擺脫政府沉重管制地一種手段。

結果就是,很多人在沒有完全理解區塊鏈的情況下卻將區塊鏈誇大宣傳了。更糟糕的是,實際的技術細節和成本被許多風險投資公司和管理人員中抽象出來,從而誤導了公眾區塊鏈所能做的和不能做的事情。於是這種局面下,每個人都很害怕說“皇帝其實就沒有穿衣服”。

四、區塊鏈的好處

我們現在已經知道,對於中心化資料庫來說,區塊鏈建立起來的成本更加高。所以驅使你使用區塊鏈的唯一的理由應該就是去中心化。也就是說,免除單個實體控制整個系統,也免除了因此而導致的系統崩潰。這自然也意味著,區塊鏈軟體和資料庫不應該過快的升級或者改變。應該少做更新但是多做對“向下相容”。

640?wx_fmt=png

左:我僱傭了一名新的顧問來幫我們使用區塊鏈技術。

中:區塊鏈!區塊鏈!區塊鏈!......

右:就像是技術專家和哲學家的結合體。

大多數企業不喜歡這些。大多數企業需要新的特性和更加自由的更新,這方便於企業的擴大生產和擴張。因為區塊鏈不利於更新和改變,所以其實區塊鏈對大多數公司來說沒有太大好處。

但是我們發現一個例外,就是“金錢驅動”。不像類似企業的發展,如果錢是不變的,那真的是太好了。穩定性和不變性對於錢來說是非常有利的特性。這就是為什麼當區塊鏈演變成比特幣的時候,這是一項非常合適的改進,從而促進了一個更好的領域的發展。

更加清晰的是,大多數公司企圖使用區塊鏈技術並不是他們真正需要區塊鏈,而是必要的技術革新對他們而言是重要的。其實用“區塊鏈”作為噱頭來過度宣傳他們的能力是不誠實的行為。

五、總結

區塊鏈現在是一種流行趨勢,但是不幸的是,大家似乎對“區塊鏈和比特幣的區別”不hi十分明確。如果你提供的是一種中心化的服務,區塊鏈什麼也幫不了你,你倒不如去使用更高效的中心化資料庫。如果你提供的是一種去中心化的服務,那麼如果你不考慮系統中存在的單點錯誤就是在欺騙自己。區塊鏈中就沒有“中央控制者”這個概念。

回到21世紀初,大多數企業高管推動了企業使用JAVA和XML技術。儘管這些只是工具而不是真正的產品,許多管理者堅持使用這些而不管這些是否和技術開發需求匹配。區塊鏈像極了這種情況。把注意力集中在解決的問題上會使得你尋找到更加有效的工具。但如果把注意力集中在工具上,你將陷入困難一事無成。

在某種意義上,當前區塊鏈概念被過譽了。人們想既得到中心化系統中的控制權也去中心化系統中的安全性。這個需求當然是理想的,但是現實世界卻無法完成。最終你獲得的卻是去中心化系統中的昂貴開銷和中心化系統中的錯誤模式。

區塊鏈已經被過度銷售,我們只要立刻擺脫對區塊鏈的炒作,而真正思考這一項技術,才能獲得長足的發展。

最新熱文:



640?wx_fmt=png

掃碼加入區塊鏈大本營讀者群,群滿加微信 qk15732632926 入群

640?wx_fmt=gif

瞭解更多區塊鏈技術及應用內容

敬請關注:

640?wx_fmt=gif