區塊鏈公鏈“三元悖論”專題系列之去中心化(Decentralization)
區塊鏈作為系統去中心化的一種工具,所追求的並不一定是系統的“絕對”去中心化,而是相對於中心化來說,去中心化的程度。
在上一期的內容中,我們提到了 區塊鏈公鏈“三元悖論”專題之可擴充套件性(Scalability)。本期我們將會接著討論一下區塊鏈系統中“最核心”的 去中心化(Decentrailzation)特性。
在開始前,我們先把這個話題分為以下四個方面:
一、什麼是“去中心化”
二、為什麼說“去中心化”是區塊鏈系統最核心的特性
三、我們在什麼情況下需要“去中心化”
四、區塊鏈系統“去中心化”技術的發展路徑。
什麼是去中心化(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圖表,定製專屬與您的區塊鏈資料儀表盤。
產品示例:
點選【 閱讀 】,即可獲取區塊鏈主流公鏈最新資料
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2693957/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 區塊鏈去中心化和傳統去中心化的區別區塊鏈中心化
- 區塊鏈去中心化等特點區塊鏈中心化
- 為什麼區塊鏈提倡去中心化?區塊鏈中心化
- 和數傳媒:區塊鏈技術難題“三元悖論”已經被解決了區塊鏈
- 區塊鏈鼻祖比特幣之2:可分割與去中心化區塊鏈比特幣中心化
- 區塊鏈去中心化技術詳細介紹區塊鏈中心化
- 區塊鏈專題區塊鏈
- 區塊鏈要去中心化麼區塊鏈中心化
- 區塊鏈去中心化交易所原始碼|去中心化交易系統開發區塊鏈中心化原始碼
- 談談GIFTO(GTO)區塊鏈的去中心化設計區塊鏈中心化
- 區塊鏈開發_建立區塊鏈公鏈,聯盟鏈,私有鏈區塊鏈
- 去中心化只是手段 區塊鏈目的是點對點交易中心化區塊鏈
- 去中心化區塊鏈錢包支付系統開發模式中心化區塊鏈模式
- 基於Ethereum & IPFS的去中心化Ebay區塊鏈專案開發實戰中心化區塊鏈
- 區塊鏈系列1-區塊鏈概述區塊鏈
- 區塊鏈不只有去中心化:基於 IPFS 加密的去中心化資料應用落地分析區塊鏈中心化加密
- 區塊鏈技術應用場景思考-去中心化儲存區塊鏈中心化
- 【Longhash資料分析】區塊鏈的去中心化是謊言嗎?區塊鏈中心化
- 區塊鏈,中心去,何曾著眼看君王?用Go語言實現區塊鏈技術,透過Golang秒懂區塊鏈區塊鏈Golang
- 區塊鏈安全————區塊鏈技術安全討論區塊鏈
- 程式設計師如何切入區塊鏈去中心化應用開發程式設計師區塊鏈中心化
- 區塊鏈去中心化DAPP系統開發技術(成熟技術)區塊鏈中心化APP
- 知名區塊鏈媒體:USDD代表了真正去中心化穩定幣區塊鏈中心化
- 基於區塊鏈技術的網際網路將再次去中心化、去寡頭化區塊鏈中心化
- 海南區塊鏈交易所開發。去中心化交易所開發區塊鏈中心化
- 區塊鏈系列6-區塊鏈安全與大資料區塊鏈大資料
- 區塊鏈錢包系統去中心化錢包模式開發案例詳情區塊鏈中心化模式
- 區塊鏈去中心化錢包系統開發功能定製邏輯分析區塊鏈中心化
- 區塊鏈公鏈開發,區塊鏈應用場景解決方案介紹區塊鏈
- 區塊鏈DAPP去中心繫統開發技術程式碼流程區塊鏈APP
- MAD CEO:區塊鏈技術如何在廣告科技行業做到真正去中心化區塊鏈行業中心化
- 區塊鏈專案包裝攻略,區塊鏈專案包裝運營區塊鏈
- 區塊鏈100講:區塊鏈為什麼叫“區塊”“鏈”?區塊鏈
- 公鏈,仍然是區塊鏈產業的根基!區塊鏈產業
- 區塊鏈開發:公鏈開發那些事兒區塊鏈
- 區塊鏈公鏈系統開發與發展區塊鏈
- 最近收藏的區塊鏈課程(定期更新中),全方位解讀區塊鏈,助力論壇『區塊鏈安全』區塊鏈
- 區塊鏈畢設原始碼開題論文-基於區塊鏈的餐廳管理系統區塊鏈原始碼