區塊鏈100講:區塊鏈爲何叫「區塊」「鏈」?

image

《區塊鏈100講》第1講咱們用一個村裏的帳本解釋了什麼是區塊鏈,今天繼續第2講,看看什麼是「區塊」,它們是怎麼「鏈」起來的,「區塊」裏包含了什麼?算法

1

區塊鏈由區塊連接而成

**區塊鏈由一串使用密碼學算法產生的區塊連接而成。**每個區塊上寫滿了交易記錄,區塊按順序相連造成鏈狀結構,也就是區塊鏈大帳本。數據庫

區塊鏈技術把數據庫中須要存儲的數據分紅了不一樣的區塊。以比特幣爲例,礦工在生成新區塊時,須要根據前一個區塊的哈希值、新交易區塊和隨機數,來計算新的哈希值和隨機數,每一個區塊經過特定的信息連接到上一區塊的後面,先後按時間順序鏈接起來呈現一套完整的數據。也就是說每個區塊都是在前一個區塊數據的基礎上生成的,該機制保證了區塊鏈數據的惟一性網絡

每一個區塊鏈數據庫本質上是一個按照時間順序串聯起來的事件鏈,它使用協議規定的密碼機制進行了認證,保證不會被篡改和僞造數據結構

由於交易記錄細微的變化也會完全改變哈希值的結果,因此礦工在進行算力競爭的時候沒法做弊,每一個礦工都必須等前一個區塊生成以後才能根據前一個區塊的數據開始計算符合條件的隨機數,保證了挖礦的公平性。分佈式

2

區塊結構

區塊是使用密碼學方法產生的數據塊,數據以電子記錄的形式被永久儲存下來,存放這些電子記錄的文件咱們就稱之爲**「區塊(block)」**。函數

區塊是區塊鏈的主要數據存儲結構,一個區塊包含區塊頭和區塊體兩個部分。學習

image

(來源於否子戈博客)區塊鏈

而區塊頭則是區塊的重頭戲。對於一個區塊而言,它就是一個特殊的數據結構。區塊頭包含了一些固定信息:動畫

  • 版本(客戶端版本,每次升級客戶端軟件,這個信息就會不同)。3d

  • 塊高度(其實就是表示這是鏈中的第幾個區塊)。

  • 塊哈希(這個區塊的hash值,是挖礦獲得的),上一個塊的塊哈希(這個字段是重點中的重點,是造成鏈表結構的關鍵)。

  • 時間戳(區塊建立時間)。

  • 難度和Nonce(這兩個字段和挖礦有關,區塊鏈100講之挖礦會詳細介紹)。

  • merkle root(區塊體的merkle根hash值,區塊鏈100講之merkle樹會詳細介紹)。

除了這些字段,若是作一個本身的區塊鏈,還能夠添加一些其餘信息到區塊頭中。以比特幣的區塊鏈爲例,每一個區塊記錄了這幾個內容:神奇數、區塊大小、數據區塊頭部信息、交易計數、交易詳情。

image

(來源於動脈網)

區塊體****是保存具體內容的位置,在比特幣的區塊鏈中,區塊體保存的是一段時間的交易信息。在其餘區塊鏈中,這裏可不必定保存的是交易信息,多是其餘信息,總之區塊體是保存該區塊鏈用來作什麼業務的具體業務信息。

在部分區塊鏈實現中,一個區塊還能夠有區塊尾,用來保存一些區塊建立結束以後的信息,這些信息多是區塊頭和區塊體已經建立完之後,附加上去的,好比區塊的長度、容量等信息。

區塊鏈的數據存儲方式經過兩個方式來保證數據庫的完整性和嚴謹性。

  • 第一,每個區塊上記錄的交易是上一個區塊造成以後、該區塊被建立前發生的全部價值交換活動,這個特色保證了數據庫的完整性。

  • 第二,在絕大多數狀況下,一旦新區塊完成後被加入到區塊鏈的最後,則此區塊的數據記錄就不再能改變或刪除。這個特色保證了數據庫的嚴謹性,即沒法被篡改。

3

鏈式結構

區塊和區塊之間是如何「鏈」起來的呢主要依靠各個區塊之間的數據區塊頭部信息連接起來,頭部信息記錄了上一個區塊的HASH值(經過散列函數變換的散列值)和本區塊的HASH值。本區塊的HASH,又在下一個新的區塊中有所記錄,由此完成了每一個區塊的信息鏈。

image

(來源於否子戈博客)

同時,因爲包含了時間戳,區塊鏈還帶有時序性。時間越久的區塊後面所連接的區塊越多,修改該區塊所花費的代價也就越高。區塊鏈採用了密碼協議,容許計算機(節點)的網絡共同維護信息的共享分佈式帳本,而不須要節點之間的徹底信任。

**該機制保證,只要大多數網絡按照所述管理規則驗證發佈到分類帳(即,鏈)的塊,存儲在區塊鏈中的信息可被信任爲可靠的。**這確保交易數據在整個網絡中一致地複製。分佈式存儲機制的效果一般意味着網絡的全部節點都保存了區塊鏈上存儲的全部信息。這裏借用一個形象的比喻,區塊鏈就比如地殼,越往下層,時間越久遠,越穩定,不會發生改變。

因爲區塊鏈將從創世塊以來的全部交易都明文記錄在區塊中,且造成的數據記錄不可篡改,所以任何交易雙方之間的價值交換活動都是能夠被追蹤和查詢到的。這種徹底透明的數據管理體系不只從法律角度看無懈可擊,也爲現有的物流追蹤、操做日誌記錄、審計查帳等提供了可信任的追蹤捷徑。

區塊鏈在增長新區塊的時候,有很小的機率發生「分叉」現象,即同一時間出現2個符合要求的區塊。對於「分叉」的解決方法是延長時間,等待下一個區塊生成,選擇長度最長的支鏈添加到主鏈。「分叉」發生的機率很小,屢次分叉的機率基本能夠忽略不計,「分叉」只是短暫的狀態,最終的區塊鏈必然是惟一肯定的最長鏈。

**從監管和審計的角度來看,條目能夠添加到分佈式帳本中,但不能從中刪除。**運行專用軟件的通訊節點網絡以對等方式在參與者之間複製分類帳,執行分佈式分類帳的維護和驗證。在區塊鏈上共享的全部信息都具備可審計的痕跡,這意味着它具備可追蹤的數字「指紋」。分類帳上的信息是廣泛和持久的,並建立可靠的「交易雲」,使數據不會丟失,因此這項技術從根本上消除了交易對手之間的單點故障風險和數據碎片差別。

本期就講到這裏,下期繼續。什麼是區塊、它們如何「鏈」接,你明白了嗎?

本文內容來源於:火幣網、36kr

補充閱讀:區塊鏈100講:從村裏的帳原本看什麼是區塊鏈

萬字深度長文!從原理到趨勢,解剖風口上的區塊鏈技術(動畫)

如下是咱們的社區介紹,歡迎各類合做、交流、學習:)

image