作者:歷史文章 / 來源:白話區塊鏈
白話區塊鏈,從入門到精通,看我就夠了!
上期【25步教您玩轉區塊鏈】課程介紹了如何從分層與解構的角度了解區塊鏈軟件系統,這期大白將帶您一起了解區塊鏈背后的偉大愿景!
1.2 區塊鏈背后的偉大愿景
今天我們將會帶著大家第一次去了解區塊鏈背后的偉大愿景,以及在這個偉大愿景中區塊鏈處在什么位置。為了講明白這件事,我們會介紹軟件系統的兩類基礎架構,相信你早有耳聞:中心化與去中心化。最后,我們會用一句話指出區塊鏈存在的意義。
1.2.1 一個支付系統
我們沿用上一課對軟件系統的分層解構方法,來對現代支付系統進行分層與解構:

看到表中的功能性實現層對應的問號了嗎?我們故意將此留空,因為接下來我們將會告訴你,不止存在一種填寫方法。
1.2.2 兩種軟件系統架構,中心化與去中心化
實現軟件系統的方法有很多,然而實現一個系統時的基本性決定之一涉及它的體系架構,即軟件組成部分的實體組織方式和實體之間的相互關系。
對于一個軟件系統而言,存在兩種截然不同的基礎架構:中心化 vs. 去中心化。

我們以上圖為例,圖中的小圓圈我們稱為節點。
我們先不考慮節點之間都是如何相連以及配合工作的,把目光放到這兩種軟件系統架構下節點的組織形式上。
右圖為中心化架構,此時系統具有一個中心節點,所有的其他節點與中心節點相連。可以發現除掉中心節點,此時沒有任何兩個節點兩兩直接相連。
左圖為去中心化架構,此時系統沒有任何中心化節點。可以發現,沒有任何一個節點與其他所有節點相連,但是每個節點至少和一個其他節點直接相連。
1.2.3 去中心化系統的優勢
-
更強大的算力
通過擴大去中心化系統的規模,加入更多的計算節點,一個去中心化系統的算力甚至可以超過一臺投資巨大的超級電腦。
-
更低的開銷
在過去的20年中,內存,cpu,顯卡,硬盤的單位價格不斷降低,只需要花費之前幾分之一的價格,就能擁有一臺數十倍于之前性能的電腦。
對于一個去中心化系統而言,一旦系統已經組建完畢,之后針對單個節點的維護成本將非常低廉。
-
更高的可靠性
去中心化系統的可靠性建立在“整個去中心化的網絡不會因為網絡中的任何單個節點的崩潰而崩潰”的基礎上。在一個去中心化的系統中,如果任何一個節點發生了故障,其他的節點可以第一時間接管故障節點的工作。
-
自然成長的能力
在一個去中心化的系統中,我們可以通過不斷接納新的自然節點來擴充網絡,這甚至可以讓網絡具有進化能力——使用更好的節點一點一點替換網絡中的舊節點。這對于一個中心化的或者單一機器的系統而言,這是無法想象的。
1.2.4 去中心化系統的劣勢
-
節點間的冗余協作
去中心化系統沒有中心節點來協調其他節點的工作,因此系統的協作管理要通過系統本身來完成,這就增加了節點之間的大量同步協作內容。相比中心化的系統而言,這些冗余的工作開銷不容小覷。
-
節點間的冗余通信
節點間的協作需要通信,而任何的通信都需要占用帶寬和計算資源,不可避免的會出現冗余通信。
-
對可靠網絡的嚴重依賴
任意一對節點間的通信方式都需要依賴網絡,而不同協議設計下的網絡都有自己的缺點和挑戰,不存在一個完美的通信網絡。所以如果沒有一個可靠的網絡,去中心化系統將會無法工作。
-
編程極度復雜
我們日常使用的所有應用都是通過在系統上進行編程來實現的,而去中心化系統本身的結構以及上面提及的三個劣勢,意味著在一個去中心化系統上進行編程并不輕松,往往極度復雜。
-
安全問題
安全是一個系統的奠基石。任何一個去中心化的系統由于存在多節點,此時系統面臨的安全風險相比中心化系統要大得多。而一個去中心化系統的節點通信限制越小,對整個系統的安全性需求就越大。
1.2.5 混合中心化與去中心化
中心化與去中心化系統是兩種系統架構設計的極端。在工程界,天才的工程師們經常會結合兩者優點提出混合方案:

上圖中提出了兩種混合方案:
-
左圖:在去中心化系統中加入中心節點
-
右圖:在中心化系統中使用去中心化系統作為中心節點
那么如何區分一個系統是中心化還是去中心化的呢?大白告訴你,就一句話:
如果一個系統中存在一個節點,該節點的損壞會使得整個系統癱瘓,那么這個系統就是中心化的。
1.2.6 區塊鏈的意義
回到本文一開始大白留空的表格,我們應該采用什么實現方法,來確保用戶對一個支付系統的所有需求都能得到完美滿足呢?答案是:使用區塊鏈。
一個系統采用何種架構來實現,是基于對這個系統提出的要求來進行選擇的。對于一個支付系統而言,使用去中心化的系統是最佳的實現方式。那么什么是最佳的去中心化的實現方式呢?答案還是:區塊鏈。
大白在這里先用一句話描述區塊鏈在去中心化的系統中的作用:
滿足并確保去中心化系統完整性的工具。
至于其他的,咱們下周五見!
作者 | 張初陽 李晨
編輯 | WangMe

下期預告
下周五:大白課程 | 25步教您玩轉區塊鏈第1步(下)
——認識區塊鏈的潛力