區塊鏈演算法

2022-04-03 06:07:39 字數 1671 閱讀 4145

交易記錄就是這個樣子的

賬本可以理解為一組交易記錄,乙個下列結構稱之為乙個區塊hash值-賬本的摘要,序號、記賬時間

交易記錄1

交易記錄2

...指向下乙個區塊的指標

第乙個區塊

hash(賬本) = hash值

後續區塊

hash(前乙個賬本的hash值, 新賬本) = 新的hash值

#產生新的乙個區塊

區塊使用鍊錶連線起來乙個參與交易記錄的節點計算出乙個新的區塊後,會廣播給相鄰的計算儲存節點。在不同計算儲存節點核對資訊時候,只需要核對最後乙個區塊的的hash值即可

乙個計算節點有兩個關鍵的賬戶憑證,就是錢包位址(公鑰)和私鑰,

支付過程:一條交易記錄

deal = 

**對賬戶進行簽名,不能洩露私鑰##

signature = sign(hash(deal), private-key)
驗證簽名,驗證方會獲取交易記錄和簽名

if (hash(deal) == verify(signature, s-address)#s-address就是public-key

說白了這裡就是乙個非對稱加密機制用於簽名的應用。錢包位址是公鑰、簽名過程用的是私鑰對交易記錄的hash值進行簽名,驗證方可以獲得公鑰和簽名,從而解出來交易記錄的hash值,比對成功即可驗證簽名方的確是其所聲稱的賬戶

#真實記賬

hash(last_hash, deal, random) == 000..000xxsjadhkasdfgkjadsd

#要求引入隨機數,使得對交易記錄的hash要滿足結果開頭為n個0

#備註:這裡面的交易記錄集,是系統收集的網路上還沒有被記賬的交易行為,然後驗證交易記錄的有效性(驗證餘額和簽名),並新增一筆給自己轉賬的交易(btc目前轉給自己12.5btc),如果ok的話。自己也會獲得12.5btc。

如果有兩個節點同時記賬成功怎麼辦,按照最長鏈為標準

#chain-a

1->2->3->4a

#chain-b

1->2->3->4b

#一般乙個節點收到乙個鏈,收到兩個鏈的則會選擇其一,乙個為備用。

#不同的節點會在不同的鏈上繼續工作-挖礦。

#先收到下乙個記賬成功的就達成共識了。

#例如1->2->3->4b->5b #那麼b就獲得了記賬權

#如果先收到收到了5b,但是沒有收到4b,則5b會作為乙個孤塊留存

區塊鏈 區塊鏈雜湊演算法

雜湊演算法是區塊鏈中保證交易資訊不被篡改的單向密碼機制。雜湊演算法接收一段明文後,以一種不可逆的方式將其轉化為一段長度較短 位數固定的雜湊資料。它有兩個特點 加密過程不可逆,意味著我們無法通過輸出的雜湊資料倒推原本的明文是什麼 輸入的明文與輸出的雜湊資料一一對應,任何乙個輸入資訊的變化,都必將導致最...

區塊鏈100講 區塊鏈的靈魂 共識演算法

在解釋拜占庭將軍問題的時候提到 共識機制 本期 區塊鏈100講 我們來說說被稱為區塊鏈靈魂的 共識演算法 看上去是不是一頭霧水?那麼我這裡就給大家乙個比較能通俗易懂的解釋 所謂的共識機制,就好比大家在開一次 會議 最後達成乙個一致,但是達成一致的途徑有很多種,這也就是後續區塊鏈的主鏈有各種各樣的共識...

區塊鏈MerkleTree演算法實現

merkletree被廣泛的應用在位元幣技術中,merkle tree 是一種資料結構,用於驗證在計算機之間和之間儲存,處理和傳輸的任何型別的資料。目前,merkle樹的主要用途是確保從對等網路中接收的資料塊未受損和未改變,和檢查其他對等網路沒有撒謊傳送假資料塊。位元幣中每個塊中都包含了所有交易的集...