區塊鏈原理

1。區塊鏈是什麼:

區塊鏈本質上是在多個分散式節點間傳遞賬本(價值/資料歸屬權)資訊並透過一定的共識機制達成一致,建立信任關係的技術

分散式,不存在中心伺服器,去中心化

P2P對等網路

在彼此不信任的節點間透過共識演算法建立信任關係

在鏈式資料結構和加密演算法保證資料的不可篡改

2。區塊鏈的技術棧

區塊鏈賬本(資料結構)

區塊鏈原理

共識機制(分散式一致性)

激勵機制: 人之初,性本善, 給出獎勵,大部分節點都是好人,比特幣會有獎勵給到打包資料的人(挖礦)

隨機性: 打包資料的人是隨機出來的

PoW(工作量證明):根據每個節點的計算能力來決定沒睡的計算力強,你就獲得打包資料的權利,比特幣力的PoW共識協議 比如擲骰子

PoS(股權權益證明):根據每個節點具有的資源決定,所用到的資源不能被壟斷,誰投入的資源多,誰優先獲得打包權

Paxos演算法(難懂,各種證明,很難用程式碼實現出來,就是少數人服從多數)

Raft演算法

PBFT演算法

3。加密演算法(包含很多加密演算法)

區塊雜湊:整個區塊資料的雜湊值

Merkle Tree(梅克爾樹):

區塊鏈原理

所有的資料塊按配對儲存然後雜湊指標儲存在樹結構上的父節點, 父節點的雜湊指標又再配對作為輸入產生新的雜湊指標作為父節點

公開金鑰演算法(數字簽名):(sk,pk) := generateKeys(keySize),sig := sign(sk, message), isValid := verify(pk, mesasge, sig)

區塊鏈原理

金鑰生成函式生成一對金鑰,私鑰sk用來對資料簽名,公鑰pk分發給所有用拿來做簽名校驗

4。腳本系統

比如以太坊的智慧合約,處理業務資料,比如訂單,物流資訊,財務資訊等

5。網路路由

P2P對等網路