區塊鏈(Block Chain)結構解析

WesleyWang97發表於2018-05-14

定義

狹隘定義:區塊鏈是一個公共賬本(Public ledger),一個按照時間順序排序的交易記錄
廣義定義:區塊鏈是分散式資料儲存、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法.

區塊鏈的組成

區塊鏈是一種按照時間順序將資料區塊以順序相連的方式組合成的一種鏈式資料結構

區塊的結構

每個Block分為兩部分:區塊頭(Block Header)和區塊體( Block)

區塊頭(Block Header)

區塊頭包括三組後設資料

  • 用於連線前面的區塊、索引自父區塊雜湊值的資料。
  • 挖礦難度、Nonce(隨機數,用於工作量證明演算法的計數器)、時間戳
  • 能夠總結並快速歸納校驗區塊中所有交易資料的Merkle(默克爾)樹根資料

這裡寫圖片描述

時間戳

區塊鏈中的時間戳從區塊生成那一刻起就存在於區塊中,它對應的是每一次交易記錄的認證,證明交易記錄的真實性。

Merkle樹結構

Merkle樹的資料結構存放所有葉子節點的值,並以此為基礎生成一個統一的雜湊值。Merkle的葉子節點儲存的是資料資訊的雜湊值,非葉子節點的儲存是對其下面所有葉子節點的組合進行雜湊計算後得出的雜湊值。區塊中任意一個資料的變更都會導致Merkle樹結構發生變化,在交易資訊驗證對比的過程中,Merkle樹結構能夠大大減少資料的計算量,畢竟,我們只需驗證Merkle樹結構生成的統一雜湊值就可以了。

這裡寫圖片描述

區塊體(Block)

主要是包含交易資料(Transaction,TX)
Transactions包括一個input和多個output.並且輸入和輸出相等:input satoshi=output satoshi

input\ satoshi = output\ satoshi
.已確認的交易(或者說已經花出去的錢)被稱為Transaction identifiers(TXIDs),未確認的被稱為Unspent Transaction Outputs(UTXOs)

這裡寫圖片描述

相關文章