去中心化
當今世界的所有貨幣交易都是有一個第三方可信任的金融機構(gòu)提供服務處理,任何人不能訪問由這個第三方機構(gòu)中心化存儲的數(shù)據(jù),理論上來說如果這個金融機構(gòu)發(fā)生了欺詐或倒閉,那么存儲在這個機構(gòu)中的貨幣,以及所做的交易就會存在風險。 當然比特幣的去中心化,不是因為擔心這種風險,而是根本就不需要這個第三方機構(gòu)了。這也是區(qū)塊鏈的強大顛覆性之一,凡是需要某個第三方可信任的機構(gòu)需要安全保存處理的數(shù)據(jù),都可以去中心化安全存儲,所有人都可以訪問。
從技術角度分析,如何做到去中心化?
中心化對應的就是分布式,去中心化就是分布式。把原先存儲在某個第三方機構(gòu),中心化存儲的數(shù)據(jù),進行分布式存儲。
分布式存儲要解決的3個基本問題
1. 網(wǎng)絡結(jié)構(gòu)
2. 數(shù)據(jù)不可篡改性
3. 最終一致性
網(wǎng)絡結(jié)構(gòu)
去中心化的分布式存儲是指整個發(fā)行的電子貨幣,以及貨幣交易數(shù)據(jù)由不同機構(gòu),不通個人的成千上萬的計算機共同存儲,共同維護了同一份相同的數(shù)據(jù),只有共同維護的這份相同的數(shù)據(jù)才是認為最終正確的數(shù)據(jù),任何個人篡改自己的數(shù)據(jù)都沒有意義,并且存儲的數(shù)據(jù)所有人都可訪問。
如果做為架構(gòu)師,你會選擇什么樣的網(wǎng)絡結(jié)構(gòu)去實現(xiàn)這個分布式存儲?一種方式是可采用類似Hadoop中HDFS的方式,由某個中心節(jié)點NameNode進行協(xié)調(diào)訪問,但這種方式就會帶來單點風險,破壞了中心節(jié)點,整個體系都將不可訪問?;蛘卟捎肅assandra無中心化投票機制維護整個集群狀態(tài),但是這種方式在全球化開放式部署中會導致根本無法收斂。
所以比特幣采用了一種更加簡單直接的方式,利用P2P協(xié)議維護整個比特幣網(wǎng)絡集群,不需要某個中心節(jié)點協(xié)調(diào)節(jié)點之間的通信,不需要所有機器投票維護集群狀態(tài)。而是通過P2P協(xié)議進行節(jié)點之間的數(shù)據(jù)傳輸,任何節(jié)點都可以隨時加入或者離開比特幣網(wǎng)絡集群,而不會對比特幣網(wǎng)絡集群產(chǎn)生影響,也不需要特意去修復這個集群中的故障機器。
利用P2P協(xié)議進行節(jié)點之間數(shù)據(jù)傳輸主要有兩個功能點:
a. 把需要存儲的數(shù)據(jù)廣播到所有節(jié)點上進行儲存。
b. 查詢整個網(wǎng)絡集群中所有節(jié)點的最新數(shù)據(jù),如果自己節(jié)點的數(shù)據(jù)與大部分節(jié)點的數(shù)據(jù)不一致,則更新自身的數(shù)據(jù)與大部分節(jié)點存儲的數(shù)據(jù)一致。
比特幣是去中心化存儲,最大的風險是整個比特幣網(wǎng)絡集群被破壞,篡改了整個網(wǎng)絡存儲的數(shù)據(jù)。但是上述第二個功能點能夠有效的防止這種風險,由于系統(tǒng)會自動更新為整個集群中大部分節(jié)點存儲的相同數(shù)據(jù),所以要篡改數(shù)據(jù),必須要同時篡改整個網(wǎng)絡一半以上的數(shù)據(jù),這不是說做不到,但是比特幣利用區(qū)塊鏈的方式再加上利益博弈機制,當你擁有這種能力的時候,也不需要去做篡改這種投入產(chǎn)出比這么低的事了,在數(shù)據(jù)不可篡改性一節(jié)中再詳細描述。