【自學區塊鏈】筆記 01:什麼是區塊鏈
阿新 • • 發佈:2022-04-12
區塊鏈的概念
時間戳伺服器對以區塊(Block)形式存在的一組資料實施隨機雜湊並加上時間戳,然後將該隨機雜湊進行廣播,就像在新聞或世界性新聞組網路(Usenet)的發帖一樣。顯然,該時間戳能夠證實特定資料於某特定時間是的確存在的,因為只有在該時刻存在了才能獲取相應的隨機雜湊值。每個時間戳應當將前一個時間戳納入其隨機雜湊值中,每一個隨後的時間戳都對之前的一個時間戳進行增強(Reinforcing),這樣就形成了一個鏈條(Chain),即區塊鏈,如圖所示:
構成區塊鏈的區塊是基於密碼學生成的,每一個區塊包含了前一個區塊的雜湊值(由加密演算法生成的)、對應的時間戳記錄以及交易資料等資訊(對區塊結構的詳細介紹參見下一節相應內容)。本質上,區塊鏈是包含這些交易記錄的分散式系統,類似於一個賬本。所以,區塊鏈也被稱為分散式賬本系統。
不過,分散式賬本系統是區塊鏈狹義上的含義。廣義上來說,區塊鏈是一個統稱,除了基於區塊鏈結構的分散式賬本系統,它還包括共識機制、智慧合約、點對點網路、自治社群等一系列和分散式賬本相關的功能。可以將區塊鏈看作是很多個技術的組合。
區塊的概念
1. 區塊的含義
區塊是區塊鏈的組成單元,區塊鏈就是由一個個區塊組成的。
從本質上說,區塊鏈中的區塊是由一系列特徵值和一段時間內的交易記錄組成的一個數據結構。
2. 區塊的結構
區塊的資料結構由區塊頭和區塊體組成。區塊頭包含了當前區塊的特徵值,區塊體中包含的是實際的交易記錄資料。
-
區塊頭的組成
欄位 含義 長度(位元組) 說明 ver 版本 4 區塊版本號 pre_block 父區塊雜湊值 32 前一區塊的雜湊值 mrkl_root Merkle根 32 該區塊中交易的Merkle樹根的雜湊值 time 時間戳 4 該區塊產生的近似時間,精確到秒的UNIX時間戳,必須嚴格大於前11個區塊時間的中值,同時全節點也會拒絕那些超出自己兩個小時時間戳的區塊 bits 目標難度 4 該區塊工作量證明演算法的難度目標,已經使用特定演算法編碼 nonce Nonce 4 為了找到滿足難度目標所設定的隨機數,為了解決32位隨機數在算力飛昇的情況下不夠用的問題,規定時間戳和coinbase交易資訊均可更改,以此擴充套件nonce的位數 -
區塊體
區塊體主要包括交易數量(n_tx)、區塊大小(size)和長度不定的交易記錄(tx欄位包含的交易列表)等資訊。但這只是比特幣中的區塊體結構,實際上區塊體中可以包括任何內容,比如以太坊中的區塊體中除了交易資料還包含智慧合約。