區塊鏈的分佈式系統

區塊鏈是一個須要長時間接觸學習的東西,因此這個也可能變成一個系列了,學習剛剛起步,定時分享一些心得,只要能進步就行。redis

簡單看了一下區塊鏈的底層技術,能夠看做是一個分佈式系統,因而全部分佈式系統都避免不了CAP原理,區塊鏈的設計放棄了CAP中的一致性,採用最終一致性。算法

這個一致性相似於不少分佈式協調中間件的算法,基本能夠理解爲是另外一個Paxos算法的變種,卻是沒有什麼稀奇的。網絡

以前說過區塊鏈的核心是:分佈式,去中心化,不可逆,防篡改。分佈式

其實去中心化應該叫弱中心化,去中心化在技術底層是全部單獨的節點,沒有master的概念,cassandra,redis cluster都有去中心化的概念,經過謠言方式進行數據同步,P2P通訊應該就是一個RPC調用,這兩塊卻是也沒有多少稀奇。學習

可是之因此不是一個徹底的去中心化,主要考慮到區塊鏈將來的應用場景不單單是技術底層,而是須要有必定的現實生活場景作依託,因此在現實場景中,若是沒有一個強大的中心化機構作背書,很可貴到你們的信任,因此這個中心化機構起到必定的背書做用。區塊鏈

其實我比較感興趣的是區塊鏈如何作到了,不可逆防篡改。設計

基本看來仍是結合了數學知識加上計算機密碼學知識,結合Hash方式,加上隨機數達到必定的隨機目的,加上時間戳能夠作到防篡改。中間件

好比每隔10分鐘全網會進行一次有必定難度的hash計算力比拼,只有提交本身hash結果並經過網絡驗證的一個節點加入新的鏈中,這個過程叫作工做證實。同步

而驗證過程則經過Merkle樹驗證。數學

上升到博弈論動機來講,主要基於篡改的成本遠大於收益的策略,成本是重建一個更長的區塊鏈,同時須要更大的計算力。

相關文章
相關標籤/搜索