區塊鏈數據的基本組成包括什么?
一、區塊
區塊作為區塊鏈的基本結構單元,由包含元數據的區塊頭和包含交易數據的區塊主體構成。
區塊頭包含三組元數據:
1. 用于連接前面的區塊、索引自父區塊哈希值的數據;
2. 挖礦難度、Nonce(隨機數,用于工作量證明算法的計數器)、時間戳;
3. 能夠總結并快速歸納校驗區塊中所有交易數據的Merkle(默克爾)樹根數據。
區塊鏈系統大約每10分鐘會創建一個區塊,其中包含了這段時間里全網范圍內發生的所有交易。每個區塊中也包含了前一個區塊的ID(識別碼),這使得每個區塊都能找到其前一個節點,這樣一直倒推就形成了一條完整的交易鏈條。從誕生之初到運行至今,全網隨之形成了一條唯一的主區塊鏈。
二、哈希算法
哈希算法是區塊鏈中保證交易信息不被篡改的單向密碼機制。哈希算法接收一段明文后,以一種不可逆的方式將其轉化為一段長度較短、位數固定的散列數據。
它有兩個特點:
1. 加密過程不可逆,意味著我們無法通過輸出的散列數據倒推原本的明文是什么;
2. 輸入的明文與輸出的散列數據一一對應,任何一個輸入信息的變化,都必將導致最終輸出的散列數據的變化。
在區塊鏈中,通常使用SHA–256(安全散列算法)進行區塊加密,這種算法的輸入長度為256位,輸出的是一串長度為32字節的隨機散列數據。
三、公鑰和私鑰
在區塊鏈的話題中,我們還經常聽到這樣的詞匯——公鑰和私鑰。這就是俗稱的不對稱加密方式,是對以前的對稱加密方式(使用用戶名與密碼)的提高。
四、時間戳
區塊鏈中的時間戳從區塊生成的一刻起就存在于區塊之中,它對應的是每一次交易記錄的認證,證明交易記錄的真實性。
五、Merkle樹結構
區塊鏈利用Merkle樹的數據結構存放所有葉子節點的值,并以此為基礎生成一個統一的哈希值。Merkle樹的葉子節點存儲的是數據信息的哈希值,非葉子的節點存儲的是對其下面所有葉子節點的組合進行哈希計算后得出的哈希值。