區塊鏈是由一個個區塊根據各自產生的時間順序相互連接形成的鏈狀儲存結構,區塊就是這個結構中的基本資料儲存單元。
什麼是區塊鏈?區塊鏈有什麼特色?請參考「什麼是區塊鏈」章節。
區塊作為區塊鏈結構中的基本結構單元,由包含區塊本身身份資訊的「區塊頭」以及包含資料庫資訊的「區塊主體」構成。與傳統資料庫結構相比,區塊主體就類似於資料庫每一頁的具體內容,而區塊頭則類似於用於定位資料所在位置的頁碼。
區塊頭主要包含上一個區塊所有資料的加密摘要、該區塊的產生時間、以及該區塊主體的加密摘要。
加密摘要是透過一種區塊鏈領域常用的單向加密演算法產生的,我們一般稱之為「雜湊演算法」或「雜湊函數」(Hash Function)。它的運作方式類似於對給定內容進行總結歸納並形成摘要。之所以稱之為單向加密演算法,是因為當我們知道上一個區塊中包含的所有資料時,可以輕易地產生摘要。但如果我們只獲得了一份摘要,想要精確地推算出上一個區塊的所有資料是非常困難的。我們將一段給定的資料透過雜湊演算法產生的值稱為這段資料的「雜湊值」(Hash Value)。
想要更深入了解雜湊演算法的原理、技術及運作方式,請參考Investopedia
透過雜湊演算法的加密,後生成的區塊始終需要依賴上一個區塊資料以產生區塊頭,區塊鏈也因此實現了區塊按照首尾相連的鏈狀構造。同時,當一段資料被記錄在某一區塊後,從下一區塊開始,將會不斷與其他資料組合並加密為新的雜湊值、記錄在後續的區塊中。區塊鏈也透過這種方式提高了數據的竄改難度。
還記得我們在介紹區塊鏈時說「一個個區塊根據各自產生的時間順序相互連結」嗎?這種說法其實並不準確,區塊其實是透過哈希演算法和區塊頭結構連結的。但由於時間上後產生的區塊總是依賴先產生區塊的數據,因此間接形成了時間順序排列。
在區塊鏈領域中,我們一般將某一區塊的上一個區塊,也就是該區塊的區塊頭中包含的、經過雜湊演算法加密的區塊,稱為「父區塊」(Parent Block)。當某一區塊鏈尚未產生第一個區塊時,由於不存在父區塊,因此後續的區塊也無法產生。這時該區塊鏈的創始團隊一般會產生該區塊鏈的第一個區塊,這個區塊不包含任何父區塊的哈希值,我們稱這個區塊為「創世區塊」( Genesis Block)。創世區塊的產生一般代表該區塊鏈正式開始運行,創世區塊中的資料將被加密並記錄在該區塊鏈後續所有的區塊中。
例如:2009 年 1 月 3 日,中本聰在芬蘭赫爾辛基的一個伺服器上產生了比特幣網路的創世區塊,標誌著比特幣網路的正式誕生。中本聰在這個區塊上留下了一句話,「The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.」(泰晤士報當日的頭條標題:財政大臣正處於銀行業第二輪救助計劃的邊緣。)