區塊鏈公鏈「三元悖論」專題系列之去中心化(Decentralization)

區塊鏈做爲系統去中心化的一種工具,所追求的並不必定是系統的「絕對」去中心化,而是相對於中心化來講,去中心化的程度。

在上一期的內容中,咱們提到了區塊鏈公鏈「三元悖論」專題之可擴展性(Scalability)。本期咱們將會接着討論一下區塊鏈系統中「最核心」的_去中心化(Decentrailzation)特性_。數據庫

在開始前,咱們先把這個話題分爲如下四個方面:編程

1、什麼是「去中心化」安全

2、爲何說「去中心化」是區塊鏈系統最核心的特性網絡

3、咱們在什麼狀況下須要「去中心化」架構

4、區塊鏈系統「去中心化」技術的發展路徑。socket

什麼是去中心化(Decentrailzation)

在一個區塊鏈系統中,「去中心化」能夠簡單定義爲:經過共識機制的形式,實現系統中全部節點各爲中心,在不受任何組織制約的狀況下,可以對相鏈接的其它節點產生影響的一種狀態。分佈式

因此,在一個徹底去中心化的區塊鏈系統中,節點間能夠自由鏈接,造成新的鏈接單元。任何節點均可成爲階段性的中心,但不具有強制性的控制功能。節點之間的影響,會經過網絡造成非線性因果的關係。工具

所以,使系統造成扁平化、開放化、平等化的形態,以達到各節點在系統中能夠平等且自由交換數據的目的,就是「去中心化」賦予區塊鏈系統的最大優點。佈局

去中心化與分佈式架構的區別性能

這裏要特別強調一下去中心化與分佈式架構的區別:分佈式架構是一種保證系統中各節點之間互聯互通的架構,其主要特色是,當任何一個節點出現故障時其它節點仍然可以繼續工做,核心目的是提高系統的容錯性;分佈式架構重點在於任務分配和結果的彙總,強調的更可能是系統中各節點的佈局,而去中心化更多強調的是一種狀態。

在大部分狀況下,去中心化是分佈式架構的子集;因此,若是咱們說BTC是分佈式帳本或者去中心化帳本,都是沒有問題的。

爲何說「去中心化」是區塊鏈系統最核心的特性?

當前,咱們平常使用的系統基本上都是中心化的,而中心化的最大問題就是,若是系統的「中心」出了問題,那麼整個系統就會崩潰,因此爲了不這種狀況的發生,傳統的中心化系統都會花很大力氣去加固本身的系統,以讓系統能力足夠強大。

而區塊鏈這個概念從誕生之日起,就是以免中心化問題做爲出發點的,雖然從邏輯上看,區塊鏈是全網統一的中心化帳本,但不管是系統架構仍是治理方式上,區塊鏈系統都是去中心化的,相比於中心化系統而言,架構和治理上的去中心化,爲區塊鏈帶來的最大好處就是:容錯性、抗攻擊力和防合謀能力。

區塊鏈做爲系統去中心化的一種工具,所追求的並不必定是系統的「絕對」去中心化,而是相對於中心化來講,去中心化的程度;而正是因爲「去中心化」所帶來的平等,才賦予區塊鏈透明、公開的特性;若是剔除區塊鏈的去中心化因素,由一個或幾個中心節點來控制整個系統,則區塊鏈系統就會與傳統的分佈式系統無異,區塊鏈技術也就變的沒有太大意義。

因此能夠說,去中心化是區塊鏈最核心的特性。

咱們在什麼狀況下須要「去中心化」?

在實際場景中,一般有如下兩種典型場景,是能夠用區塊鏈做爲工具來進行「去中心化」的,一是該場景已有中心,咱們想要去掉中心(或是下降中心化程度);二是該場景沒有中心(或是沒有合適的中心),咱們想經過一套工具去實現該場景下的統籌管理。

第一種狀況下的去中心化的過程,更像是從「相信權威」轉向「達成共識」的一個過程,當咱們須要在保護隱私的狀況下進行信息或物品的交換(好比匿名交易,匿名聊天)時,中心化的系統勢必會讓咱們有一種「被監控」的感受,這時最好的選擇就是採用去中心化的工具,在沒有第三方的狀況下,交易雙方經過某種協議達成共識,並完成交換;事實上,因爲任何中心化系統都不可能給用戶提供絕對的隱私性和匿名性,因此區塊鏈技術甚至是「惟一有可能」實現絕對隱私或匿名的技術。

第二種狀況下,一般是由於該場景下的各參與方之間由於利益衝突等緣由,沒有足夠的信任關係,或是該場景下總體的既得利益過小,以致於不足以創建起一箇中心化的權威機構;在這種狀況下,去中心化工具解決的核心問題,是經過打造一套共識機制,使場景下的各參與方彼此信任,從而搭建起該場景下本來不存在的生產關係。

(這種狀況在現實中比較常見,好比跨國的一些大型金融機構之間進行合做時,就不太容易找到合適的第三方進行信用委託;或者是一些小範圍內的遊戲、活動過程當中,若是想要找到一個絕對中立的第三方進行仲裁,一般會由於價格談不攏而做罷;然而區塊鏈爲上述狀況提供了可能,而且在現實場景中已經存在一些案例,例如ripple和r3,都是這類組織,ripple解決的就是各銀行在跨國交易場景中的結算問題,各銀行在處理跨國交易的結算業務中,通常很難找到一個信得過的中介機構進行擔保,這就致使了業務總體效率的低下,而ripple經過區塊鏈技術解決了這一問題,這其中很重要的一部分,就是利用了「去中心化」這個特性。)

所以,只有從去中心化的角度來考慮,才能找到真正適用區塊鏈系統的應用場景,如跨組織間的積分通兌場景、以及對自然分散的能源行業進行統籌管理的場景等;反之,若是一個場景不存在去中心化的可能,那麼傳統的中心化系統必定會是更好的選擇。

區塊鏈系統「去中心化」技術的發展路徑?

去中心化技術是伴隨着互聯網應用一塊兒發展的,從最先的Napster到BitTorrent,再到咱們今天的區塊鏈系統,去中心化技術經歷了一代又一代的更新和變化,其中首先要提到的技術就是p2p網絡。

P2P網絡:P2P(Peer to Peer)網絡也稱對等網絡,是一種在對等者(Peer)之間分配任務和工做負載的分佈式應用架構,通常使用socket進行網絡編程;在P2P網絡中的節點既能夠是服務端,也能夠是客戶端,這就致使P2P網絡中的每一個節點間都是相互平等的,這與區塊鏈系統「去中心化」的概念高度重合;因此,在區塊鏈系統中,P2P技術是實現去中心化特性中至關重要的一部分。

在區塊鏈系統的設計中,「去中心化」特性的最初目的是爲了提高系統的生存能力,好比「去中心化「能夠增長系統的彈性、容錯性,抵抗外部攻擊等;但當系統發展到了必定的程度,好比在解決了系統生存問題以後,區塊鏈系統就會進化出更多的東西,進入求發展的階段。

而在發展過程當中,「去中心化「技術主要遇到的設計挑戰有如下幾個方面:

  • 共識的達成:在一個「去中心化「的區塊鏈系統中,共識機制的改變(包括系統的治理方式,價值分配等)是須要基於系統參與者之間達成一致共識的狀況下才能進行,若是不能達成共識,則任何系統參與者均可以另建一個社區、一條鏈;這就是共識機制的去中心化過程,也稱做區塊鏈公鏈系統的硬分叉過程。而知足這種要求,則須要系統設計者在具體場景中,尋找到一個平衡點,以保證既能讓系統參與者產生一致的目標,又不用擔憂本身在參與系統當中的付出與收穫是否公平。
  • 容錯機制:當區塊鏈系統發展到必定階段後,隨着節點數量愈來愈多,確定會出現一些錯誤節點,這些錯誤節點會向系統傳輸錯誤數據以干擾系統的正常運行,這時就須要一套容錯機制來保證系統的正常運行;一般來講,區塊鏈系統去中心化的程度越高,可容納錯誤節點的能力也就越高;
  • 帶寬門檻:對於每個想要加入系統的節點來講,網絡帶寬的參與門檻越低,能加入系統的人就越多,也越有利於去中心化;而對於區塊鏈系統來講,去中心化程度越高,主動治理系統的付出就越少,反之就須要投入更多的精力去主動進行系統治理。

目前應對上述問題的具體方法主要分爲兩類:一是經過修改共識機制的方式,使系統各節點間能夠更高效的進行驗證(上一篇文章了咱們介紹了經過改變共識機制提升TPS的方法),同時有助於提高系統的容錯性;二是經過零知識證實、同態加密、安全多方計算(MPC)等密碼學相關技術,使得節點間進行驗證的時候,沒必要驗證區塊的完整信息,而只需驗證區塊頭(PreHash、Hash、TimeStamp)及所使用的密碼學相關信息便可,大大下降了節點所需帶寬,同時有利於共識的達成。

以上兩類比較有表明性是混合共識機制(經過改變共識機制的方式),以及零知識證實技術(經過密碼學技術的方式)。

混合共識機制:顧名思義,混合共識(Hybrid Consensus)機制就是對不一樣的共識機制各取所長;使用混合共識機制解決去中心化的方法簡單來講,就是利用PFBT(Practical Byzantine Fault Tolerance,實用拜占庭容錯機制)的高效性來更新帳本;用PoW (Proof of Work,工做量證實機制)的嚴謹性來驗證交易,並輔助監督PBFT節點動做。

在此機制下,系統將交易分紅兩層處理:一層是寫入層,使用PBFT共識進行帳本的寫入,故帳本更新速度快;另外一層是監督層,使用PoW驗證交易,節點能夠自由加入或退出系統,經過貢獻算力來爭奪交易驗證權,同時監督寫入層中PBFT節點動做是否有誤;這種狀況下,即便當PBFT自身的協議失效(例如必定數量的節點被攻擊者操縱),也能夠經過PoW 鏈對寫入層進行重啓與問題追溯。PBFT保證了帳本快速更新的同時促進了節點間的高效驗證,而PoW在保證了系統容錯性的同時促進了節點間共識的達成。

固然,PBFT+POW的混合共識機制也會存在一些須要優化的地方,好比在系統運行一段時間後,極可能會發生PBFT帳本領先PoW過多的狀況,致使PoW的監督驗證出現延緩;但混合共識機制做爲解決區塊鏈系統去中心化的一種創新方式,其思路必須值得確定。

混合共識(Hybrid Consensus)

零知識證實技術:零知識證實(Zero-Knowledge Proof)技術是一種基於機率的驗證方法,目的是讓證實者既能充分證實本身是某種權益的合法擁有者,又不須要泄露任何有用的額外信息(好比隱私信息等),最終實如今「給驗證者的知識爲零「的狀況下證實本身。

比較典型的一個例子是:假設A有兩個不一樣顏色的球,A的一個色盲朋友B不相信A的兩個球顏色不一樣,A如何才能讓B相信這是真的呢?利用零知識證實的辦法以下:

A把兩個球給B,B每隻手拿一個球

⬇️

A轉過身背對B

⬇️

B在A轉身後,進行一次「是否交換手中兩個球位置「的動做決定,動做決定以後B讓A轉過身

⬇️

A轉過身,B問A是否交換過球

⬇️

若是A回答錯誤,則B不相信;不然,重複100次實驗,若是A都回答正確,則B相信這兩個球是不一樣顏色的

爲何?若是兩個球顏色不同,那麼A每次都應該能分辨;若是兩個球顏色同樣,則無論B有沒有交換過,A都沒法分辨,只能亂猜。這樣每次猜對的機率只有1/2,重複100次,都猜對的機率將小到能夠忽略,因此A將必然會在過程當中猜錯一次。

以上就是交互式零知識證實的一個例子,上述證實有三個特色:

1)交互過程,整個證實須要A和B進行交互才能完成;

2)具備隨機性,即B每次隨機決定是否交換球;

3)零知識,雖然B最終相信了這兩個球是不一樣顏色的,但B仍是不知道這兩個球是什麼顏色的。

零知識證實的好處在於,基於密碼學技術的完備性、合理性,以及該技術所特有的「零知識「性,能夠更好的促進節點間共識的達成,同時有效下降節點參與系統所需帶寬。

目前,零知識證實技術的最大問題,在於使用場景受限比較多,通用性比較差,實際落地的過程當中大都須要針對具體場景,對系統進行大量的定製化開發。

零知識證實(Zero-Knowledge Proof)

在縱觀整個區塊鏈「去中心化」的技術發展過程當中,能夠發現,去中心化即不是一個起點,也不是一個終極狀態,而只是一條路徑;這條路徑須要務實和靈活,並與現實世界的法律、規則體系相結合。將來,相信去中心化的區塊鏈系統與中心化互聯網系統必定是能夠相得益彰的,區塊鏈系統可使中心化系統下的部分業務更加公開、透明;中心化機構也能夠做爲參與方接入到區塊鏈系統中,爲區塊鏈網絡上的其餘參與者提供更加專業化的服務。

最後,去中心化不是目的,而是人們在特定場景下,實現目標的一種選擇。


來~插播一條小廣告

關於BDS

京東智聯雲區塊鏈數據服務【BDS】:京東智聯雲將區塊鏈的鏈式、非結構化數據經過技術手段進行結構化存儲,實時同步到高性能數據庫中,並據此推出了一款可視化的區塊鏈數據查詢服務(BDS),幫助用戶完成簡單的條件查詢和複雜的SQL原生查詢。

產品特色:

  • 涵蓋了 BTC、ETH、EOS、LTC、XRP、BCH 等幾十個知名區塊鏈項目,自定義了涉及用戶、交易、區塊等 100+ 獨家數據指標,聯網便可查詢鏈上實時數據,即開即用,方便快捷。
  • 支持標準SQL查詢語句,可輕鬆實現複雜的查詢邏輯;依託京東智聯雲的軟硬件及架構支持,同時具有查詢速度快、查詢效率高的特色。
  • 支持圖形化、可視化界面,經過點擊和拖拽的交互方式進行數據查詢,可實時生成各種BI圖表,定製專屬與您的區塊鏈數據儀表盤。

產品示例:


點擊【閱讀】,便可獲取區塊鏈主流公鏈最新數據

相關文章
相關標籤/搜索